- PR -

PKIの通信について教えてください

投稿者投稿内容
BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2007-12-07 19:47
突っ込まれたくないところなのにw

引用:
angelさんの書き込み (2007-12-07 19:02) より:
引用:
BackDoorさんの書き込み (2007-12-07 18:01) より:
9.CAサーバサイトへ証明書の発行を依頼


Certificate Enrollment Protocolって言うんですかね。
CAサーバに自動で証明書をオンラインで発行してもらう仕組みがあるらしいですね。


そうなのですが実際にはテスト環境で上手く動作しなかったため、実際の環境設定手順
ではCAサーバ側で手動で発行処理をしてますがwww

# 蛇足に関しては確かに微妙ですね・・・。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-12-07 21:42
引用:

angelさんの書き込み (2007-12-07 19:02) より:
蛇足ながら、
引用:
あしゅさんの書き込み (2007-12-05 22:14) より:
・秘密鍵で暗号化したデータは、対になる公開鍵で復号化できる
・公開鍵で暗号化したデータは、対になる秘密鍵で復号化できる

・署名=秘密鍵で暗号化すること
・署名の検証=署名を公開鍵で復号化して一致を検証すること
・証明書=何らかの公開鍵をCAの秘密鍵で署名したもの


この説明はマズくないでしょうかね…。


ええ。まずいです。

RSAの場合はハッシュ値を暗号化することが署名ですし、
DSAの場合はそもそも署名のためのアルゴリズムです。

が、普及のレベルで見ればSSL証明書の署名はRSAなわけで、
細かいことは思いっきり省略してます。

それに、遅くなるのを気にしなければハッシュせずに
全文を暗号化して署名を実現することも可能ですよね?

なので、詳しくは最低ラインを理解してから勉強してくれ、と。

ツッコミ箇所はこの辺で合ってますか?
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-12-08 10:14
おはようございます。
突っ込みどころは、私の意図と一致しています。
引用:
あしゅさんの書き込み (2007-12-07 21:42) より:
ええ。まずいです。
…(中略)…
が、普及のレベルで見ればSSL証明書の署名はRSAなわけで、
細かいことは思いっきり省略してます。


それは、RSA内部のアルゴリズムというある一実装方式を、電子署名とごっちゃにした説明、ということになりませんか?
それだと、電子署名の本質がぼやけるだけなので、それを基に応用を考えていくと壁にぶちあたって、一回ご破算にする必要が出てくるように感じるのですよね。
※実際、私はそうでしたから…。ま、先を考えなければイイだけの話ですけど。
引用:
それに、遅くなるのを気にしなければハッシュせずに
全文を暗号化して署名を実現することも可能ですよね?


うーん。署名の中でハッシュ、というかメッセージダイジェストが出てくるのは必然だと思ってます。( 実際、DSA は SHA-1 を内部で使用しますし )
なので、「全文を暗号化」という発想が出てくるのは危険な香りがします。( 気にすべきは、「遅くなるかどうか」ではないのでは )
※そもそも「全文を暗号化」できるかどうかは不明…。
※それ以前に「暗号化」なのか、という突っ込みも。

[ メッセージ編集済み 編集者: angel 編集日時 2007-12-08 10:14 ]
tohero0987
常連さん
会議室デビュー日: 2007/05/28
投稿数: 39
投稿日時: 2007-12-10 10:47
BackDoor様
ご回答ありがとうございます。

クライアント側からプライベートCAにアクセスできないため、SCEPは使用せず手動でプライベートCAにrequestを持っていき証明書を作成しております。
それをまた手動でクライアントへ持っていきImportしております。
ですので証明書をクライアントが確認する際にプライベートCAにアクセスに行く事がなければ問題はなさそうな気もしました。

blunder様
毎回、アドバイスありがとうございます。
プライベートCA上で確認してみた所、newcert.pem: OK と表示されました。

恐らくクライアントVPNソフトが何らかの制約により証明書を認識できない?ように思えます。他に証明書が使用できるクライアントVPNソフトを探して試してみようと思います。
blunder
ベテラン
会議室デビュー日: 2003/09/11
投稿数: 65
投稿日時: 2007-12-10 12:04
引用:

クライアント側からプライベートCAにアクセスできないため、SCEPは使用せず手動でプライベートCAにrequestを持っていき証明書を作成しております。
それをまた手動でクライアントへ持っていきImportしております。
ですので証明書をクライアントが確認する際にプライベートCAにアクセスに行く事がなければ問題はなさそうな気もしました。



それで合っているように思えます。
それに、そもそもOpenSSLのCAだとSCEPはサポートしていませんから、ネットワークの
疎通性だけの問題ではなくなりますし。

引用:

プライベートCA上で確認してみた所、newcert.pem: OK と表示されました。



おお、そうですか。それなら動きそうなのに、なぜなんでしょう。

引用:

