2. PKI
ディジタル署名の仕組み
PKI
- CA
- 認証局
- RAとIAを包含する
- RA
- 登録局
- 申請を受け付けて、承認や認可を行う
- IA
- 発行局
- ディジタル証明書やCRLの発行を行う
- CSR
- CAに提出する証明書署名要求
- CP/CPS
- 申請
- 鍵ペアを生成
- CSRを作成し、CAに申請
- CAがディジタル証明書を発行
- 確認
ディジタル証明書の形式
ディジタル証明書のチェック方法
- CA、発行元のディジタル証明書を検証
- 証明書内の有効期限をチェック
- 失効情報をチェック
- CRL
- CAからダウンロードする
- OCSP
- オンライン
- OSCPレスポンダ(OSCPサーバ)を立て、CRLを取り込む
- CRL
- ルートCAの確認
- 証明書のレベル
- DV < OV < EV
- DV
- ドメインだけを確認
- OV
- 企業の実在性を確認
- EV
- 最も厳しい審査基準
- 入力されたFQDNとコモンネームのチェック
SSL/TLSのバージョン
- SSL2.0
- SSL3.0
- 禁止
- 脆弱性
- POODLE
- TLS1.0~TLS1.1
- 例外的に利用可能
- TLS1.2
- ギリOK
- 使用できる暗号化を大幅に強化
- TLS1.3
- ハンドシェイク時のデータを暗号化する仕組みに変更
- 現在の一推し
SSL/TLSの通信手順
- Hello Requestの交換
- クライアント側が使用可能な暗号化アルゴリズムや圧縮方式を通知
- サーバ側でそのうちの一つの組み合わせを選択し決定
- サーバからクライアントにメッセージ送信
- サーバからディジタル証明書を送信する
- ディジタル証明書がなければDiffie-Hellmanの鍵交換方式を使用可能
- Server Hello Doneで終了
- クライアントからサーバへメッセージ送信
- サーバの証明書の正当性を確認
- サーバの公開鍵を用いて生成したマスターシークレットをサーバに送信
- クライアントからディジタル証明書を送信する
- Change Cipher Specを送信
- サーバもChange Cipher Specを送信
- 暗号化通信の開始
SSL/TLSに対する攻撃
- ダウングレード攻撃
- 弱い暗号化スイートの使用を強制
- バージョンロールバック攻撃
- SSL2.0等古く弱い旧バージョンの通信を行うように仕向ける
- BEAST攻撃
- POODLE攻撃
- SSL3.0にあるブロック暗号上のパディングに関する設計上の脆弱性
TLS1.2からTLS1.3への変更点
- 危殆化した暗号化の削除
- ハッシュ関数はSHA-256が必須に
- ServerHello以降のハンドシェイクパラメータを暗号化
- 1-RTTでハンドシェイクが完了
HSTS
- HTTP Strict Transport Security
- Webサイトがブラウザに対してHTTPSの使用を強制
- HTTP要求の応答にStrict-Transport-Securityを指定
- プリロードHSTS
- 最初の要求からHSTSが機能する
ディジタル証明書の利用
時刻認証で証明できること
- 存在性証明
- 完全性証明
時刻認証のインフラ
- TSA(Time Stamp Authority:時刻認証局)
- TAA(Time Assessment Authority:時刻配信局)
時刻認証方式
時刻認証の手順
- ディジタル証明書方式
- TSTの発行
- TSTの検証
- アーカイビング方式
長期署名
- RFC3126
- 長期署名フォーマット
- ES
- 電子文書
- ES-T
- ESにタイムスタンプを付与
- ES-A
- ES-Tにパス中の各証明書や失効情報や検証情報を加え、タイムスタンプを付与
- アーカイブタイムスタンプ
- ES-Tにパス中の各証明書や失効情報や検証情報を加え、タイムスタンプを付与