toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

【勉強会】くららカフェ#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-1microsoft発表(2013/11)
 googleSHA-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年過ぎに解除された。
 海外では輸出規制されさてたものしか使えなかった時期があったために、ブラウザや
 サーバソフトウェアは特別に読み取る仕組みを入れてしまった。
 コレを外す時期を失ってしまい、今にいたった。
 強制的に輸出向け暗号化レベルにダウングレードして通信することで、弱い暗号化で
 読み取ることが可能

d.hatena.ne.jp


一時的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にも脆弱性があり、全面て全面的に撤廃の動きになった。

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. 今後対応すべき課題とは? (仮) 
匿名希望さん
ご登壇者のご希望でこちらのセッションは他言禁止(ツイート)ということで記載
することはできませんが、とてもディープなお話が聞けました。

SSLの基本的なところから昨今話題の脆弱性の解説ありとてもいい勉強になりました。