- ベストアンサー
自己署名証明書によるSSL通信について教えてください!
SSL通信により、データを暗号化してWeb上でやりとりするシステムの構築を考えています。 そこで自己署名というのを考えているのですが、署名の流れがいまいち分かりません。 認証局利用の場合、私の理解では、 【サーバ側】 1.サーバ側でRSA秘密鍵を生成 2.RSA秘密鍵を元にCSRを作成 3.CSRファイルを認証局に送信 【認証局】 4.CA秘密鍵により暗号化し、サーバ証明書を作成 5.サーバ側にサーバ証明書を送信 【サーバ側】 6.クライアント側にサーバ証明書を送信 【クライアント側】 7.サーバ側よりサーバ証明書を受信する 8.認証局より公開鍵を取得する 9.認証局の公開鍵でサーバ証明書の暗号化された鍵(認証局の秘密鍵で暗号化されたもの)を復号する 10.復号した鍵により、サーバ証明書の暗号文を復号する となります。(間違いがある場合はご指摘下さい) では、自己署名を行う場合はどうなるのでしょうか? 単純にサーバ証明書を自分で作成すると考えてよろしいのでしょうか? CSRファイルの作成などもやはり行うのでしょうか? クライアント側の流れは変わらないのでしょうか? また、この操作は接続毎に毎回行うことになるのでしょうか? (秘密鍵、サーバ証明書は毎回変わるのでしょうか?) 初歩的な質問とは思いますが、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
おはようございます。 今回は、問題の本質を理解するためのチャンスだと捉える手もあるかもしれませんネ。 matsu1010さんのお立場や所属組織の状況が全くわかりませんので、あくまで一般論としてのお話をさせていただきます。 まず、「オレオレ証明書の問題点」と「ルート証明書(万人が信頼できる認証機関)」の重要性については、参考URLの当サイト過去ログを参照されるのが良いかと思います。 できれば、当該過去ログをお読みになってから、以降の本回答の私のお話を読み進めてみてください。(過去ログには、#1のsuzuiさんをはじめ、各回答者が当該問題について詳説していますので参考になるはずです。) さて、とくに企業や法人として証明書(サーバーID)を利用する場合、信頼できる第三者認証機関発行(有償)のものを利用する必要性が高いことがお分かりいただけたでしょうか? これは、責任論だけではなく、コストの面でも筋の通る話です。 私なら、下記の計算式(数字)を根拠に稟議を起こします。(本当は、もっと全体的な枠組みでの予算どりや兵隊確保をしたいところですが、話がややこしくなりそうなので、今回はシンプルに。) ↓ [{(matsu1010さんの給与から算出した時間給)*(調査・設定・運用を含めたオレオレ証明書導入・運用における年間の人的コスト)}+{(Webサイト経由で発生している年間売り上げ)/0.9}-(有償の証明書導入・運用にかかる総合コスト)] ■上記のロジックと数字の算出根拠について■ ↓ 人的コストについては、matsu1010さんの経験や予測を元に、あくまで”一般論”として盛り込むほうがよいでしょうね。(さもないと、「今まで何やってたんだ!?」という話になりかねませんから。) {(Webサイト経由で発生している年間売り上げ)/0.9}という箇所は、オレオレ証明書による警告で発生する機会損失を10%ほど見込んでの話です。(妥当な線ではないでようか?) 上記の計算により、プラスが出れば万々歳ですが、補強材料として、個人情報保護法への「損害賠償」「社会的信用の失墜」を含めたコンプライアンスの問題や、「広告媒体としての費用対効果」などの話を加味しておくことも有効でしょう。(これらの問題は、オレオレ証明書では解決できません。) 一般的な企業を例にとった場合、上記の話が通らない経営陣や決済者であれば、個人的には経営や運営のセンスを疑います。(商売上・道義上、重要な問題だということです。) 以上、直接回答ではありませんが、何らかの形で一助となれば幸いです。 では。
その他の回答 (2)
Jzamraiです。 まずは、お返事感謝いたします。 すこし、結論を急ぎすぎている感が否めません。 まずは、あせらずに過去ログや参考サイトなどで「PKIの基礎の基礎」を勉強なさってください。(ここは、ご自身で何とかされる部分かと思います。) 秘密鍵の秘匿性を含めた第三者認証機関(ルート認証機関)がなぜ「信頼」できるのか、その辺が見えてくれば、有償のサーバーIDの存在理由もおのずと見えてくるはずです。 大変不遜な物言いですが、各論を議論するにはまだ時期尚早だと感じます。 いろいろとお忙しいとは思いますが、一歩一歩確実に理解されていくよう、私からはオススメさせてください。 それでは。
お礼
ご返答ありがとうございました。 もう少し自分で調べてみます。
- suzui
- ベストアンサー率67% (199/297)
またオレオレ証明書の質問ですか・・・ 仕事で使うならオレオレ証明書はやめたほうがいいです。 杜撰な管理のせいで顧客に損害を与えたら、下手すると賠償問題になります。 証明書はいったん取得すれば期限が切れそうになるまで 更新の必要はないです。 当然、秘密鍵も。 だから流れの5.までは一度実施すれば期限切れの数ヶ月前まではやる必要はないです。 6.から先はクライアントがサーバとセッションを確立する度に行われます。 8.以降、誤解があるようなので、 参考URLあたりで勉強してください。
お礼
ご返答ありがとうございます。 やはりセキュティ的には問題があるのですね。 でもどの辺りが問題なのか、自分で判断するためにも、認証の流れをきちんと理解したいのです。 8以降の流れとしては、 8.認証局より公開鍵を取得(認証局の公開鍵がインストールされていない場合) 9.取得した公開鍵より、サーバ証明書を復号 10.復号したサーバ証明書からサーバの公開鍵を取得 11.クライアント側で共通鍵を作成 12.作成した共通鍵を取得したサーバの公開鍵で暗号化 13.暗号化した共通鍵をサーバに送信 14.サーバの秘密鍵により、暗号化された共通鍵を復号 15.同じ共通鍵により、暗号化通信を行う でよろしいでしょうか? 見にくくてすみません。 そこで、自己署名証明書の場合 認証局が行うことをすべてWebサーバ内で行うということでよろしいのでしょうか? 流れは変わらないのでしょうか? また自己署名証明書の場合、 サーバ証明書をルート証明書としてクライアントのブラウザにインストールするということですが、 これはどういうことなのでしょうか? 長文ですみません。 よろしくお願い致します。
お礼
ご返答ありがとうございます。 なるほど、署名の流れをみると誰でもアクセスできてしまうような気がします。 でも、公的な認証機関を利用しても同じではないのですか? サーバ証明書は接続要求してきたクライアントに送信するし、認証局の公開鍵も誰でも取得できるのでは?