恐らくクライアントVPNソフトが何らかの制約により証明書を認識できない?ように思えます。他に証明書が使用できるクライアントVPNソフトを探して試してみようと思います。



エラーメッセージからすると、証明書のチェーンが認識されてなさそうに見えます。
あまり思いつくことはありませんが、製品によっては、自分の証明書をインストールする
ときに、issuerであるCAの署名の検証とかをして、それがfailすると証明書のチェーンが
作られず、変な状態になってしまう、とかいう可能性もあるかもしれません。つまり証明書の
インストールの順番が関係していて、先にtrustedな証明書(ルート証明書)をインストール
しておいて、自分の証明書からissuerのチェーンをたどって、trustedな証明書にたどり
つかないと、インストールがうまくいかないとか(単なる推測にすぎません)。
それならそれでインストール時にエラーにするなり、警告を出すなりしてほしいところです。
何がどうなっているのか、ちょっと謎です。
あと一息のような感じなのに惜しいですね。


[ メッセージ編集済み 編集者: blunder 編集日時 2007-12-10 12:11 ]
BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2007-12-10 14:50
考え方がおかしい気がします。

引用:
tohero0987さんの書き込み (2007-12-10 10:47) より:

クライアント側からプライベートCAにアクセスできないため、SCEPは使用せず手動でプライベートCAにrequestを持っていき証明書を作成しております。
それをまた手動でクライアントへ持っていきImportしております。
ですので証明書をクライアントが確認する際にプライベートCAにアクセスに行く事がなければ問題はなさそうな気もしました。


実際に証明書を発行したCA局にアクセスできない状況ならば、PKI通信を採用する
意味は希薄な気がしますが・・・。

途中参戦したので当初の質問への回答はしておりませんでした。

引用:
tohero0987さんの書き込み (2007-12-05 19:19) より:

1)2つの機器にインストールする証明書は、それぞれの機器でCSRを作成して
 プライベートCAで署名し、証明書を発行してます。
 Q.そもそも、これらの証明書で2つの機器が認証されるのでしょうか?

2)機器が証明書を使用して通信を開始する時、プライベートCAへ問い合わせを
 しにいくのでしょうか?
 ※2台の機器がプライベートCAにアクセスできる必要がある?

3)2)の場合に、各機器はどうやってプライベートCAの所在を(アクセス先)
  知るのでしょうか?


1)プライベートCAで認証しても問題ないかという点では問題ないと思っています。
  厳密にいうとオレオレ認証と言えなくは無いですが、認証は問題なくできます。

2)通信機器のセッション開設時に証明書に問題が無いかを問い合わせに
  いく筈ですので証明書を発行したCAと通信可能なことは必要条件です。
  一般的には通信機器間でVPNセッションを張るタイミングで証明書に関する
  確認が発生します。一度セッション開設すると再起動がされるまでは認証局
  への問い合わせは行なわれなかったと記憶してます。

3)最初の証明書発行時の手続きで通信機の設定情報内にアドレス登録されます。
  それ以降のセッション開設時ではそのアドレスに問い合わせをします。
tohero0987
常連さん
会議室デビュー日: 2007/05/28
投稿数: 39
投稿日時: 2007-12-10 20:13
BackDoor様

ご指摘ありがとうございます。
おかげさまで、少し前進致しました。

「プライベートCAの所在を知る手順」については、まったく理解できておりませんが、クライアントもCAと通信できる必要がある、という事ですね。

そこで現在のVPNクライアント上に、Windows版OpenSSLをインストールし "プライベートCA(以降PCA2と言います)" を新たに構築して、PCA2でクライアントの証明書を発行(-sign)し、クライアントへインストール後、verifyしたら "Certificate is valid" になりました。

あきらめようかと思ってましたが、もう少しチャレンジしていきたいと思います。
また進展がありましたらご報告させて頂きます。

−−−−−−−経過報告−−−−−−
PCA2のCAcert及びCAkeyを、センターのプライベートCA(以降PCA1)へコピーし、VPNアプライアンス側も再度、認証し直しました。そうしましたら、無事接続、の一歩手前まで行きました。xauthが必要なようなので後日radiusを構築してまた試験をしてみます。
皆様のアドバイスのおかげで、なんとかここまで進む事ができ感謝いたします。

−−−−−−−経過報告−−−−−−
radiusは不要でした。証明書認証+Internalのユーザ認証で無事、接続する事ができました。あと、プライベートCAへのアクセスが行われるのか、の疑問について検証してまたご報告致します。

[ メッセージ編集済み 編集者: tohero0987 編集日時 2007-12-11 14:32 ]
tohero0987
常連さん
会議室デビュー日: 2007/05/28
投稿数: 39
投稿日時: 2007-12-12 16:05
最終報告させて頂きます。

クライアント側の証明書を確認(verify)する際、プライベートCAへの問い合わせは発生しないようです。

色々とアドバイス頂き、無事解決する事ができました。
ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)