• Like
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

偶然にも500万個のSSH公開鍵を手に入れた俺たちは

  • 263 views
Published

2015/1/24 江戸前セキュリティ勉強会のLT発表資料です

2015/1/24 江戸前セキュリティ勉強会のLT発表資料です

Published in Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
263
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
1
Comments
0
Likes
16

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Attacking against 5 million SSH public keys 偶然にも500万個の SSH公開鍵を 手に入れた俺たちは hnw 江戸前セキュリティ勉強会 (2015/1/24)発表資料
  • 2. 自己紹介 ❖ @hnw ❖ カレーとバグが大好物 ❖ PHPの方から来ました
  • 3. アジェンダ ❖ SSH公開鍵の集め方 ❖ 弱い鍵を見つけた ❖ 公約数を探す
  • 4. ❖ SSH公開鍵の集め方 ❖ 弱い鍵を見つけた ❖ 公約数を探す
  • 5. SSH公開鍵を集める ❖ github.comで集めました ❖ GitHub APIでユーザーIDが全件取れる ❖ https://github.com/[ユーザーID].keys ❖ 登録しているSSH公開鍵が誰でも取得できる ❖ obsoleteらしいが、長いこと使えている
  • 6. SSH公開鍵を集める ❖ github.com全850万ユーザー(昨年10月当時) ❖ 鍵の取得だけで2日くらいかかった ❖ 約500万個のSSH公開鍵が手に入った
  • 7. ❖ SSH公開鍵の集め方 ❖ 弱い鍵を見つけた ❖ 公約数を探す
  • 8. 弱い鍵ペア ❖ 理屈上、公開鍵暗号では秘密鍵がバレなければ安全 ❖ 公開鍵が500万件もあるとヘマする人もいる ❖ 秘密鍵を特定できる公開鍵が実際に見つかった
  • 9. 鍵長が短すぎる鍵 ❖ 攻撃可能そうな鍵が35個みつかった ❖ 256bit DSA鍵 1個 ❖ 512bit DSA鍵 11個 ❖ 256bit RSA鍵 11個 ❖ 512bit RSA鍵 12個 ❖ 鍵長を明示的に指定して鍵ペア生成しているはず ❖ 公開鍵暗号についての理解が足りない?
  • 10. 鍵長が短すぎる鍵 ❖ 短いRSA鍵は素因数分解で破れる ❖ 256bit RSA鍵の場合 ❖ p,qともに128bit(10進39桁)の素数 ❖ n(=pq)だけをもとにnを素因数分解すればよい ❖ 素因数分解の実装はネット上に落ちている ❖ 256bit RSA鍵なら3秒で素因数分解できた
  • 11. 古いDebianで作られた脆弱な鍵 ❖ CVE-2008-0166 ❖ DebianだけOpenSSLの実装にバグが混入した ❖ 作られる鍵ペアが65536パターンになる ❖ 代表的な鍵長の鍵をネット上で公開している人がいる ❖ 208件が一致した
  • 12. ❖ SSH公開鍵の集め方 ❖ 弱い鍵を見つけた ❖ 公約数を探す
  • 13. RSAに対する既知の攻撃 ❖ 論文「Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices」 ❖ 乱数生成器の偏りを利用したRSAに対する攻撃 ❖ 多数の公開鍵から公約数を見つけるもの ❖ SSL証明書とSSHホスト鍵あわせて1100万個を調査 ❖ 約6万個の鍵を素因数分解できた
  • 14. ここに公開鍵がたくさんあるじゃろ? ❖ 論文の筆者が作ったプログラムは公開されている ❖ fastgcd ❖ https://factorable.net/resources.html
  • 15. SSHユーザー鍵でGCD計算 ❖ メモリとストレージが必要 ❖ いったん全部の積を求めるため ❖ 500万個のGCD計算がAWSなら100円 ❖ c3.4xlarge(メモリ30GB)で40分
  • 16. SSHユーザー鍵でGCD計算 ❖ 期待通りに素因数分解できたものは無かった ❖ 乱数生成器の偏りは見つからなかった
  • 17. SSHユーザー鍵でGCD計算 ❖ 155個について約数が見つかった ❖ 16進1桁から7桁の数で割り切れる ❖ 割ってもまだ合成数 ❖ コピペミスした公開鍵が登録されている?
  • 18. コピペミスした鍵のリスク ❖ 正しい秘密鍵でもログインできない状態 ❖ nの素因数分解さえできれば秘密鍵は作れる ❖ nの素因数が偶然小さい素数ばかりだと危険 ❖ あまり指摘されていないリスクなのでは?
  • 19. まとめ ❖ 多数のSSH公開鍵を調査した ❖ リスクのある鍵を使っているユーザーが実在する ❖ 攻撃者有利な時代だと再認識した ❖ 実装、データ、計算機いずれも簡単に手に入る
  • 20. 懇親会にも参加します ❖ アドバイス・雑談などお待ちしております
  • 21. ご静聴 ありがとう ございました