このエントリーをはてなブックマークに追加このエントリをつぶやく

暗号技術入門10 証明書

担当:福田

目次

  • 証明書
  • 公開鍵基盤(PKI)
  • 証明書に対する攻撃
  • まとめ

証明書

証明書とは何か

公開鍵が正しいものかどうかを証明するものが「証明書」

【運転免許証】

写真,氏名,生年月日,有効期限,運転できるクルマの種類など+公安委員会の押印.
公安委員会が「この人は運転する資格がある」と認められていることが分かる.

【公開鍵証明書(Public-Key Certificate : PKC)】

名前,所属,メールアドレスと,その人の公開鍵+認証局(Certification Authority : CA)によるデジタル署名.
認証局が「この公開鍵は確かにこの人のものである」と認めたことが分かる.

認証局

  • 「この公開鍵は確かにこの人のものである」と認めて,デジタル署名をできる人や組織.
  • 国際的な組織や政府が作ったもの,認証局のサービスの提供を業務としている一般企業.
  • 個人で認証局を作ることも可能.

証明書を使うシナリオ

証明書の標準規格

  • 証明書の形式がばらばらになっていては不便なため,証明書の規格が定められている.
  • 最も広く使われているのは,X.509
  • X.509以外の公開鍵証明書フォーマットとしては SPKIやSDSIなどが存在するが,SSLなどの多くのセキュリティプロトコルが ベースとしているX.509がデファクトスタンダードとなっている.

X.509 サーバ証明書の構造

  1. バージョン情報
  2. シリアル番号
  3. 署名アルゴリズム
  4. 発行者情報
  5. 有効期間の開始
  6. 有効期間の終了
  7. サブジェクト(発行先の情報)
  8. 公開鍵のアルゴリズム
  9. 公開鍵
  10. 署名アルゴリズム
  11. 拇印

公開鍵基盤(PKI)

公開鍵基盤(Public-Key Infrastructure: PKI )

  • 公開鍵を効果的に運用するために定められた規格や仕様.
  • あくまで総称であり,単独の規格や仕様を指すものではない.

PKIの構成要素

利用者:PKIを利用する人.
認証局:証明書を発行する人.
リポジトリ:証明書を保管しているデータベース.

利用者

  • アリスやボブのようなPKIを利用する人のこと.
  • PKIを使って自分の公開鍵を登録したいと思っている人と,登録されている公開鍵を使いたいと思っている人が存在する.

公開鍵を登録する利用者

  • 鍵ペアを作成する.
  • 認証局に公開鍵を登録する.
  • 認証局から証明書を発行してもらう.
  • 認証局に登録した公開鍵を無効にしてもらう.
  • 受信した暗号文を復号化する.
  • メッセージにデジタル署名を行う.

公開鍵を使う利用者

  • メッセージを暗号化して受信者に送信する.
  • デジタル署名の検証を行う.

認証局( Certification authority:CA)

  • 鍵ペアを作成する(利用者が作成する場合もある)
  • 公開鍵の登録の際に,本人を認証する.
  • 証明書を作成し発行する.
  • 証明書を破棄する.

リポジトリ

  • 証明書を保存しておき,PKIの利用者が証明書を入手できるようにしたデータベース.
  • 証明書ディレクトリとも呼ばれる.

認証局の仕事

  • 鍵ペアの作成
  • 証明書の登録
  • 証明書の破棄とCRL

