SHA-1, SHA-2はハッシュ関数
ハッシュ化とは、元のデータから一定の計算手順に従ってハッシュ値と呼ばれる規則性のない固定長の値を求め、その値によって元のデータを置き換えること。チェックサムによく用いられるmd5もハッシュ化のひとつ。
SHA-1, SHA-2がSSLのどこで使われているか
サーバから送付された証明書が正しいものであるかどうかを照合するために利用する。
具体的には、サーバ証明書に付与された署名(サーバ証明書をハッシュ化し、認証局の公開鍵で暗号化したもの)を復号した内容と、Webサーバから受信したSSLサーバ証明書をハッシュ化した値を比較するのです。この値が一致すれば、信頼のおける認証局から署名を受けた正規のWebサイトであることがわかります。
SHA-1, SHA-2の違い
- SHA-1
任意の長さの元データを元に160ビットの値を生成するハッシュ関数 - SHA-2
SHA-1を改良したもの。SHA-224、SHA-256、SHA-384、SHA-512の4つのバリエーションがあり、末尾の数字がハッシュ値のビット長を表す。最長であるSHA-512が最も安全性が高いですが、一般的にはSHA-256が最もよく利用されている。SHA-2への移行が推奨されている。 - SHA-3
SHA-2よりも安全性を向上させるために、2015年に公開された後継の規格となる。「SHA」との名称を引き継いでいるものの、内部構造などが異なるなど、SHA-2とは別系統として設計されているのが特徴とされる。今後、SHA-3の利用が増えていく可能性が見込まれている。