Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
MITSUNARI Shigeo
2,893 views
プロフェッショナルSSL/TLS 1.2章
社内読書会
Technology
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Downloaded 12 times
1
/ 27
2
/ 27
3
/ 27
4
/ 27
Most read
5
/ 27
6
/ 27
7
/ 27
8
/ 27
Most read
9
/ 27
10
/ 27
11
/ 27
12
/ 27
13
/ 27
14
/ 27
15
/ 27
16
/ 27
17
/ 27
18
/ 27
19
/ 27
20
/ 27
21
/ 27
22
/ 27
23
/ 27
24
/ 27
25
/ 27
26
/ 27
Most read
27
/ 27
More Related Content
PDF
Docker道場オンライン#1 Docker基礎概念と用語の理解
by
Masahito Zembutsu
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
暗号技術入門
by
MITSUNARI Shigeo
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
by
Masahito Zembutsu
PPTX
分散システムについて語らせてくれ
by
Kumazaki Hiroki
PPTX
差分プライバシーとは何か? (定義 & 解釈編)
by
Kentaro Minami
PDF
範囲証明つき準同型暗号とその対話的プロトコル
by
MITSUNARI Shigeo
Docker道場オンライン#1 Docker基礎概念と用語の理解
by
Masahito Zembutsu
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
暗号技術入門
by
MITSUNARI Shigeo
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
by
Masahito Zembutsu
分散システムについて語らせてくれ
by
Kumazaki Hiroki
差分プライバシーとは何か? (定義 & 解釈編)
by
Kentaro Minami
範囲証明つき準同型暗号とその対話的プロトコル
by
MITSUNARI Shigeo
What's hot
PDF
TLS 1.3 と 0-RTT のこわ〜い話
by
Kazuho Oku
PDF
暗認本読書会9
by
MITSUNARI Shigeo
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
KeycloakのDevice Flow、CIBAについて
by
Hiroyuki Wada
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PDF
大規模サービスを支えるネットワークインフラの全貌
by
LINE Corporation
PDF
研究発表を準備する(2022年版)
by
Takayuki Itoh
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
PDF
OpenStackによる、実践オンプレミスクラウド
by
Masanori Itoh
PDF
webエンジニアのためのはじめてのredis
by
nasa9084
PDF
例外設計における大罪
by
Takuto Wada
PDF
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
PDF
Scapyで作る・解析するパケット
by
Takaaki Hoyo
PDF
RSA暗号運用でやってはいけない n のこと #ssmjp
by
sonickun
PDF
MITRE ATT&CKマッピングのペストプラクティスでたよ
by
shuna roo
PDF
Vue.js で XSS
by
tobaru_yuta
PDF
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
by
kiki utagawa
PDF
PythonによるCVアルゴリズム実装
by
Hirokatsu Kataoka
PDF
トピックモデルの評価指標 Perplexity とは何なのか?
by
hoxo_m
TLS 1.3 と 0-RTT のこわ〜い話
by
Kazuho Oku
暗認本読書会9
by
MITSUNARI Shigeo
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
KeycloakのDevice Flow、CIBAについて
by
Hiroyuki Wada
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
大規模サービスを支えるネットワークインフラの全貌
by
LINE Corporation
研究発表を準備する(2022年版)
by
Takayuki Itoh
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
OpenStackによる、実践オンプレミスクラウド
by
Masanori Itoh
webエンジニアのためのはじめてのredis
by
nasa9084
例外設計における大罪
by
Takuto Wada
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
Scapyで作る・解析するパケット
by
Takaaki Hoyo
RSA暗号運用でやってはいけない n のこと #ssmjp
by
sonickun
MITRE ATT&CKマッピングのペストプラクティスでたよ
by
shuna roo
Vue.js で XSS
by
tobaru_yuta
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
by
kiki utagawa
PythonによるCVアルゴリズム実装
by
Hirokatsu Kataoka
トピックモデルの評価指標 Perplexity とは何なのか?
by
hoxo_m
Similar to プロフェッショナルSSL/TLS 1.2章
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
PDF
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
PDF
ただしくHTTPSを設定しよう!
by
IIJ
PDF
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
by
Kenji Urushima
PDF
TLS 1.3におけるハイブリッド耐量子鍵交換 - Hybrid Post Quantum Key Exchange for TLS 1.3
by
Jun Kurihara
PDF
プロフェッショナルSSL/TLS 7章
by
MITSUNARI Shigeo
PPTX
AWSを学ぶ上で必要となる前提知識(SSL)
by
聡 大久保
PDF
RFC7589(NETCONF Protocol over TLS)の勉強資料
by
Tetsuya Hasegawa
PDF
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
PPTX
Apache 2.4 新機能 “SSL編”
by
Ryosuke Yamazaki
PDF
SSLの最新トレンド
by
J-Stream Inc.
PPTX
あんしんなWebサーバーのためのSSL設定
by
Takayuki Ino
PPT
Professional SSL/TLS Reading Chapter 6
by
Shogo Hayashi
PDF
Wp sslandroot certificate
by
Yoshida Yuri
PPTX
TLS & LURK @ IETF 95
by
Kazuho Oku
PDF
『プロフェッショナルSSL/TLS』読書会3章
by
MITSUNARI Shigeo
PDF
Wb倉敷 ssl説明資料
by
真琴 平賀
PPTX
勉強会 Vol2【SSL証明書とは】
by
chimoto
PDF
Fluentd message forwarding with authentication and encryption
by
SATOSHI TAGOMORI
TLS, HTTP/2演習
by
shigeki_ohtsu
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
#mailerstudy 02 メールと暗号 - SSL/TLS -
by
Takashi Takizawa
ただしくHTTPSを設定しよう!
by
IIJ
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
by
Kenji Urushima
TLS 1.3におけるハイブリッド耐量子鍵交換 - Hybrid Post Quantum Key Exchange for TLS 1.3
by
Jun Kurihara
プロフェッショナルSSL/TLS 7章
by
MITSUNARI Shigeo
AWSを学ぶ上で必要となる前提知識(SSL)
by
聡 大久保
RFC7589(NETCONF Protocol over TLS)の勉強資料
by
Tetsuya Hasegawa
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
Apache 2.4 新機能 “SSL編”
by
Ryosuke Yamazaki
SSLの最新トレンド
by
J-Stream Inc.
あんしんなWebサーバーのためのSSL設定
by
Takayuki Ino
Professional SSL/TLS Reading Chapter 6
by
Shogo Hayashi
Wp sslandroot certificate
by
Yoshida Yuri
TLS & LURK @ IETF 95
by
Kazuho Oku
『プロフェッショナルSSL/TLS』読書会3章
by
MITSUNARI Shigeo
Wb倉敷 ssl説明資料
by
真琴 平賀
勉強会 Vol2【SSL証明書とは】
by
chimoto
Fluentd message forwarding with authentication and encryption
by
SATOSHI TAGOMORI
More from MITSUNARI Shigeo
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
Intro to SVE 富岳のA64FXを触ってみた
by
MITSUNARI Shigeo
PDF
暗認本読書会11
by
MITSUNARI Shigeo
PDF
暗認本読書会7
by
MITSUNARI Shigeo
PDF
暗認本読書会4
by
MITSUNARI Shigeo
PDF
暗認本読書会12
by
MITSUNARI Shigeo
PDF
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
by
MITSUNARI Shigeo
PDF
WebAssembly向け多倍長演算の実装
by
MITSUNARI Shigeo
PDF
暗認本読書会5
by
MITSUNARI Shigeo
PDF
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
by
MITSUNARI Shigeo
PDF
暗認本読書会10
by
MITSUNARI Shigeo
PDF
暗認本読書会6
by
MITSUNARI Shigeo
PDF
楕円曲線と暗号
by
MITSUNARI Shigeo
PDF
BLS署名の実装とその応用
by
MITSUNARI Shigeo
PDF
私とOSSの25年
by
MITSUNARI Shigeo
PDF
暗認本読書会8
by
MITSUNARI Shigeo
PDF
HPC Phys-20201203
by
MITSUNARI Shigeo
PDF
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
by
MITSUNARI Shigeo
PDF
暗認本読書会13 advanced
by
MITSUNARI Shigeo
PDF
LazyFP vulnerabilityの紹介
by
MITSUNARI Shigeo
暗号技術の実装と数学
by
MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
by
MITSUNARI Shigeo
暗認本読書会11
by
MITSUNARI Shigeo
暗認本読書会7
by
MITSUNARI Shigeo
暗認本読書会4
by
MITSUNARI Shigeo
暗認本読書会12
by
MITSUNARI Shigeo
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
by
MITSUNARI Shigeo
WebAssembly向け多倍長演算の実装
by
MITSUNARI Shigeo
暗認本読書会5
by
MITSUNARI Shigeo
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
by
MITSUNARI Shigeo
暗認本読書会10
by
MITSUNARI Shigeo
暗認本読書会6
by
MITSUNARI Shigeo
楕円曲線と暗号
by
MITSUNARI Shigeo
BLS署名の実装とその応用
by
MITSUNARI Shigeo
私とOSSの25年
by
MITSUNARI Shigeo
暗認本読書会8
by
MITSUNARI Shigeo
HPC Phys-20201203
by
MITSUNARI Shigeo
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
by
MITSUNARI Shigeo
暗認本読書会13 advanced
by
MITSUNARI Shigeo
LazyFP vulnerabilityの紹介
by
MITSUNARI Shigeo
プロフェッショナルSSL/TLS 1.2章
1.
プロフェッショナルSSL/TLS 1, 2章 2017/4/10 光成滋生
2.
• 『Bulletproof SSL
and TLS』(Ivan Ristic/齋藤孝道訳) • 1~2 TLSの復習 • 3~4 PKI • 5~7 各種攻撃 • 8~ 安全なサーバの設定 • 9 パフォーマンス • 10 TSTS, CSP, 公開鍵pinning • 11, 12 OpenSSL • 13 Apache • 14 Java, Tomcat • 15 IIS • 16 Nginx 概要 2 / 27
3.
• TLSの目標 • 暗号学的なセキュリティ •
安全な通信が最優先 • 相互運用性 • 異なるプログラムやライブラリが同じパラメータで通信可能 • 拡張性 • プロトコルを作り直さなくても新しい技術に対応できる • 効率性 • コストの高い暗号処理を最小限にする 1章 SSL/TLSと暗号技術 3 / 27
4.
• OSIモデル • SSL/TLSはアプリケーション層(HTTP,
SMTPなど)とトラン スポート層(TCP, UDP)の間にある • TLSを取り除いてもTCPの上でHTTPが動く • 暗号技術 • confidentiality ; 機密性 ; 秘密が守られること • authenticity ; 真正性 ; 本人であることを検証できること • integrity ; 完全性 ; 改竄されることなく転送されること OSIモデル、暗号技術 4 / 27
5.
• 暗号システムは鍵以外の全てが攻撃者に掌握されても 安全でなければならない • 暗号アルゴリズムは複数人で共有する •
共有する相手が増えると敵対する相手にアルゴリズムが漏れ る可能性が高くなる • 鍵がないと人数が増えたときに多数の人が復号できてしまう • 優れた暗号アルゴリズムを作るのは難しい • たくさんの人が精査して初めて安全と思われる Kerckhoffsの原則 5 / 27
6.
• 事前に秘密鍵を共有しておきデータを暗号化する • 他人は途中経路で眺めても分からない •
全数探索 • 鍵の種類だけ試すこと • p.6では全数探索しか暗号を破る方法が無いとき計算量的安全 と読めなくもないが必ずしもそういうわけではない • 全数探索しなくて破る方法があったとしても、その方法の計 算量が十分大きければ安全 共通鍵暗号 6 / 27
7.
• ストリーム暗号 • 鍵ストリーム
; ランダムなデータの無限列(バイト列) • 暗号化はこれと排他的論理和を求める • 同じ鍵を使い回さないことが重要 • ブロック暗号 • データの固まりごとに暗号化 • 16バイト単位のものが多い • 任意の長さのデータを扱うには暗号化モードと併用 • パディングなど • 暗号モード • ECB, CBC, CFB, OFB, CTR, GCM • 最近はGCMを推奨 ストリーム暗号とブロック暗号 7 / 27
8.
• データの完全性の検証 • 原像計算困難性(preimage
resistance) • 第2原像計算困難性(second preimage resistance) • 衝突耐性(collision resistatnce) • MAC(メッセージ認証コード) • ハッシュ関数でハッシュ値はデータと一緒に送信できない • 秘密鍵(MAC鍵ともいう)とデータからハッシュ関数を組み 合わせてハッシュ値(MAC値ともいう)を作る • MAC鍵は別途秘密に共有しておく ハッシュ関数とMAC 8 / 27
9.
• 公開鍵暗号 • 暗号化する鍵と復号する鍵を別々にした •
共通鍵暗号はn人のうち二人が秘密に通信し合おうとすると n(n-1)/2個の秘密鍵が必要 • 同じ鍵を使い回すと第三者に漏れやすい • 共通鍵暗号より計算時間がかかることが多い • デジタル署名 • 真正性を検証可能にする技術 • MACはMAC鍵の共有が面倒 • 秘密鍵で署名をつけて公開鍵(検証鍵)で真正性を確認 公開鍵暗号とデジタル署名 9 / 27
10.
• 暗号で使う擬似乱数生成器は予測不可能性が大事 乱数生成器 10 /
27
11.
• AliceとBobが安全に通信できるにはどうするか • 機密性のために共通鍵暗号を使う •
途中で改竄されないためにMACを使う • リプレイ攻撃を防ぐために番号をつける • 共通鍵暗号とMAC鍵を交換するために公開鍵暗号を使う • 本人であることを確認するためにデジタル署名を使う • このあたりの一連の流れをハンドシェイクという プロトコル 11 / 27
12.
• 現在安全かだけでなく、その情報をどれぐらいの期間 守りたいのかについても考えるべき 暗号強度 12 /
27
13.
• 中間者攻撃(man in
the middle attack) • 通信会社と結託して通信機器を乗っ取る • ARP spoofing • 任意のIPアドレスをMACアドレスに結びつける • WPAD hijacking • HTTPプロキシの設定を取得するプロトコルに対する攻撃 • DNS hijacking • ドメイン名を乗っ取る • DNSの設定を変更する • DNS cache poisoning • DNSサーバのキャッシュの脆弱性にたいする攻撃 • BGP route hijacking • ルータが利用する経路制御プロトコルにたいする攻撃 MITM 13 / 27
14.
• 受動的攻撃 • 大規模期間による継続的なモニタリング •
FS • (日和見暗号) • 能動的な攻撃 • 不正な証明書を利用 受動的攻撃と能動的な攻撃 14 / 27
15.
• TLS1.2についての解説 RFC5246参照 •
TLS record = ヘッダ | メッセージデータ • ヘッダ = contenttype | version | レコード長 • シーケンス番号 • 64ビット • 送受信データには含まれない • 通信の双方で保持 • リプレイ攻撃に対する防除 2章プロトコル struct { uint8 major; uint8 minor; } ProtocolVersion; enum { change_cipher_spec (20), alert (21), handshake (22), application_data (23) } ContentType; struct { ContentType type; ProtocolVersion version; uint16 length; / * 最長 2^14 ( 16,384 ) バイト * / opaque fragment[TLSPlaintext.length]; } TLSPlaintext; 15 / 27
16.
• ハンドシェイクの種類 • サーバ認証を行うフルハンドシェイク •
セッション再開のためのハンドシェイク • クライアントとサーバの認証を伴うハンドシェイク • フルハンドシェイク • 接続で使いたいパラメータを双方が提示して合意する • 鍵確立 • 提示された証明書の認証 • マスターシークレットの共有 • ハンドシェイクが書き換えられていないことの検証 handshakeプロトコル 16 / 27
17.
• クライアントの認証はしない一般的なケース p.27図2.2 サーバ認証を伴うフルハンドェイク client server ClientHello ServerHello Certificate ServerHelloDone ServerKeyExchange ClientKeyExchange [ChangeCipherSpec] Finished [ChangeCipherSpec] Finished 17
/ 27
18.
• Certificate • サーバの証明書を送信する •
ServerKeyExchange/ClientKeyExchange • マスターシークレットの生成に必要な情報を送る • ChangeCipherSpec • 接続に必要な情報を全て手に入れて暗号鍵を生成したことを 相手に伝えるメッセージ • 完全性検証の対象外 • 実装が難しいためOpenSSLでCCS injectio攻撃を受けた • Finished • ハンドシェイクのMACを送る(verify_data) 18 / 27
19.
• p.32 図2.3 クライアント認証時のフルハンドシェイク client
server ClientHello ServerHello Certificate ServerHelloDone ServerKeyExchange ClientKeyExchange [ChangeCipherSpec] Finished [ChangeCipherSpec] Finished CertificateRequest Certificate CertificateVerify 19 / 27
20.
• CertificateRequest • クライアントに対する認証の要求と許容できる証明書の種類 •
CertificateVerify • クライアント証明書に含まれる公開鍵に対応する署名 追加部分 20 / 27
21.
• フルハンドシェイクは重たい処理 • 認証などを省略したい •
session resumption • session IDを用いてセッションを再開する仕組み • プロトコル • クライアントがClientHelloにsession IDを含めて送信 • サーバは同じsession IDをServerHelloに含めて送信 • 以前共有したマスターシークレットを使って新しい鍵を生成 • ECDHE_ECDSA • FSの実現のために利用 • 詳細は今まで解説したので省略 セッションリザンプション 21 / 27
22.
• 以前Lucky13攻撃で紹介した図 • MAC(Seq|Header|data)計算してpaddingをつける •
IVを作ってEnc • MAC-then-encrypt(MACしてから暗号化) • pading oracleの攻撃(勉強会1, 2回目) • Encrypt-then-MACという拡張(2014) • AEAD(認証つき暗号) • 64ビットのnonceを付与して暗号化(GCM/ChaCha20) ブロック暗号を使った場合 Seq data MAC(Seq|Header|data) padding Enc(data|MAC|padding) Header ヘッダ IV 22 / 27
23.
• 新しい接続のセキュリティパラメータの合意をえる • クライアント証明書 •
サイトの全接続に対してクライアント証明書を要求すると • 証明書を持っていないと何も見えない • エラーも分からない • サイトのトップページはクライアント証明書なしを許可 • そこからクライアント証明書での接続に誘導 • このときに再ネゴシエーションを使う • 情報の隠蔽 • 2回目のハンドシェイクが暗号化されるのでクライアント証明 書が覗かれない • 暗号の強度変更 再ネゴシエーション 23 / 27
24.
• 片方が通信を閉じたらclose_notifyを送信 • 相手は書き込み中の内容を破棄してclose_notifyを送信 •
強制切断攻撃(truncation attack)を防ぐ • 攻撃者がやりとりを途中で横取りしてブロック • 正しく実装する必要あり Finished 24 / 27
25.
• PRF(pseudorandom function) •
secret, seed, labelを入力としてHMACを使って構成する • PRF(secret, label, seed) = P_hash(secret, label + seed) • P_hash(secret, seed) = H(secret, A(1) + seed) + H(secret, A(2) + seed) + ... where A(1) = H(secret, seed), A(i) = H(secret, A(i – 1)) • マスターシークレット(Ms : master secret) • Ms = PRF(pre_Ms, “master secret”, client_rand + server_rand) • key_block = PRF(Ms, “key expansion”, server_rand + client_rand) • 鍵ブロックkey_blockを分割してMAC鍵や暗号鍵にする • セッション再開時はMsは同じでclient_rand, server_randは新 しく取得する 擬似乱数生成器と鍵生成 25 / 27
26.
• 暗号処理の方法を決めるパラメータの集まり • TLS_鍵交換_認証_アルゴリズム_長さ_モード_MAC/PRF •
例)TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 • 2章残りの節 • ALPN ; application-layer protocol negotiation • CT ; certificate transparency • Heartbeat • NPN ; nextprotocol negotiation • 標準化にはならずALPNに移行 • OCSPステープル • サーバからクライアントに証明書の失効情報を送る 暗号スイート 26 / 27
27.
• TCPデータは暗号化されるがメタデータや下位のレイ ヤは平文のまま • 送信元と宛て先のIPアドレスは分かる •
最初のハンドシェイクは平文 • ブラウザの各種情報を袖手する • ホストの証明書を調査する • クライアント証明書を使う場合のユーザ識別情報を収集 • メッセージの長さ プロトコルの限界 27 / 27
Download