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

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

  • by Anonymous Coward

    リンク先の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: e04944841a251d5bbed5dbb0d07486d254bcddd2c11341ee9bb045bfd678aa7b784e1b7a7d56ece5d5ede17e143ffe2b
      SHA-512: f39a04842e4b28e04558496beb7cb84654ded9c00b2f873c3ef64f9dfdbc760cd0273b816858ba5b203c0dd71af8b65d6a0c1032e00e48ace0b4705eedcc1bab
      SHA3-224: f9c585aac47e5e2780b43d05d4811bd3f0099715f949da3fadd2d5ce
      SHA3-256: b0650a2b69408f06faf6030fcefb5ed734ccfc4f21588a4ade40665784d96727
      SHA3-384: 053c03930073c3f8d22bfcbc6261dd48ff2b9c12548219aae21cdfdef392cb914389eb350ef1790dd155681c64cc8761
      SHA3-512: 2a7b2e5a40f33bf7d23b4705d0b91e7932f1dc3e4f6a0adf517f7bd7676ec44ff3ec2de20a90fbd3a9d83cbd0a4c05377250f89e5cebdda3f050e50973ccde72
      TTH: ub7pjhgadxytjlg6f3g75sqrq3choiqqsqogvbq
      Tiger: 32375622e0968c31064f26ac53e1541e27347d2c6f0ca12b
      Whirlpool: 63a99f58e5c3ebb9e752b0cb1215187383b325c49af6aac3bfb0c016cf8761abb43cedae366146d790c1503e0b363a01298103cdf20f6cab1117924e6f0bdda9

      親コメント
      • 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

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

日々是ハック也 -- あるハードコアバイナリアン

処理中...