Upload
nakamura-hiroshi
View
252
Download
1
Embed Size (px)
DESCRIPTION
"PKI for dummies" in Japanese.
Citation preview
Copyright 2003 Sarion Systems Research
PKIPKI 入門 入門 - Ruby/OpenSSL- Ruby/OpenSSLを触りながら学ぶを触りながら学ぶ PKIPKI
2003-07-122003-07-12
中村 浩士(サリオンシステムズリ中村 浩士(サリオンシステムズリサーチ)サーチ)
後藤 裕蔵(ネットワーク応用通信研究後藤 裕蔵(ネットワーク応用通信研究所)所)
Copyright 2003 Sarion Systems Research
1. PKI1. PKI 概要概要
2003-07-122003-07-12
中村 浩士中村 浩士
Copyright 2003 Sarion Systems Research
PKI: Public Key InfrastructurePKI: Public Key Infrastructure にに関係する事柄関係する事柄
公開鍵アルゴリズム公開鍵アルゴリズム核となる基本セキュリティサービス核となる基本セキュリティサービス公開鍵証明書と公開鍵認証モデル公開鍵証明書と公開鍵認証モデルセキュリティインフラとして利用するための規セキュリティインフラとして利用するための規約約規約に基づくインフラサービス規約に基づくインフラサービス // システムシステム規約に基づく応用サービス規約に基づく応用サービス // システムシステムシステムの運用ポリシーシステムの運用ポリシーシステムの運用者、利用者システムの運用者、利用者法律・保険法律・保険
Copyright 2003 Sarion Systems Research
本資料の扱う範囲本資料の扱う範囲公開鍵アルゴリズム公開鍵アルゴリズム核となる基本セキュリティサービス核となる基本セキュリティサービス公開鍵証明書と公開鍵認証モデル公開鍵証明書と公開鍵認証モデルセキュリティインフラとして利用するための規セキュリティインフラとして利用するための規約約規約に基づくインフラサービス規約に基づくインフラサービス // システムシステム規約に基づく応用サービス規約に基づく応用サービス // システムシステムシステムの運用ポリシーシステムの運用ポリシーシステムの運用者、利用者システムの運用者、利用者法律・保険法律・保険
Copyright 2003 Sarion Systems Research
本資料の構成本資料の構成インフラストラクチャである、とはインフラストラクチャである、とは公開鍵アルゴリズムの概略公開鍵アルゴリズムの概略PKIPKI の基本セキュリティサービスの基本セキュリティサービス
エンティティ認証、データ完全性検証、暗号化の仕組みエンティティ認証、データ完全性検証、暗号化の仕組みPKIPKI における公開鍵認証モデルにおける公開鍵認証モデルRuby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
X.509X.509 公開鍵証明書公開鍵証明書 証明書の失効証明書の失効 証明書の有効性検証手続き証明書の有効性検証手続き CACA 間での公開鍵認証権限の委譲間での公開鍵認証権限の委譲 鍵と証明書の管理鍵と証明書の管理 : : 登録、発行、配布、廃棄登録、発行、配布、廃棄 エンティティあたり複数の証明書エンティティあたり複数の証明書
Ruby/OpenSSLRuby/OpenSSL によるデモによるデモ CACA の構築の構築
Copyright 2003 Sarion Systems Research
インフラストラクチャである、インフラストラクチャである、とはとは
既知で使い易い既知で使い易いサービスインタフェサービスインタフェイスイスサービスの結果がサービスの結果が予測可能かつ有用予測可能かつ有用その結果を達成するその結果を達成する方法は知らなくても方法は知らなくてもよいよい
電力インフラ
ネットワークインフラ
Copyright 2003 Sarion Systems Research
PKIPKI によるセキュリティインフによるセキュリティインフララ
認証を局所化し、広域分散環境でも、安全なサ認証を局所化し、広域分散環境でも、安全なサインオン、シングルサインオンサービスを提供インオン、シングルサインオンサービスを提供可能に可能に
123456
password
Copyright 2003 Sarion Systems Research
公開鍵アルゴリズムの概略公開鍵アルゴリズムの概略対称鍵暗号対称鍵暗号
out-of-band での秘密鍵の共有
暗号化 復号
送信者 受信者
平文
暗号文
Copyright 2003 Sarion Systems Research
公開鍵アルゴリズムの概略公開鍵アルゴリズムの概略非非対称鍵暗号対称鍵暗号
暗号化 復号
私有鍵公開鍵公開
送信者 受信者
Copyright 2003 Sarion Systems Research
公開鍵アルゴリズムの概略公開鍵アルゴリズムの概略ディジタル署名ディジタル署名
署名検証署名
私有鍵 公開鍵公開
Hash
0101001110011010
0101001110011010
0101001110011010
=
Hash
(暗号化) (復号)
送信者 受信者
Copyright 2003 Sarion Systems Research
PKIPKI の基本セキュリティサービの基本セキュリティサービスス
エンティティ認証エンティティ認証データ完全性検証(改ざんの検出)データ完全性検証(改ざんの検出)
暗号化暗号化
Copyright 2003 Sarion Systems Research
PKIPKI における公開鍵認証モデルにおける公開鍵認証モデル公開鍵証明書と公開鍵証明書と CACA
CA
エンドエンティティ
公開鍵証明書
公開鍵の利用者
自己署名証明書
CA によるディジタル署名
信用
Copyright 2003 Sarion Systems Research
PKIPKI における公開鍵認証モデルにおける公開鍵認証モデル公開鍵認証権の委譲公開鍵認証権の委譲
ルート CA
サブ CA
エンドエンティティ証明書
サブ CA証明書
自己署名証明書
信用
Copyright 2003 Sarion Systems Research
PGPPGP の公開鍵認証モデルの公開鍵認証モデルPKIPKI における公開鍵認証モデルにおける公開鍵認証モデル
Copyright 2003 Sarion Systems Research
Ruby/OpenSSLRuby/OpenSSL を用いたを用いたPKIPKI の各種規約の解説の各種規約の解説
X.509X.509 公開鍵証明書公開鍵証明書証明書の失効証明書の失効証明書の有効性検証手続き証明書の有効性検証手続きCACA 間での公開鍵認証権限の委譲間での公開鍵認証権限の委譲鍵と証明書の管理鍵と証明書の管理 登録、発行、配布、廃棄登録、発行、配布、廃棄エンティティあたり複数の証明書エンティティあたり複数の証明書
Copyright 2003 Sarion Systems Research
X.509X.509 公開鍵証明書公開鍵証明書Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
証明書仕様バージョン 署名アルゴリズ
ム発行者名
シリアル番号
主体者名CA か否か
CRL 配布点
鍵の利用法
鍵の識別子
公開鍵
有効期間
拡張フィールド
Copyright 2003 Sarion Systems Research
証明書の失効証明書の失効 CRL 仕様バージョン
署名アルゴリズム
発行者名
CRL 発行日時
次回 CRL 発行日時
失効証明書のシリアル番号
失効日時
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
Copyright 2003 Sarion Systems Research
証明書の有効性検証手続き証明書の有効性検証手続き検証内容検証内容 証明書の完全性検証証明書の完全性検証 ::
信頼点(信頼点( trust anchortrust anchor )が発行しているか)が発行しているか 証明書は期限内か証明書は期限内か 失効されていないか失効されていないか 意図した使用法に従っているか意図した使用法に従っているか
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
Copyright 2003 Sarion Systems Research
証明書の有効性検証例証明書の有効性検証例 11
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
信頼点であるルート CA の公開鍵で、ディジタル署名を
検証する(信頼点であること、改ざんがないことの確認)
信頼点 :AAAArootCA
この証明書の発行者 : AAAArootCA
エンドエンティティの
証明書
Copyright 2003 Sarion Systems Research
証明書の有効性検証例証明書の有効性検証例 22
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
この証明書の発行者 : BBBBrootCA
“BBBBrootCA の公開鍵が見つからない "
信頼点にない
Copyright 2003 Sarion Systems Research
証明書の有効性検証例証明書の有効性検証例 33
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
CRL 配布点
AAAArootCA の証明書失効リス
ト
この証明書の発行者 : AAAArootCA
" この認証は失効されている "
Copyright 2003 Sarion Systems Research
証明書の有効性検証例証明書の有効性検証例 44
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
“localhost” のサーバ証明書
SSL 接続時に、サーバ証明書の
鍵利用法をチェックする
署名、鍵の暗号化
Copyright 2003 Sarion Systems Research
CACA 間での公開鍵認証権限の委間での公開鍵認証権限の委譲譲
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
サブCA:AAAAsubCA
の証明書
ルート CA:AAAArootCA が発
行
CA フラグ
ルート CA
サブ CA
エンドエンティティ
公開鍵認証パス
ルート CA
サブ CA
エンドエンティティ
Copyright 2003 Sarion Systems Research
相互認証証明書相互認証証明書 11Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
AAAAroot
AAAAsub CCCC
A C B D
BBBBroot
BBBBsub DDDD
A 、 C の検証OK
B 、 D は NG
Copyright 2003 Sarion Systems Research
相互認証証明書相互認証証明書 22Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
A 、 C の検証OK
B 、 D は NG
CCCC→BBBBsub の相互認証証明書AAAAroot
AAAAsub CCCC
A C B D
BBBBroot
BBBBsub DDDD
Copyright 2003 Sarion Systems Research
相互認証証明書相互認証証明書 33Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
AAAAroot→DDDD の相互認証証明書AAAAroot
AAAAsub CCCC
A C B D
BBBBroot
BBBBsub DDDD
Copyright 2003 Sarion Systems Research
鍵と証明書の管理鍵と証明書の管理Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
要求要求エンティティ確認エンティティ確認発行発行配布配布鍵更新鍵更新
[email protected] の証明書発行リクエスト
Copyright 2003 Sarion Systems Research
CA
エンドエンティティ 公開鍵の利用者
RA
要求
エンティティ確認
発行
配布
Copyright 2003 Sarion Systems Research
エンティティあたり複数の証明書エンティティあたり複数の証明書
署名鍵と暗号鍵署名鍵と暗号鍵 署名鍵署名鍵 : : 私有鍵のバックアップは不要私有鍵のバックアップは不要
(バックアップを取ったら否認防止はできな(バックアップを取ったら否認防止はできない、とする見方がある)い、とする見方がある)
暗号鍵暗号鍵 : : バックアップが必須バックアップが必須公開鍵アルゴリズムの中には、一方の用公開鍵アルゴリズムの中には、一方の用途にしか使えないものがある途にしか使えないものがある
Ruby/OpenSSLRuby/OpenSSL を用いたを用いた PKIPKI の各種規約の解説の各種規約の解説
Copyright 2003 Sarion Systems Research
Ruby/OpenSSLRuby/OpenSSL によるによるデモデモ CACA の構築の構築
デモデモ CACA 構築用ツール構築用ツール CACA 初期化初期化 : init_ca.rb: init_ca.rb 中間中間 CACA 初期化初期化 : init_sub_ca.rb: init_sub_ca.rb 証明書発行リクエスト作成証明書発行リクエスト作成 : gen_csr.rb: gen_csr.rb 証明書発行証明書発行 : gen_cert.rb: gen_cert.rb
エンドエンティティ証明書エンドエンティティ証明書SSL/TLSSSL/TLS サーバ証明書サーバ証明書サブサブ CACA 証明書証明書CACA 相互認証証明書相互認証証明書
CRLCRL 発行発行 : gen_crl.rb: gen_crl.rb
Copyright 2003 Sarion Systems Research
まとめまとめPKI: PKI: 広域分散環境でのセキュアな認証基盤広域分散環境でのセキュアな認証基盤PKIPKI が提供する、基本セキュリティサービスが提供する、基本セキュリティサービスRuby/OpenSSLRuby/OpenSSL を利用したサンプルを利用したサンプル応用については後半を応用については後半を本格利用には設計時の深い理解、十分な準備、本格利用には設計時の深い理解、十分な準備、信頼度のあるアプリケーションが必要信頼度のあるアプリケーションが必要(( Ruby/OpenSSLRuby/OpenSSL がどうかについてはノーがどうかについてはノーコメント)コメント)
Copyright 2003 Sarion Systems Research
CP/CPSCP/CPS[RFC2527][RFC2527]
CPCP (証明書ポリシー)(証明書ポリシー) 証明書の適用性を指定する証明書の適用性を指定する [X.509][X.509]
コミュニティにおける、コミュニティにおける、 CACA により認証されにより認証された証明書の適用可能性を記述するた証明書の適用可能性を記述する
CPSCPS (認証実施規定)(認証実施規定) CACA による認証をどのように実践するかによる認証をどのように実践するか
Copyright 2003 Sarion Systems Research
ありがとうございましたありがとうございました株式会社サリオンシステムズリサーチ株式会社サリオンシステムズリサーチ www.sarion.co.jpwww.sarion.co.jp [email protected][email protected]
本資料に関するお問い合わせ本資料に関するお問い合わせ [email protected]@sarion.co.jp
Copyright 2003 Sarion Systems Research
参考文献参考文献 11
[1] [1] 青木、稲田、青木、稲田、““ PKIPKI と電子社会のセキュリティ”、共立出版、と電子社会のセキュリティ”、共立出版、 ISBNISBN43201202804320120280 (( 20012001 ))
[2] Carlisle Adams[2] Carlisle Adams 、、 Steve LloydSteve Lloyd 、鈴木訳、、鈴木訳、““ PKIPKI 公開鍵インフラス公開鍵インフラストラクチャの概念、標準、展開”、ピアソン・エデュケーション、トラクチャの概念、標準、展開”、ピアソン・エデュケーション、 IISBN4894712482SBN4894712482 (( 20002000 ))
[3] Charlie Kaufman[3] Charlie Kaufman 、、 Radia PerlmanRadia Perlman 、、 Mike SpecinerMike Speciner 、石橋、菊池、、石橋、菊池、松井、土井訳、松井、土井訳、““ ネットワークセキュリティ”、プレンティスホーネットワークセキュリティ”、プレンティスホール出版、ル出版、 ISBN4931356982ISBN4931356982 (( 19971997 ))
[4] Bruce Schneier[4] Bruce Schneier 、山形訳、、山形訳、““ 暗号技術大全”、ソフトバンクパブリッ暗号技術大全”、ソフトバンクパブリッシング、シング、 ISBN4797319119ISBN4797319119 (( 20032003 ))
[5] [5] Niels FergusonNiels Ferguson 、、 Bruce SchneierBruce Schneier 、、““ Practical Cryptography”Practical Cryptography” 、、 JoJohn Wiley & Sonshn Wiley & Sons 、、 ISBN0471223573ISBN0471223573 (( 20032003 ))
[6] ITU-T Recommendation X.509[6] ITU-T Recommendation X.509 、”、” Information Technology – Open Information Technology – Open Systems Interconnection – The Directory: Authentication FrameworSystems Interconnection – The Directory: Authentication Framework.”k.” (( 19971997 ))
[7] “Public-Key Infrastructure (X.509) (pkix) Charter”[7] “Public-Key Infrastructure (X.509) (pkix) Charter” 、、 http://www.ietf.ohttp://www.ietf.org/html.charters/pkix-charter.htmlrg/html.charters/pkix-charter.html
Copyright 2003 Sarion Systems Research
参考文献参考文献 22
[8] [8] 情報処理振興事業協会情報処理振興事業協会セキュリティセンター、“セキュリティセンター、“ Security related RSecurity related RFCs”FCs” 、、 http://www.ipa.go.jp/security/rfc/RFC.html#13http://www.ipa.go.jp/security/rfc/RFC.html#13
[9] VeriSign, Inc.[9] VeriSign, Inc. 、 、 "Digital ID Services""Digital ID Services" 、、 https://digitalid.verisign.cohttps://digitalid.verisign.com/services/client/m/services/client/
[10] [10] 夏井、夏井、 "" 現代ビジネスとサイバー法 電子署名法現代ビジネスとサイバー法 電子署名法 "" 、リックテレコ、リックテレコム、ム、 ISBN4897975115ISBN4897975115 (( 20012001 ))
[11] Warwick Ford[11] Warwick Ford 他、山田訳、 “ディジタル署名と暗号技術 第他、山田訳、 “ディジタル署名と暗号技術 第 22 版”、版”、ピアソン・エデュケーション、ピアソン・エデュケーション、 ISBN4894715120ISBN4894715120 (( 20012001 ))
[12] The OpenSSL Project[12] The OpenSSL Project 、、 "OpenSSL: The Open Source toolkit for S"OpenSSL: The Open Source toolkit for SSL/TLS"SL/TLS" 、、 http://www.openssl.org/http://www.openssl.org/
[13] [email protected][13] [email protected] 、、 "" オブジェクト指向スクリプト言語オブジェクト指向スクリプト言語Ruby"Ruby" 、、 http://www.ruby-lang.org/http://www.ruby-lang.org/
[14] Michal[14] Michal 、後藤、中村他、、後藤、中村他、 "RubyPKI""RubyPKI" 、、 http://savannah.nongnu.orghttp://savannah.nongnu.org/projects/rubypki//projects/rubypki/
Copyright 2003 Sarion Systems Research
参考文献参考文献 33
[RFC2511] M. Myers[RFC2511] M. Myers 他、他、 "Internet X.509 Certificate Request Message "Internet X.509 Certificate Request Message Format "Format " 、、 RFC2511RFC2511 (( 19991999 ))
[RFC2527] S. Chokhani[RFC2527] S. Chokhani 他、 他、 "Internet X.509 Public Key Infrastructure "Internet X.509 Public Key Infrastructure - Certificate Policy and Certification Practices Framework"- Certificate Policy and Certification Practices Framework" 、、 RFC25RFC252727 (( 19991999 ))
[RFC3280] [RFC3280] R. HousleyR. Housley 他、“他、“ Internet X.509 Public Key Infrastructure - Internet X.509 Public Key Infrastructure - Certificate and Certificate Revocation List (CRL) Profile”Certificate and Certificate Revocation List (CRL) Profile” 、、 RFC328RFC32800 (( 20022002 ))
[PKCS] “Public-Key Cryptography Standards”[PKCS] “Public-Key Cryptography Standards” 、、 http://www.rsasecurithttp://www.rsasecurity.com/rsalabs/pkcs/y.com/rsalabs/pkcs/
[PKCS#10] M. Nystrom[PKCS#10] M. Nystrom 他、他、 "PKCS #10: Certification Request Syntax "PKCS #10: Certification Request Syntax Specification"Specification" 、、 RFC2986RFC2986 (( 20002000 ))