【勉強会】くららカフェ#4 SSL総まとめ 2015
くららカフェでSSLの勉強をさせて頂いたメモを残します。
くららカフェ#4 SSL総まとめ 2015clara-cafe.connpass.com
1. 最新SSL動向 株式会社クララオンライン 志村結衣さん
・SSLとは
プロトコルの総称
暗号化して送信するプロトコルの一つ(認証、暗号化、webサイトの身元証明)
▶︎でも現在はTLSです。
・SSLサーバ証明書
通信の暗号化とwebサイトの運営する運営者の身元を証明する。
・OpenSSL
SSLを使うためのモジュール。(脆弱性対応で大変なやつ)
・SSLは使い方次第
せっかく証明書買ってるのにhttp://XXXXXXX.comみたいなのでリンクして暗号で
きてないケースがよく見られる。(リンクの貼り方)
証明書ビューアとかで見ると組織名が違うケース。
・SSL時系列
baseline requirements発行(2012/7/1)
ベリサインがシマンテックに(2013/5/27)
1024bitのSSLサーバ証明書の終了(2013/12/31)
SHA-1のmicrosoft発表(2013/11)
googleのSHA-1発表(2014/8-9)
・CA/ブラウザフォーラム
政府系
米国政府
日本政府
ブラウザベンダー系
microsoft Root Certificate Program
Mozila CA Certificate Policy
業界団体系
baseline requirements
EV SSL Certificate Guidelines
・インシデント系
コードサイニング証明書誤発行
CAシステムハッキング
不正アクセス犯行声明
某政府 Sub-CA 512bit証明でマルウェアの署名
不正な証明書が発効
・結論
SSLサーバ証明書は受け身のセキュリティツール
ただ使うだけでは暗号通信は出来ない。
SSLサーバ証明書は日々どんどん暗号強度が落ちていくため、それを防ぐ仕様変更に
対応していかなければならない。
2. Heartbleed、POODLEとはなんだったのか
株式会社クララオンライン 寺尾英作さん
・SSL脆弱性祭り
2015/3/4
FREAK(Factoring attack on RSA-EXPORT Keysの略)
MiTM(man-in-the-middle)で暗号解読。輸出向けRSAを因数分解する。
2014/10/14
POODLE(Padding Oracle On Downgrade Legacy Encription)
MiTM(man-in-the-middle)でCBC暗号をブルートフォースアタック
影響:SSL3.0の終了
HeartBleed
リモートから秘密鍵等のデータが漏えいする
攻撃が簡単なことが問題
FREAK(CVE-2015-0204)
輸出向けRSAとは何か?
2000年頃にインターネットやってた方はしっているのでは…
昔、アメリカは暗号技術を輸出規制をしていた。
アメリカ政府が暗号化されたデータを解読できるようにしていた。
海外で使う暗号はbit数を低く、アメリカ国内で使う場合は高いbit数を使うような
政策をしていた。暗号化強度が弱い物しかアメリカ国外では利用できなかった。
暗号技化コードを何十冊もの分厚い本にして出版し、販売し国外へ輸出してOCRで
読み取るみたいなこともしていた。
※本には輸出規制が無いから。
2000年過ぎに解除された。
海外では輸出規制されさてたものしか使えなかった時期があったために、ブラウザや
サーバソフトウェアは特別に読み取る仕組みを入れてしまった。
コレを外す時期を失ってしまい、今にいたった。
強制的に輸出向け暗号化レベルにダウングレードして通信することで、弱い暗号化で
読み取ることが可能
一時的RSAとは?
リクエストした時に、サーバから鍵が返される。その鍵を使って暗号化する。
一時的RSA鍵が頻繁に変わるであれば問題ない。apacheの設定等で鍵を使い回すよう
になってしまっていると問題。
普段は問題ないが中間者が入って抜かれると、しばらく変わらない鍵に対して
因数分解して解読されてしまう。
次にアクセスしたとき、アクセス元はAES256-SHAでアクセスをしているが、
中間者がEXP-DES-CBC-SHAに書き換えて送ってしまう。
サーバから一時的RSAをもらい、先ほどの因数分解結果より解読可能となる。
MIMT(Man in The Middle Attack)攻撃の解説
・野良WIFI、偽AP(Evil Twin)
野良wifiはまだ対処できるが、偽APは対処が難しい。
・proxy、DNSサーバの変更
自分で設定しない限りは変更されないと思っていないか。
最近はアドウェアやマルウェアみたいなものが勝手に書き換えてしまうこともある。
スマホでジェイルブレイクしていると、知らない間に書き換えられていたり。
・ルータの脆弱性
IPアドレスをデフォルト(192.168.1.1)で使ってる人が多い。
リモートから入られDNSサーバを変更されたり
・DNSポイズニング
・アプリケーションキャッシュポイズニング
動的サイトのjavasprictを偽物に置き換られてしまう。
どれも有効な策が無く、アンチウイルス等もこれらにはあまりや役立たない。
ある程度、被害に遭うことは想定し、大事な物は置かないや二段階認証を利用する。
POODLE(CVE-2014-3566)
Padding:不要な付け足し
Oracle:予言
On Downgrade Legacy Encyption ・・・:古い暗号方式へダウンロードした上で
暗号は解読に総当たりでスゴい労力がかかる。
しかし、ある条件が重なると256通りまで絞れる状況を作り出してしまう。
POODLEでSSL3.0終了とは?
SSL3.0では、RC4もしくはCBCのゴチらかの暗号アルゴリズムで通信を秘匿して
います。
RC4は脆弱であり、CBCを使うことを推奨。
CBCにも脆弱性があり、全面て全面的に撤廃の動きになった。
(P xor K)xor =P
Kを鍵とする暗号ができる。
鍵の長さが十分あると、暗号解きが難しい。
Paddingとは
暗号計算終わりに長さを埋める(ブロック暗号を埋める)ためのもの。
Paddingは検査されない。
このPaddingを利用するのがPOODLE。
最後のブロックがPaddingだけで埋まるような文字列をつくる。
自分が指定した文字列で暗号化した文が手に入る。それをいろんなパターンで書き
換えて送ると、同じパターンの暗号文が手に入る。
Padding部分は検査されないので自由に変えられる。自分が256通りの種類の
リクエストをすると復号したい暗号データと一致するものが出てくる。自分が
リクエストしているのでその元データがわかっているので暗号化されたものを
求めることが出来る。
HeartBleed(CVE-2014-0160)
OpensslのHartbeat機能に見つかった脆弱性
トレードマークを作ることを先にしてしまいOSSコミュニティに流さなかった。
優先順位まちがってないか?情報公開の仕方としては悪い例。
Hartbeat機能とは?
クライアントからhelloを含むハートビートリクエストを投げるとハートビート
レスポンスとして、helloとエコーバックする機能。
helloのリクエストに細工をして送ると、hello以外にデータを付けて返してしまう。
developers.mobage.jp
返してしまったデータには何か入っているか分からない。(コレが問題)
65kb程度のデータが漏れてしまう。helloの次のブロックに秘密鍵が入っていた
場合は秘密鍵が漏れてしまう。
IDやpassword、セッションIDのようなありとあらゆるデータが漏れる可能性がある。
250万リクエストしたら重要情報がとれたとか…
これからの脆弱性対応方法
japan.zdnet.com
NCC Groupがコードの監査をするとのこと
予備的監査が終了するのは2015年夏の予定。がんばってほしい。
3. 今後対応すべき課題とは? (仮)
匿名希望さん
ご登壇者のご希望でこちらのセッションは他言禁止(ツイート)ということで記載
することはできませんが、とてもディープなお話が聞けました。