アカウント名:
パスワード:
コンピュータは進化するのに、人間の頭は進化しないから、「証明書がすり替えられていないことを確かめるために、証明書の指紋が合っているか確認してください。」とかいって、将来、SHA-512みたいな長い指紋が出てきたとすれば、これが本当に合っているか目で確かめるのは骨が折れることだろう。
LAN内のファイルの転送で、途中で破損していないか調べる程度の場合はmd5ハッシュの最初の5文字程度しか確認しないことが多いが、悪意ある者が差し替えていないかどうかを確かめるなら、しっかり全部照合しないとダメなわけで。
そういうときこそハッシュ後の値を md5 とかに食わせて、出てきたハッシュ値の先頭と最後の 5 文字位を比較すればいいんじゃない?ちょっと違うだけで全然違うものになるから、簡単よ。ってか、私はそうしてます。
わざわざMD5を通さずとも、SHA-1やSHA-2自体の出力の最初と最後の5文字くらいを比較すればいいのではないでしょうか。
色々出てるけど、元が理想的なハッシュ関数の場合は、
1. 最初の10文字だけを見比べる2. 最初の5文字と最後の5文字だけ見比べる3. 途中の適当な10文字を見比べる4. 出力が10文字になるような別のハッシュ関数にもう1回通して出た出力を見比べる
のどの方針を使うにしても、セキュリティの強度の落ち具合は同じじゃないかな?
理想的なハッシュ関数だと、出力が一様ランダムになるはずで。「適当な数列→数列の各値のハッシュ値を並べた数列」としたときに、元の数列がなんであれ、出力側の数列は一様ランダムな乱数列にしか見えないような具合に。
理想的なハッシュアルゴリズムでない場合、「SHAの特定のアルゴリズムに対する、狙った特定の数桁だけにターゲットを絞り、その部分の辻褄を合わせつつ、残りが無茶苦茶になるという衝突方法」みたいなのが発見されると、1~3は危ないけど。「1~3より4の方が危ない」って状態も一言では言い表せないけど、無い事は無いのかな。
いずれにせよ、「省労力版のチェック方法を攻撃者から秘密にする」というのはありかな。どういう見比べ方してるかが分からないと、衝突攻撃をしかけようが無いので。1か2のどっちか黙ってるとか、3のどこを見比べてるかを秘密にするとか、4で以外なアルゴリズムを採用するとか、4を「hash(元のハッシュ値)」ではなく「hash(元のハッシュ値+秘密の合い言葉)」とするとか。
1.1つをメモ帳に張り付ける2.2つ目を検索条件に入れて検索する
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
Anonymous Coward (スコア:0)
コンピュータは進化するのに、人間の頭は進化しないから、
「証明書がすり替えられていないことを確かめるために、証明書の指紋が合っているか確認してください。」
とかいって、将来、SHA-512みたいな長い指紋が出てきたとすれば、
これが本当に合っているか目で確かめるのは骨が折れることだろう。
LAN内のファイルの転送で、途中で破損していないか調べる程度の場合はmd5ハッシュの最初の5文字程度しか確認しないことが多いが、
悪意ある者が差し替えていないかどうかを確かめるなら、しっかり全部照合しないとダメなわけで。
Re: (スコア:0)
そういうときこそハッシュ後の値を md5 とかに食わせて、出てきたハッシュ値の先頭と最後の 5 文字位を比較すればいいんじゃない?
ちょっと違うだけで全然違うものになるから、簡単よ。ってか、私はそうしてます。
Re: (スコア:0)
わざわざMD5を通さずとも、SHA-1やSHA-2自体の出力の最初と最後の5文字くらいを比較すればいいのではないでしょうか。
Re:Anonymous Coward (スコア:0)
色々出てるけど、元が理想的なハッシュ関数の場合は、
1. 最初の10文字だけを見比べる
2. 最初の5文字と最後の5文字だけ見比べる
3. 途中の適当な10文字を見比べる
4. 出力が10文字になるような別のハッシュ関数にもう1回通して出た出力を見比べる
のどの方針を使うにしても、セキュリティの強度の落ち具合は同じじゃないかな?
理想的なハッシュ関数だと、出力が一様ランダムになるはずで。
「適当な数列→数列の各値のハッシュ値を並べた数列」としたときに、元の数列がなんであれ、
出力側の数列は一様ランダムな乱数列にしか見えないような具合に。
理想的なハッシュアルゴリズムでない場合、「SHAの特定のアルゴリズムに対する、狙った特定の数桁だけにターゲットを絞り、
その部分の辻褄を合わせつつ、残りが無茶苦茶になるという衝突方法」みたいなのが発見されると、1~3は危ないけど。
「1~3より4の方が危ない」って状態も一言では言い表せないけど、無い事は無いのかな。
いずれにせよ、「省労力版のチェック方法を攻撃者から秘密にする」というのはありかな。
どういう見比べ方してるかが分からないと、衝突攻撃をしかけようが無いので。
1か2のどっちか黙ってるとか、3のどこを見比べてるかを秘密にするとか、4で以外なアルゴリズムを採用するとか、
4を「hash(元のハッシュ値)」ではなく「hash(元のハッシュ値+秘密の合い言葉)」とするとか。
Re: (スコア:0)
1.1つをメモ帳に張り付ける
2.2つ目を検索条件に入れて検索する