パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」」記事へのコメント

  • by Anonymous Coward on 2017年02月25日 20時11分 (#3167348)

    リンク先のPDF、ほんとにSHA-1一致するな。
    しかも、内容もランダムデータでなく、意味のあるデータになっているのはすごい。

    当然ながらCRC-32は一致しないな。
    いくつものハッシュを組み合わせるのはダメなんだろうか、とふと思った。
    ・・・まあ、それができるぐらいならSHA-1を捨てればいいか。

    • by Printable is bad. (38668) on 2017年02月25日 21時00分 (#3167355)

      リンク先のPDF、ほんとにSHA-1一致するな。
      しかも、内容もランダムデータでなく、意味のあるデータになっているのはすごい。

      概ね 64 bytes のランダムデータのような意味のないゴミデータが注入されています。PDFは可変長のゴミデータを入れても正常に表示されるので、それを利用しているのでしょう。

      2つの PDFファイル (422,435 bytes) の内、差異があるのは 192byte~256byte の箇所のみであとは完全一致でした。ヘッダ部分を除いた最初の部分 64 bytes に違いがあるだけなので(背景色の情報もこの 64 bytes に含まれているはず)、僅か 64 bytes 任意のデータを入れられるファイル形式であるならば、この攻撃は成功することになります。

      当然ながらCRC-32は一致しないな。 いくつものハッシュを組み合わせるのはダメなんだろうか、とふと思った。

      ありとあらゆるハッシュ関数を試してみましたが、確かに SHA-1 以外は全部一致していませんでした。しかし、これは SHA-1 のみをターゲットにした検証用ファイルなので、当然のことです。

      (無駄に長くなるし貼るべきか悩みましたが、ダウンロードしてハッシュ値を調べるのが面倒な人もいるかもしれないので、私がさっき調べたそれぞれのファイルのハッシュ値を貼っておきます)

      * shattered-1.pdf [shattered.io] (422,435 bytes)

      Adler32: 36f477bb
      BLAKE2sp: 4b64ce383ec747ec67895dacf8a7d4af8d62f9b7a8f8fbaf7ccb352ff2bf17f8
      BTIH: f86f6faf4d2e18e12b95b4471fc6a92cabe49004
      CRC32: 348150fb
      ED2K: 38373b377cf16c032d08cef0855cb820
      GOST: 2cca14e553eff6d1c99fb37b8134c2d1d92bf65217185a0e2eca044d9747745b
      MD2: 27fa33d94a14ba237bf4dbee401f1df0
      MD4: 38373b377cf16c032d08cef0855cb820
      MD5: ee4aa52b139d925f8d8884402b0a750c
      RIPEMD-128: 70f07699de87e6520c80f5f7b5e2e430
      RIPEMD-256: 8fbfc5a8a6a1f26eff8b4b0759717df161f1ece1c0674c9501ecb827f5e1db35
      RIPEMD-320: 90d7a15075c1c20c85865eefb5dca8ad18d7f9c1d4a77dfae6e52a654f8a1abf216749994041a78e
      SHA-1: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a
      SHA-256: 2bb787a73e37352f92383abe7e2902936d1059ad9f1ba6daaa9c1e58ee6970d0
      SHA-256 Base64: K7eHpz43NS+SODq+fikCk20QWa2fG6baqpweWO5pcNA=
      SHA-384: 27f937a0849be559affa109f97744024bc494b2b81dcd9684845cd14574953cc6310398b89e150ad3819188309e59996
      SHA-512: 3c19b2cbcf72f7f5b252ea31677b8f2323d6119e49bcc0fb55931d00132385f1e749bb24cbd68c04ac826ae8421802825d3587fe185abf709669bb9693f6b416
      SHA3-224: ef525305e821be4de14ce03aacf8f85a8252102e1f0884dae22a92ee
      SHA3-256: 36c1d2055da04440bb955880d6dd174d68b660d449d2f3ce42e4ef02bc718bd1
      SHA3-384: c3f292c8ec1a97ade3d64393fc5ba61de018f289479df18372a5f99d4d78974f12c27fc7c5fb8c58ddbac8499cd109a6
      SHA3-512: fa00d2b9e9322fd0bdd83e17277496f55563959f54de76b79eec08537c75a4d84f2a12017e1efeb1bc44b6d4f7fe1847a4570a18147a7e974465bd971c51504b
      TTH: raly2ga4whbetx5m3xzspacr3fv6dt6jbdeiqkq
      Tiger: f23e7ac5991136b1b28bd2ea729a4bd64c64c5a14db20e21
      Whirlpool: 68e7a8d6622d2a02b9008b4eb610a5f9b95e66191b4267072b751af8722333fc1585892d898fbbe1a3aeb566aa1a1ca6c3f9d08ef8d5282eea677a82e41826f5

      * shattered-2.pdf [shattered.io] (422,435 bytes)

      Adler32: 49907353
      BLAKE2sp: cd064189a2433601e798629e90e76537c663ca1e406234dcaef8feace2f20379
      BTIH: 65522388faeae826bb5890ea18d98f240becd46c
      CRC32: b3fbab1c
      ED2K: 4881d13b4265c952a9ed032ea4a1a043
      GOST: 85205642f0ebfa8e5b58639505e2ac4b84fa75939c181892e728b8cf4cbc95bb
      MD2: be972896748cc45244ff6c3e7154d05a
      MD4: 4881d13b4265c952a9ed032ea4a1a043
      MD5: 5bd9d8cabc46041579a311230539b8d1
      RIPEMD-128: 75d04513f1faee490567b7869730e815
      RIPEMD-256: e4326309ded334093caad2968d52239b162134d3d314810fa235a6fb298e8c2f
      RIPEMD-320: 33f83953dc061704b32bcb124983731244f4fe3c9d7c08514ffecde6ff1db5ff4c4dec33df9b0727
      SHA-1: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a
      SHA-256: d4488775d29bdef7993367d541064dbdda50d383f89f0aa13a6ff2e0894ba5ff
      SHA-256 Base64: 1EiHddKb3veZM2fVQQZNvdpQ04P4nwqhOm/y4IlLpf8=
      SHA-384: e04944841a251d5bbed5dbb0d07486d254bcddd2c11341ee9bb045bfd678aa7b784e1b7a7d56ece

      親コメント
      • by Anonymous Coward on 2017年02月25日 21時28分 (#3167365)

        PDF中のJPEG画像のコメント領域に、調整用のバイナリデータが埋め込まれているようです。

        PDFの見た目に影響しているのは、PDFファイルの0xC0番地の1バイトのみで、
        shattered-1.pdfとshattered-2.pdfの表示の違いは、この1バイトの違いによって発生しています。
        その後、127バイト使用して、ハッシュ値を衝突させるためのバイナリデータが埋め込まれていました。

        親コメント
        • by Anonymous Coward

          この画像 [shattered.it]がわかりやすいですね。

          PDFの見た目を変えたのは改竄可能性の例示に為でしょう。
          同じ見た目でハッシュが同じでも何もすごくないですしね。

          しかし、SHA-1を確認すれば同じになるというだけの話に110GPU年ですか。
          今まで同一性チェックに使って、たまたま衝突したらどうしようとか考えていましたが認識を改めます。
          まぁそれは確率の問題だし、いつも使ってるのはCRC-32なので改竄は容易ですけどね。

      • by Anonymous Coward

        「ハッシュ値を調べるのが面倒」なんて言う人にとってはハッシュ値なんて意味のないものだろう?

    • by Anonymous Coward

      ハッシュを組み合わせても強度はほとんど上がらない。MD5 + SHA-1では8ビット程度しか強度が上がらないそうだ。
      それどころか下手に組み合わせると弱くなるおそれすらある。どうしてそういうことが起こりうるのかについてはスラドの過去記事を参照 [srad.jp]。
      素直に暗号の専門家が設計したハッシュを使っておけ。

      • by Anonymous Coward

        MD5ハッシュとSHA1ハッシュの併記という意味で、混合ではないのでは?

        そして記事についてだけど。
        ハッシュについての話でブルートフォース攻撃って何よ?鍵関係ないじゃん。

        • by Anonymous Coward

          埋め込むバイト列を総当たりで試すのであれば、それだってブルートフォースです。
          (ブルートフォースには力技程度の意味しかないです。)

          00〜FF、0000〜FFFF、000000〜FFFFFF……ってな具合。

          • by Anonymous Coward

            とはいえブルートフォース攻撃よりはブルートフォース解析ないし総当り解析などと表現するほうが自然かなともおもったり。

            • by Anonymous Coward

              符号理論ではこういうのは全部「攻撃」と一括りにまとめています。

              • by Anonymous Coward

                まあ専門用語がいっぱんてきなようほうとずれているのはよくあること

              • by Anonymous Coward

                「ご褒美」が代表例かな?

        • by Anonymous Coward

          次の中からブルートフォース攻撃を選べ(5点)
          1) 英数記号の組み合わせを生成し、ログインサーバに対して送信することで他人のアカウントでログインした。
          2) パスワードがハッシュ値で記録されたアカウント情報を入手したので、英数記号の組み合わせを生成し、記録されているハッシュ値と同じになる値を見つけた。
          2-1) そのようにして見つけたパスワードを使用して、他人のアカウントでログインした。
          3) 取得したZIPファイルがパスワードで暗号化されていたので、英数記号の組み合わせを生成して解読した。
           (パスワードが正しいことの判定は、復号後のファイルの

          • by Anonymous Coward

            8) アームが弱いので台パンした

      • by Anonymous Coward

        MD5とSHA-1の両方を合わせた実例。
        https://roastingbugs.blogspot.jp/2017/03/eat-more-hashes.html [blogspot.jp]
        弱い者同士を組み合わせたところでほとんど意味はない。

    • by Anonymous Coward

      ブレーンテキストなら改変は難しいってことか!

      • by Anonymous Coward

        Brain text?

      • by Anonymous Coward

        ある程度の長さのコメントブロック /* */ があれば
        0x00〜0xFFまでなんでも入れられるし、*/ というシーケンスさえ出ないように
        気をつければいいのでわりとハードルは低いかもしれない

    • by Anonymous Coward

      そもそもデモにPDFを使うのはMD5コリジョンのときにも行われていた技法で、別に目新しくない。

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

処理中...