エンジニアが知っておくべきSSL/TLSの知識(仮)

358 Views

January 31, 14

スライド概要

エンジニアが知っておくべきSSL/TLSの知識(仮)

発表資料の下書き

profile-image

秋葉原生まれ大手町育ちの歌って踊れる江戸っ子インフラエンジニア。 0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、 SNSとCGMの力で世界を幸福にするのがライフワーク。 市民、幸福は義務です。 あなたは幸福ですか?

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

エンジニアが知っておくべき SSL/TLSの知識 (予稿)

2.

最近のニュースから: GlobalSignの旧ルート証明書の有効期限切れ • RHEA-2014:0104-1 openssl enhancement update https://rhn.redhat.com/errata/RHEA-2014-0104.html • 旧ルート証明書の有効期限切れに伴う影響範囲について https://jp.globalsign.com/support/faq/538.html • RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ http://heartbeats.jp/hbblog/2014/01/rhel5centos5globalsign.html • WebAPIやOpenIDでSSLエラーが起きる現象につきまして http://techblog.yahoo.co.jp/maintenance/4/ • Y!J API が止まった日 - GlobalSign の Root 証明書切れから学んだこと http://oauth.jp/blog/2014/01/30/globalsign-root-cert-expired/

3.

何が起きたのか? 何が問題だったのか? • 起きていたこと • RHEL5(CentOS5)に含まれていたルート証明書が古かった • 2014年1月28日21時で期限が切れた • SSL通信において、証明書の検証が失敗し、通信ができなくなった • 問題だったこと • GlobalSignは以前から2028年1月28日有効期限の新しいルート証明書を配 布していた • RedHatが証明書の更新に気付かず、古いルート証明書の配付を続けた • GlobalSignがその状況に気付いていなかった

4.

さらなる問題: 誤った回避方法の紹介 • 「証明書の検証をやめる」 • 例:curlに-kオプションを付ける • よくある誤解 • 相手の認証ができていなくても暗号化できればいい • データセンタ内のサーバだし盗聴とかされないよ • 一般的に認識されているよりも大きなリスクがあります。

5.

そもそもSSL/TLSとは 簡単なおさらい • 役割 • コネクション型通信(通常はTCP)の上で以下を提供 • PKI(公開鍵基盤)を想定した公開鍵証明書による相互認証 • 通信内容の暗号化・改ざん検出 • 歴史 • 1994年(今から20年前)にNetscape Navigator 1.1にてSSL 2.0登場 • 1995年にNetscape Navigator 2.0にてSSL 3.0登場 • 1999年にSSLの問題を改善してRFC2246 TLS 1.0として規定

6.

暗号化アルゴリズム 共通鍵暗号と公開鍵暗号とハッシュ関数

7.

SSL/TLSが実現していること <認証> • PKI(公開鍵基盤)を想定した公開鍵証明書による相互認証

8.

SSL/TLSが実現していること <鍵交換>

9.

SSL/TLSが実現していること <暗号化> • 共通鍵暗号による暗号化

10.

SSL/TLSが実現していること <改ざん検出> • HMAC(ハッシュ関数によるメッセージ認証コード) • シリアル番号

11.

暗号化と認証の関係 「認証しない」の危険性 • 暗号化技術の本質は「鍵交換」 • たるい

12.

PKI(公開鍵基盤)

13.

認証局証明書ストア 「何」を信頼しているのか

14.

地球人類のパンドラの箱 認証局証明書ストアの配布 • 運用ポリシー • 政府認証基盤(GPKI) • 地方公共団体組織認証基盤(LGPKI) • どこからダウンロードしてきた?

15.

「証明書検証オフ」のリスク 本当はこわいcurl -k