konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


セキュリティ指針

暗号化

説明

一口に暗号化といっても、2種類の暗号化手法が存在する。1つが、暗号化後、暗証番号等を入力して復元できる可逆な暗号化。もう一つが暗号化後複合できない不可逆な暗号化である。

不可逆な暗号化

MD5, SHA1などいわゆるハッシュを出力する方式で、md5などは多くのUnix系OSのパスワードに使用されている。 不可逆のため、ハッシュとなったパスワードが漏洩しても、そのままパスワードの漏洩にはつながらず*1可逆な暗号化に比べて暗号化の強度が高いとされている。
ただし、ハッシュとなってしまうため元のデータには戻らないため使用用途が限られる。
使用用途としては主に、ユーザパスワードの保存に使用される。平文でのパスワードであると、管理者及びDBにアクセス件をもつ人間がパスワードが閲覧可能であるのに大して、ハッシュ化されたデータは、通常、入力者以外は解析不能となる。このため、情報漏洩のリスクを削減することができる。

MD5は、近年、衝突(コリュジョン)などが見つかっているためSHA1の使用が望ましいが、PHPのSHA1関数は、PHP4.3以降の対応となっているため下位互換性を求める場合には、MD5の使用も許容される。

可逆な暗号化

不可逆な暗号化に対し、可逆な暗号化は顧客情報などの複合が必要かつ重要なデータに適用する。
この処理を行っておくことにより、データベースのデータの盗難などが行われてもキーが露呈しない限りは、そのデータ自体が即座に悪用されることを防止することができる。
これらの適用範囲は、そのシステムのセキュリティポリシに依存し、なおかつこの処理によってある程度の負荷が上がることが見込まれるのでSI、顧客を通じて適用範囲を決定する必要がある。


*1 もちろん対策を取る必要はあるが

最終更新のRSS