鍵ペアの作成

  • 利用者の鍵ペアの作成は,PKI利用者が行う場合と,認証局が行う場合がある.
  • 認証局が鍵ペアを作成する場合,認証局は「プライベート鍵を利用者に送る」仕事を行う必要がある.
  • 「プライベート鍵を利用者に送る」方法として,RFC7292(PKCS #12 Personal Information Exchange Syntax Standard)などで規定されている.

証明書の登録

  • 利用者が鍵ペアを作った場合,利用者は認証局に証明書の作成を依頼する.
  • 証明書を申請するときの規格は,RFC2986(PKCS #10 Certification Request Syntax Specification:証明書署名要求※)などで規定されている.
  • 認証局は運用規定に基いて利用者を認証し,証明書を作成する.
  • 証明書を作成するときには,認証局のプライベート鍵を使ってデジタル署名を行う.

※証明書署名要求(CSR):証明書を申し込むために申請者から認証局へ送られるメッセージ.

証明書の破棄とCRL

  • 利用者がプライベート鍵をなくしたり,盗まれたりした場合,証明書を破棄して無効にする必要がある.
  • 証明書はデジタルデータであるため,リポジトリから削除しても,コピーが利用者の手元に残っているため破棄したことにはならない.
  • そのため,証明書を破棄する場合,証明書破棄リスト(Certificate Revocation List:CRL)を作成する.
  • CRLは破棄された証明書のシリアル番号の一覧に対して,認証局がデジタル署名をつけたもの.
  • PKI利用者は認証局の最新のCRLを調べて,その証明書が有効かどうかの確認が必要.

階層になった証明書

利用者は証明書に施されている認証局のデジタル署名を,認証局の公開鍵を使って検証する.→利用者は公開鍵の正当性をどうやって判断するのか?

  • 認証局の公開鍵に対して,別の認証局がデジタル署名を施すことで,認証局の公開鍵を検証することができる.
  • 認証局が別の認証局の公開鍵を検証するという関係は何重にも繰り返すことが可能.

ボブのデジタル署名をアリスが検証したい場合

さまざまなPKI

  • PKIは「権威を持った認証局が1つだけ存在している」,「全世界のPKIは,たった1つのルートCAのもとで認証される」わけではない.
  • 国や自治体といった公共の組織や団体が認証局を作ってPKIを実現する場合も,ビジネスで使うために会社が社内だけでPKIを構築することも,実験用に友達同士でPKIを構築することも可能.
  • どのようなPKIを構築するかは,目的や規模によって異なり,やり方が固定的に決まっているわけではない.

政府認証基盤(GPKI)

日本が定めているPKIは政府認証基盤(GPKI)と呼ばれていて,認証局の階層や,運用規約,公開鍵の登録・証明書の発行などについて定めている.

証明書に対する攻撃

  • 公開鍵の登録前を攻撃
  • 似た人間を登録する攻撃
  • 認証局のプライベート鍵を盗み出す攻撃
  • CRLの隙を突く攻撃(1)
  • CRLの隙を突く攻撃(2)

公開鍵の登録前を攻撃

認証局がデジタル署名を行う前に,マロリーが公開鍵をすり替える.

似た人間を登録する攻撃

似たような名前の別のユーザー情報を登録したマロリーが,偽証明書をボブになりすましてアリスに送る.

対策

認証局が正しく本人確認を行うことでなりすましを防止する

認証局のプライベート鍵を盗み出す攻撃

CRLの隙を突く攻撃(1)

対策

  • ボブは,プライベート鍵を盗まれないようにする.
  • ボブは,公開鍵が無効になったら可能な限り早く認証局に伝える.
  • 認証局は,CRLを素早く発行する.
  • アリスは,CRLをきちんと更新する.
  • アリスは,公開鍵を利用する前に,公開鍵が無効になっていないかを再確認する.

CRLの隙を突く攻撃(2)

対策

なし

※公開鍵や証明書などの技術を使ってボブの犯罪を検出することはできず,通常の犯罪の捜査が必要.

まとめ

  • 公開鍵が正しいものかどうかを証明するものが証明書.
  • 証明書を発行する人や組織が認証局.
  • 公開鍵を効果的に運用するための規格や仕様が公開鍵基盤(PKI)
  • CRLはきちんと更新,確認する.
  • 認証局,企業,個人にかかわらず,プライベート鍵は厳重に管理する.

memo

  • CAの仕組みは、10年単位で使える

参考書籍

結城浩(2015)『暗号技術入門 第3版 秘密の国のアリス』SB Creative 446pp.
ISBN978-4-7973-8222-8
第10章 証明書(p252-p277)

カテゴリー: 勉強会   タグ: ,   この投稿のパーマリンク

コメントは受け付けていません。