俺とお前とCertificate Transparency

Similar documents
Google Chrome と証明書の透明性 2 証明書の透明性に関する有効な情報がサーバーから提供されました 画像 :facebook ( トップページ

Microsoft Word - CygwinでPython.docx

ステップ 2 テンプレートを はめ込む FC2 ブログ専用のセールスレターテンプレートをはめ込む方法を解説します 次のような手順です 1. テンプレートサイトにアクセス 2. セールスレターの背景色を決める 3. サンプルサイトを表示させておく ( 好みの背景色の ) 4. FC2 ブログのテンプレ

JPNICプライマリルート認証局の電子証明書の入手と確認の手順

FIDO技術のさらなる広がり

クライアント証明書インストールマニュアル

[補足資料] 「Managed CA対応」における製品仕様変更点について

クライアント証明書導入マニュアル

Outlook2010 の メール 連絡先 に関連する内容を解説します 注意 :Outlook2007 と Outlook2010 では 基本操作 基本画面が違うため この資料では Outlook2010 のみで参考にしてください Outlook2010 の画面構成について... 2 メールについて

楕円曲線暗号の整備動向 +楕円暗号の実装状況

PowerPoint Presentation

fmm151021完.pdf

[ 証明書の申請から取得まで ] で受領したサーバ証明書を server.cer という名前で任意の場所に保存してください ( 本マニュアルではローカルディスクの work ディレクトリ [C:\work] に保存しています ) 中間 CA 証明書を準備します 次の URL にアク

目次 Web インターフェースでのログイン方法 1 Web インターフェースから利用できる機能の紹介 3 1ファイルのアップロードとダウンロード 4 2 転送確認 ( ファイルのアップロード状況 ) 9 3ファイル更新履歴の管理 10 4 操作履歴の確認 12 5アクセスチケットの生成 ( フォルダ

Microsoft PowerPoint - info09b.ppt


PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

設定をクリックしてください 初期設定をクリックします

< F2D838F815B834E B B>

クライアント証明書インストールマニュアル

マニュアル Ver.1.3.indd

不正送金対策 フィッシング対策ソフト PhishWall( フィッシュウォール ) プレミアム のご案内 広島県信用組合では インターネットバンキングを安心してご利用いただくため 不正送金 フィッシング対策ソフト PhishWall( フィッシュウォール ) プレミアム を導入しました 無料でご利用

ポップアップブロックの設定

Eclipse マニュアル <作成目的> Eclipse のインストール方法などを紹介したページはいろいろありますが 専門用語がわからない初心者でもわか りやすく Eclipse のインストール方法 基本操作などをまとめたマニュアル作成を目的としています <目次> 1 Eclipse のインストール

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

McAfee Application Control ご紹介

LGWAN-5月.indd

引き算アフィリ ASP 登録用の日記サイトを 作成しよう Copyright 株式会社アリウープ, All Rights Reserved. 1

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

Microsoft Word - ネット接続確認方法.docx

Microsoft Word - WebMail.docx

目次 概要... 3 Windows10 での接続方法... 4 Windows 8 での接続方法... 6 Windows 7 での接続方法... 8 Macintosh での接続方法 ios での接続方法 Android の接続方法 Web によるユーザ認証

目次 1. はじめに 証明書ダウンロード方法 ブラウザの設定 アドオンの設定 証明書のダウンロード サインアップ サービスへのログイン

<4D F736F F D2093C C6791D D F82C68C6791D D834F82C589D282AE95FB96402E646F63>

サラリーマンだった頃は 思いもよらなかったという人が多いでしょうね 給料明細を見て 何でこんなに色々 差し引かれるの?? と思いませんでしたか? でもね そもそも自分が全部払うべき健康保険料や年金の半分は 会社が払って くれているのです そしてさらに 従業員は自分の社会保険料の半分の額についても 自

目次 1. よくあるご質問一覧 回答一覧 改訂履歴 Page- 2

<4D F736F F D FA78AC28BAB82C690DD92E882C982C282A282C42E646F63>

Microsoft Word - ミクロ経済学02-01費用関数.doc

本文中の記号の意味 本文中で使用している記号の意味について以下に示します システムの操作上または処理の手続き上において 特に注意していただきたい事項を記載しています 記載内容を必ずお読みください システムの操作上または処理の手続き上において 参考にしていただきたい事項を記載しています 必要に応じてお

BACREX-R クライアント利用者用ドキュメント

SOC Report

指定立替納付を使った場合の 国内提出書類の提出方法 1 出願書類や 納付書などを 指定立替納付で支払う場合の手順をご案内します ここでは ひな型を Word で編集する場合の手順を案内します 他を利用する場合は ユーザガイドをご覧ください (1) 指定立替納付を使うための事前準備 a. クレジットカ

3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]

<4D F736F F D CC2906C A90848FA78AC28BAB82C690DD92E882C982C282A282C42E646F63>

Pad-web 電子証明書有効期限切れへのご対応について 弊社年金制度管理システムをご利用の方は 同システムのマニュアルをご参照ください 第 1.3 版 初版作成 : 2015/8/28 最終更新 : 2018/5/9

Shareresearchオンラインマニュアル

Copyright 資格とっ太郎 All Rights Reserved

こうしてホームページから家が売れるようになった

システム利用前の準備作業2.1 準備作業の流れ 準備作業の流れは 以下のとおりです 2必要なものを用意する 2.2 パソコンインターネット接続回線 E メールアドレス 2.2-(1) 2.2-(2) 2.2-(3) 当金庫からの送付物 2.2-(4) パソコンの設定をする 2.3 Cookie の設

生徒用プリント ( 裏 ) 入力した内容はすべて記録されている!! 印 : 授業で学んだこと 管理者のパソコンには どのパソコンから いつ どのような書き込みがされたか記録されています 占いだけではなく メールや掲示板の内容も同じように記録されています もし 悪意のある管理者から個人情報が洩れたらど

◎phpapi.indd

証明書(Certificates)

SeciossLink クイックスタートガイド

2 ログイン ( パソコン版画面 ) Web サイトのログイン画面が表示されます 通知メールに記載されている ID と仮パスワードを入力して ログイン ボタンをクリックしてください ID パスワードを連続して 5 回間違うと 当 I D はロックアウト ( 一時的に使用不可 ) されるので ご注意く

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

Java でゲームを作ろう - 共通編 -

2Mac OS OS Safari プラグインソフト 3.X Mac OS X 5.X Mac OS X 5.X Mac OS X Adobe Reader ( 入出金明細照会結果を印刷する場合 / ローン 外貨サービスを利用する場合 ) Adobe Fla

ch2_android_2pri.indd

ポップアップブロックの設定

OP2

DigiCert EV コード署名証明書 Microsoft Authenticode署名手順書

1 Ver デジタル証明書の更新手順 1 S T E P 1 netnaccs 専用デジタル ( クライアント ) 証明書 の更新作業を開始する前に 次の準備を行って下さい (1) お使いになるパソコンのブラウザのバージョンを確認して下さい ( デジタル証明書の取得等は 必ず Inte

Thunderbird 利用 Windows Mac 共通 Thunderbird を利用した移行は Web メールのフォルダを階層化している場合 移行ができない場合があります この場合の移行は Outlook を利用した移行で行ってください メールの移行マニュアル 本書は Office 365 導

設定フロー ★印は必須の設定です

なぜ キアシヤマドリタケなのか? きのこ通信 年 7 月 30 日 文幸徳伸也 前回の通信では キアシヤマドリタケとキアミアシイグチの違いについて説明しました 今回の通信では キアシヤマドリタケについてもう一歩踏み込んで説明いたします 上の写真のキノコは キアシヤマドリタケ です

Transcription:

俺とお前と Certificate Transparency というタイトルで発表します すみだセキュリティ勉強会主催の ozuma5119 です 1

すみだセキュリティ勉強会を主催しています ozuma5119 と申します ふだんは 比較的固めの会社でセキュリティエンジニアをしています ブログはこちら http://d.hatena.ne.jp/ozuma/ 科学写真家というのは 理科の教科書に載ってるような写真 を撮る人たちです こちらは副業ということで 小学生向けの教材の写真とか撮って ときどき本に載ったりします 2

今回の概要はこんな感じです 今日のメインは 2 つめの Certificate Transparency というものです これについて話そうと思うのですが その前にまず SSL 証明書の鑑賞方法を学んでおきましょう CT を理解するには 証明書の見方を知らないといけないためです ただ 単に証明書を見ても 証明書マニアじゃないとつらいと思うので 今日は素数に注目して証明書を見てみましょう 素数に注目して証明書を見る 見方が分かったところで CT を理解する という流れです 3

で まず素数についてです 英語では prime number と言います RSA 公開鍵の中身を見たりすると prime という言葉が出てくるので 慣れておきましょう 素数 素数ってなんでしょうか? まぁこの勉強会に来るような方なら皆さんご存じと思いますが 4

はい 素数とは かぞえると落ち着く数ですね Father Pucchi が言っていましたから間違いありません 5

証明書の公開鍵を見る前に 一点 確認しておきましょう 現在多くの SSL 証明書では 公開鍵暗号方式として RSA を利用しています これは比較的有名な 素因数分解の困難さを利用したものです でも 公開鍵暗号方式にはいくつもの実装があり 実際最近は 楕円曲線によるものも増えつつあります が 今日は現在もっともポピュラーな 素数を利用した RSA の証明書を見ます 6

証明書の見方を復習しておきましょう ブラウザによって若干違いますが 多くの場合には鍵マークをクリックして証明書を表示できます RSA を利用した公開鍵証明書ならば このように公開キーとして現在は一般的に 2048bit の数値が入っています 次の OpenSSL コマンドを利用した例で もうちっと証明書について細かく見てみましょう 7

証明書は OpenSSL コマンドで直接見てみることもできます 慣れているひとなら こちらの方がいいでしょう echo Q openssl s_client -connect dena.com:443 openssl x509 -text はじめに echo Q しているのは 普通につなぐとコネクションが張りっぱなしになるのでいきなり QUIT するためです まぁ手でやるなら Ctrl+C 押せばいいので不要ですが シェルスクリプトなどで証明書を集めたいときはこういうことをすると良いでしょう 8

Issuer 証明書を発行した人 Subject は証明書の主体者 組織名とかドメイン名が入っています これは DeNA のサーバなので CN に dena.com と入ってますね 9

Modulus が 2 つの素数の積ですね コロン区切りの 16 進数で書かれています これを素因数分解できればいいわけだ 10

また 後ろには X509v3 extensions として色々な拡張領域が定義されていますね 後でここも見ます 証明書を細かく見ていくとそれだけで終わっちゃうので 次に Modulus と素数の小ネタだけ話しておきましょう 11

素数をいっぱい作って modulus を素因数分解したい! 12

先ほど Modulus を見ましたが あれを素因数分解できれば私の勝ちなわけです で まっとうに素因数分解にチャレンジするやり方よりも こういうアプローチが考えられます ふつうの人は openssl genrsa で素数を作る もしこの素数生成に偏りがあれば 出やすい素数で因数分解できる modulus が結構あるのでは? これは実際 今から 7,8 年前の Debian で発生した事例です とりあえずここでは CentOS 6.6 上で 344 万個の素数を作りました HDD にこんなにたくさん素数があると思うと わくわくしますよね もしこの中に 何度も出ている素数があれば私の 勝ち なわけですが 13

さて 出やすい素数は ありませんでした 14

この通り 作ったものから uniq して数えてみましたが一つも同じ素数は生成されませんでした まぁ 340 万個という数は実は 少なすぎるのです 15

ある自然数 x が与えられたとき その x 以下に素数がどのくらいあるか? という素数の濃度を測る際に使われるのが素数定理です おおむね 素数は自然対数 (e を底とした log ln と書く ) で割った値の数となります いま modulus すなわち 2 つの素数の積が 2048bit なので 素数はおおむね 2^1024 のオーダーになります ということで素数の数は だいたい 2^1014( 個 ) 16

これだけの数の素数がある中 たった 300 万個の素数を作ったところでヒットするわけがないわけです 宝くじに当たるよりもずーーーーっと低い確率なので実質 衝突 しない 17

18

ようやく 今日のメインテーマです Certificate Transparency とは何か? これは公開鍵証明書に入れるモノなので 証明書の見方が分かっていないとチンプンカンプンになってしまう そのため まずは素数をテーマにちょっと証明書鑑賞をしてみたわけです 19

Certificate は証明書 そして Transparency は文脈に応じて訳すのが難しいですが Google は透明性と訳しています ここで言う透明性とは 証明書の発行 という行為が透明であり 監査 (Audit) 可能であるということです なおこの頭文字を取って CT と呼びます このスライドでも頻繁に出てきますので混乱しないでください 20

Certificate Transparency は 皆さんご存じないでしょうがインターネットには Google という悪の帝国がありまして CT はこの Google が提唱しており SSL 証明書の発行のログを誰でも参照可能な形で取ることで 監視 (monitor) と監査 (Audit) を可能にするものです 既に RFC 6962(Experimental) が出ており Google Chrome で対応しています IE や Safari は当然まだ 21

このように Chrome で CT に対応している証明書を閲覧すると 公開監査が可能です という表示と 透明性に関する情報 というやつが出ます 22

何がしたいのか 究極の理想的には 世界中で発行されるデジタル証明書を すべて CT ログに登録したいんです CT ログサーバは 証明書が登録されるとそのログを保存し 署名を付けたタイムスタンプを返します これを SCT(Signed Certificate Timestamp) と言います この SCT 今後何度も出てくるので覚えておいてください 証明書を CT ログに登録時に発行される タイムスタンプです 23

実際には 証明書はドメイン保有者が認証局に依頼するのが普通ですね そのためこのような流れになります なお この図は細かい部分をはしょっているので実は不正確です それはあとで解説します 今は流れをまず理解するために簡略しています ( 具体的には SCT を払い出して SCT 入り証明書を作る部分が Precertificate を作らないといけないのでこの図では正確ではない ) 24

そして CT ログサーバは一般公開されているため誰でも参照可能です それがナニが嬉しいのかは ちょっと後で解説します 25

Certificate Transparency ですが これは Google が提唱しているものなので 今のところ対応しているブラウザも Chrome だけです それも Mac 版 Chrome ではダメで 今は Windows 版 Chfome しか対応していないようです Chrome には既に CT を確認する機能が実装されているので 簡単に確認できます DigiCert など 対応している Web を見てみましょう この通り 公開監査が可能です と出ています また 透明性に関する情報 から詳しいログ情報を見ることもできます 26

先ほどの 透明性に関する情報 をクリックすると このように監査ログが表示できます ここで出ているログ名 Google 'Pilot' が CT ログサーバのひとつです 27

一方 これは COOKPAD の証明書ですが 監査ログが無いのでこのようなメッセージが出ます 公開監査記録がありません とかなんだか気になる表示です CT は Google が提唱して普及させようとしているものなので こういう不安を煽るようなメッセージは わざとだと思います 悪の帝国のやり口ですね それにしても COOKPAD 言い方は悪いですがレシピサイトに EV 証明書とは 随分まぁ金持ちですなぁ 28

なお SCT は 先ほど OpenSSL 手打ちで見た X509 Extensions という領域に格納されています ( 実は規格上はそうではない形式のものもあるんですが 誰も使っていないので省略します ) openssl でも フィールド名は出ませんが このように OID そのままで良ければ CT な証明書かは確認することができます ( 最新の OpenSSL 1.0.2a なら対応しています ) OID=1.3.6.1.4.1.11129.2.4.2 ここに付いているのが 先ほどの図で証明書登録時に CT ログサーバから払い出されたタイムスタンプ SCT(Signed Certificate Timestamp) ですね 29

Certificate Transparency, 何が嬉しいか CT ログサーバは別に CA 認証局などだけでなく 誰でも閲覧できます 皆さんも普通に URL を叩いてアクセスできますし Web ブラウザもアクセスします こうして多数の目による監視によって 不正な証明書発行 あるいは誤った証明書を検知したいというのが目的です 例えば皆さんが microsoft.com のサーバ管理者だったとして CT ログサーバを定期的にチェックして microsoft.com ドメインへの証明書発行がされていないかを監視します ある日 自分は発行していないのに www.microsoft.com の証明書が発行されたログがあれば 誰かが不正に証明書を発行した!? と検知できるわけです 30

先ほどのが表向きの理由ですが おそらく悪の帝国 Google のメインの目的はこちらだと思います 何より このようなログサーバを運営していると 世界中で発行される SSL 証明書が自動的に手元に集まってきます そのようにインターネットのトラヒックやリソースに関する大量のデータ収集というのは あの悪の帝国が常々狙っているところです 大量の証明書を収集することで 今後のデータ利用に繋げたいのでしょう また もし Google が悪意を持ってログサーバに何かしらの細工をするかも ということも当然考えないといけません このようなことを考えると 例えば Mac の Safari が CT に対応することはまず無いと思います (Google と Apple の仲の悪さは まぁなんとなく分かりますよね ) 31

また Chrome の横暴で注意すべき点があります 実は Chrome は既に CT ログに対応していない EV 証明書では緑表示をやめるということを宣言しています ( なんて身勝手な!) 銀行サイトなどでは 安心のために緑表示を確認してください という言い方をしていますが あれができなくなってしまう ですから EV 証明書を使う場合 CT ログに対応させるか あるいは Chrome で緑表示されないことを無視するか の 2 拓になります なお Google に証明書を提出して どうかホワイトリストに載せてください と頼むこともできます 現実的に もう結構なサイトがこのホワイトリスト登録で対応しています 32

ひるめしを食べようと会社を出たところで 悪の帝国の車を見つけたので撮りました そのうち 私が写真を撮っている様子の写真が地図に載ります 33

次に Certificate Transparency のイヤなところも見ていきます 34

私がイヤだな と思ったのはこれですね 今回の発表に当たって CT ログから色々データを取得してみたのですが 少しクロールしてみると 結構色んな情報が分かるなぁ これあんまり出しちゃいけないんじゃないかなぁ というのが率直な印象です 35

例えば上の 3 つは BANK Of America のものですが 見るからにテスト用のサーバですよね 4 つめは ニフティクラウドの何かですね あるドメインへの攻撃をする際 攻撃者はホスト列挙という行為を行うのですが それが簡単にできます なお一番下のは UC カード カード会社のものだったので たぶんテスト用サーバだろうなという FQDN でしたが 変なちょっかいを受けるとイヤなので これは出さないことにしておきます 36

他にも こんな列挙ができました Ctrix XenApp という デスクトップ仮想化のサーバが簡単に列挙できました 37

msf > use auxiliary/gather/dns_enum という Metasploit を使わなくても CT ログから 攻撃対象ドメインの FQDN 列挙が可能になります また FQDN から新サービスの名前が分かってしまうかもしれない 38

さてこうなると そもそも証明書を発行するときにそんな外部の第三者のサーバに登録しないで欲しい というニーズも出てくるでしょう しかし 例えばトレンドマイクロの Web ページにはこのように書かれています http://esupport.trendmicro.com/solution/ja-jp/1106400.aspx なんと FQDN の秘匿という観点では EV 証明書よりも OV 証明書の方がセキュアです 逆転現象が起きています 39

なんだかぼかして書いていますが, 要するに EV 証明書を CT ログに登録されることからは逃れられません 40

さらに Google( 悪の帝国 ) は CT ログに登録せずに発行された証明書については ホワイトリストを作っているから受け付けるよ! という声明を出しています このホワイトリストに入れてもらわないと EV 証明書なのに Chrome で緑色のインジケータが出ない ということになります これを重視して 一部の認証局はホワイトリスト登録を既にしてしまっています トレンドマイクロはこのように ホワイトリストを提出済みです 一方 DigiCert は EV 証明書を再発行すれば今は CT ログに乗るから そうしてくれ というスタンスのようです 41

次に Certificate Transparency の見方について 42

最初の方で CT ログは誰でも参照可能と言いました https://ct.googleapis.com/aviator/ct/v1/get-entries?start=1&end=1 確かにそうなのですが 実はこれが API しか提供されておらず 人間が見るにはなかなかキツい状態となっています 43

というわけで 作ってみました 簡単に CT ログを見るためのツール Certificate Transparency ガチャです http://ozuma.sakura.ne.jp/ct/ CT ログには通し番号が振られているので それを入れてもいいですし 下の ガチャ でランダムに引くこともできます なんとこのガチャ 課金が不要です!!!!!!!1 44

何度かやってみると レア FQDN とか引けるかもしれません なかなかヒマつぶしになります ( 自画自賛 ) http://ozuma.sakura.ne.jp/ct/ 45

時間が無いので発表できなかったこと 46

先ほど何気なく 証明書に確かに SCT( 覚えていますか? 要するに CT ログから発行されたタイムスタンプです ) が埋め込まれているのを見ましたが 鋭い人はもう気がついているでしょうが これ おかしな話なんです 47

CT ログに タイムスタンプ (SCT) をもらうにはまず証明書を作らないといけない この時点では 当然 SCT はまだ付いていない しかし皆さんがさっき見た証明書には SCT が付いていた なぜ? 実は証明書に SCT を入れるには 事前証明書 (Precertificate) という気持ち悪いものを作らないといけないのです これは 後に発行する証明書と同じシリアル ID を持つなど あまりスマートではない ( と思います ) 後日ブログに書こうと思います 書きました http://d.hatena.ne.jp/ozuma/20150516/1431769141 48

Firefox の CT 対応 https://threatpost.com/mozilla-to-support-certificate-transparency-infirefox/109819 デフォルトでは ON にしない とは言っています 49

GMO GlobalSign さんの記事が大変参考になりました https://jp.globalsign.com/blog/2014/certificate_tra nsparency.html 50

すみだセキュリティ勉強会 http://ozuma.sakura.ne.jp/sumida/ 51