- 締切済み
128bitSSLって、意味あるんですか?
暗号化技術?のSSLについてですが、インターネットブラウザで再現できるのであれば、意味あるんでしょうか? 動画のコーデックみたいなものだと思い込んでいるのですが、SSLの仕組みに従って暗号化し、閲覧先で解凍のようなことをしているんでしょうか。 そんなことではIE6.0持っている人は全員解読できてしまうじゃありませんか!というのがギモンなのです。
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- sakurabayuu
- ベストアンサー率0% (0/0)
お初です。 前提条件として 共通鍵暗号化方式 サーバは[公開鍵・秘密鍵]のセット 証明書を持っている。 >>約束事なども通信で行っているのに、 これは暗号化アルゴリズムを決めているだけで、知られたからといって解読はできません。 [共通鍵]が必要です。 >>それを解読する秘密鍵も通信しているのに、 秘密鍵は通信しません。通信するのは始めにサーバから貰う[公開鍵と証明書]と クライアント側がサーバーに送る暗号化された[暗号共通鍵]です。 >>そしてそれをウエブブラウザという一般的なソフトで解読しているのに 解読には何をおいても[共通鍵]が必要です。 ブラウザーが同じでもサーバーと対になった[共通鍵]がなければ解読はできません。 既出ですがもう一度流れをおおまかに説明します。 1.公開鍵と証明書をクライアントへ渡す 2.証明書に問題なければ公開鍵から共通鍵をクライアントが作る 3.作った共通鍵をサーバからもらった公開鍵にもとづいて暗号化し暗号共通鍵へ 4.暗号共通鍵をサーバへ渡す 5.サーバは暗号共通鍵を、大事にもってる秘密鍵で解読して共通鍵にする 6.以後、共通鍵同士で仲良く通信をします。
- ency
- ベストアンサー率39% (93/238)
No8 ency です。 SSL では以下の3つが保証されます。 1. 機密性 送受信データの秘密が守られることです。 2. メッセージの完全性 送信したデータが改ざんされずに受信側まで届くことです。 3. エンドポイントの真正性 通信相手が間違いなく意図した相手であることです。 それぞれを保証するために次の機能を用いています。 1. 機密性 ⇒ 「共通鍵暗号方式」によるデータの暗号化 2. メッセージの完全性 ⇒ 「電子署名」による改ざんのチェック 3. エンドポイントの真正性 ⇒ 「電子証明書」による通信相手の認証 「共通鍵暗号方式」で使用する共通鍵を生成するために、公開鍵暗号を使用します。 送信データは共通鍵により暗号化されますので、第三者が盗聴したところで解読することはできません。 また、送信データに「電子署名」を付加することにより、受信側が改ざんのチェックをできるようになっています。 そして、SSL では通常サーバ側の真正性しか確認しないため、クライアントが証明書を用意することはないと思いますが、サーバからの受信した「電子証明書」が正しいことを確認した上で、一緒に送付されてくる公開鍵を使用して「鍵の素3」を暗号化し、サーバに送りつけるわけです。 これにより、「鍵の素3」を生成し暗号化して送付したクライアントは、これを復号できるのは通信相手のサーバのみであることを確信できるわけで、ここから生成される共通鍵が安全である根拠となっているわけです。 # たとえば、ネットでお買い物をする場合、クライアントから見れば # サーバが実は別だったというのは大問題ですよね。 # (最近何かと話題のフィッシングとか。。。) # でも、サーバから見れば、お買い物をしてくれるクライアントは # 誰でも良いわけで、わざわざ認証する必要もありませんよね。 また、データが相手に届いたかどうかの確認は、信頼性のある TCP を使用することにより、SSL が気にしなくても良いようになっています。 tamauwo さんの訊きたいことの回答になっていないかもしれませんが、こんな感じでいかがでしょうか。
お礼
ご回答ありがとうございます。 私ではムリでした。 もうあきらめます。 回答を頂いてもこんがらがってきてわからなくなってきました。 お礼をしようにも、頭がまわらず。 これからは自分の頭を考えてムリしないようにします。
- ency
- ベストアンサー率39% (93/238)
まず、SSL では2種類の鍵暗号方式を使用します。 (1) 公開鍵暗号方式 公開鍵により暗号化し、秘密鍵により復号する。 公開鍵により暗号化したものを公開鍵により復号することは不可能。 このため、公開鍵は平文でクライアントに対して送信されるが、秘密鍵はサーバで厳重に管理されなければならない。 (2) 共通鍵暗号方式 共通鍵により暗号化し、共通鍵により復号することが可能。 それで、次の手順で鍵の交換をします。 1. クライアントから「共通鍵の素1」を平文で送信 2. サーバから「共通鍵の素2」を平文で送信 3. サーバから「公開鍵」を送信 # 「公開鍵」はサーバの公開鍵であることを証明するための「電子証明書」 # と一緒に送信します。 4. クライアントから「共通鍵の素3」をサーバの公開鍵で暗号化した暗号文で送信 5. 「共通鍵の素1」+「共通鍵の素2」+「共通鍵の素3」から「共通鍵」を、クライアント・サーバがお互いに生成 6. 以降の通信には、「共通鍵」を使用する ここで、「共通鍵」が安全であることが保証されるのは、クライアントが送信する暗号化された「共通鍵の素3」が復号されることはない、ということに基づいています。 その理由は、公開鍵は平文で送信されるが、秘密鍵が送信されるわけではないため、たとえ公開鍵を持っている別のクライアントであっても、「共通鍵の素3」を復号することはできないためです。 # よく考えてみてください。 つまり、「共通鍵の素3」を復号できるのは、公開鍵に対応する秘密鍵を持っているサーバだけで、他のクライアントは「共通鍵の素3」を知ることはできません。 結果として、通信中のクライアントとサーバしか知らない「共通鍵」を使用した安全な通信が可能となるわけです。 こんなもんで、いかがでしょうか。
お礼
カギの素というご説明は一番わかりやすかったです。 が、同じソフト(たとえばIE6.0)をインストールしてあれば、少なくともサーバーからの情報を傍受して解読することは可能のように思います。 改ざんについてはどういう暗号かわかっていない別のクライアントからの送信ですから、やみくもにデーターをおかしくすることしかできないという感じでしょうか。 ドラクエの復活の呪文を改ざんできるか!というところでしょうかね。
- boo-system
- ベストアンサー率0% (0/2)
SSLは、デジタル署名など知識まで、入ってくるので簡単に説明したいと思います。ちなみに、公開鍵暗号方式の説明は省略させていただきます。(SSLの説明にはなっていないと思いますが。) 公開鍵暗号方式を利用した安全なデータ通信の保障。 1.まず、公開鍵暗号方式を利用して暗号化された安全な通信をするにサーバーはクライアントに対して、自分(サーバー側)の『公開の鍵』を送信します。クライアント側はサーバーに対して、自分(クライアント側)の『公開の鍵』を送信します。 2.そして、暗号化された通信をするときは、サーバーがクライアントに対してデータを送信するときは、『クライアントの公開の鍵』を利用して暗号化し、逆にクライアントがサーバーに対してデータを通信するときは、『サーバー側の公開の鍵』を利用して暗号化します。 つまり、もし『1』の時に誰かに盗聴されサーバーとクライアントの両方の『公開の鍵』を盗まれたとしても、重要なデータ通信するときは互いの『公開の鍵』で暗号化しているので、暗号化されたデータは解読できる『秘密の鍵』が無い限り安全なデータ通信の保障が出来るのです。 ですが、公開鍵暗号方式は実は大変暗号化や複合化に時間が掛かってしまうので、もっと時間の掛からない共通鍵暗号方式をSSLでは利用します。そして、この『共通の鍵』も以上の様な通信を行っていれば(つまり、『共通の鍵』を勝手にサーバーが生成して、クライアントの『公開の鍵』で暗号化してしまえば)、クライアントの持っている『秘密の鍵』でないとこの『共通の鍵』は盗聴していてもわかりませんよね。あとは、クライアントが『共通の鍵』を受け取ってしまえば後は、『共通の鍵』で暗号化すればサーバーとクライアントで安全な通信が保障されるのです。 しかし、これでもたった一つだけ大きな問題があります。これは、通信を行っている相手が本当に自分が通信したい相手(正規の相手)かという事です。つまり、いくら通信中のデータが安全になったからといって、通信している相手が正規の相手では無かったら無意味ということです。ここを保障している仕組みがSSLであり、暗号化から話が外れるので、ここの話は省かせていただきます。
お礼
お返事ありがとうございます。 クライアントも秘密かぎを持っているんですね。 どうやってみんなのPCにインストールする際に、それが同じにならないようにしているんだろう。と思っています。 私は乱数くらいしかわかりませんが。 下のほうにかかれているのはフィッシングについてですよね。きっと。 情報ありがとうございます。
- kuma-ku
- ベストアンサー率54% (1558/2845)
1)SSL ではServer 側から、証明書と【公開鍵】が手渡されます。 -------- 証明書は、Server の身分証明書になります。 PKI と言う方式では、公開鍵と秘密鍵という二つの鍵を利用します。 -------- ※秘密鍵は、決して誰にも渡しません。 2)Client はServer に暗号化の文書を送るときには、Server からもらった【公開鍵】を使用します。 3)Server はClient から受け取った暗号化のデータを、自分しか持たない【秘密鍵】で復号化します。 反対に、、、 4)Server はClient に暗号化の文書を送るときには、Client からもらった【公開鍵】を使用します。 5)Client はServer から受け取った暗号化のデータを、自分しか持たない【秘密鍵】で復号化します。 つまりは、「暗号化するための鍵【公開鍵】」はInternet を介して相手に送信しますが、「復号化するための鍵【秘密鍵】」は相手に送信しません。 また、この【公開鍵】では暗号化はできても復号化できないよう、一方通行の仕組みになっています。 ですので、傍受されて【公開鍵】が誰かに渡っても、復号化するための【秘密鍵】が無いと復号化できないのです。 例えるなら、車のリモコンドアロックです。 閉める鍵、開ける鍵が別々で、閉める鍵はいろんな人に渡しますが、開ける鍵は誰にも渡さないので、安全なのです。 「開け閉めする鍵が同じでは無い」と言うのが、重要です。
お礼
クライアントも秘密かぎを持っているんですか? ブラウザのIEなどは、どれでも同じプログラムだと思うので、皆さん誰でも同じかぎではないのですか? それとも乱数などをIEインストール時に決めるからいっしょにはなりっこないということでしょうか。 それならナットクですが。
- yamma
- ベストアンサー率27% (29/107)
続けてごめんなさい。 今までの補足をもう一度見直してみて、もう少し整理します。 公開鍵&秘密鍵の関係ですが、どちらも暗号化と復号化が出来る鍵です。ただし「公開鍵で暗号化したものは秘密鍵でないと復号化できない」「秘密鍵で暗号化したものは公開鍵でしか復号化できない」という性質があります。 ですので、相手が秘密鍵をずさんに扱っていたり、どこかに公開していれば(すでに秘密鍵ではないが)、信頼性はなくなります。 通常、秘密鍵は発行元しか持っていないもので、公開鍵などからの偽造も出来ません(数学的な根拠ですが)し、証明書を発行している第三者認証機関にもありません。また通信時に見られるという類のものでもありません(秘密鍵を送ったりする事はない)。 これで説明になりますか?
お礼
頭の中の整理が大変なのですが、秘密かぎ、公開かぎの様子は少しわかりました。 暗号解読用のルール(ここでは秘密かぎ)を送付しないということで、最初のギモンであった”だれでもみれるじゃない?”については解決しました。 あとは、傍受されたときに通信の内容がわからないようにできるか?を今、頭の中で考え中です。 ありがとうございました。
- yamma
- ベストアンサー率27% (29/107)
以前にここで回答した事があるので参考にしてください。 http://okweb.jp/kotaeru.php3?q=227185 No.3とNo.5、No.6の回答が私のものですが、わかりにくければ補足します。ちょっと複雑なんですよね。
お礼
ありがとうございます。 最初から読んでいったのですが、一部リンク切れのところなどあり、断念しました。 yammaさんは他のページでも活躍されているんですね。 すごいです。
- hoihence
- ベストアンサー率20% (438/2093)
http://mars.elcom.nitech.ac.jp/Research/MM/security/ssl/ 個々に詳しく出てます。 http://nablog.nablog.net/blog/a/20000214.html あと、ここなんかも有益な情報です。特に3は習慣付けるようにしといた方がいいです。
お礼
一つ目のURLはサッパリわかりませんでした。 が、2つ目のURLのカギマークの確認は勉強になりました。 ありがとうございます。 が、”こういう暗号で行こう!”という情報をサーバーとウエブブラウザ間でやりとりしているのに第三者が解読できないなんていうのが理由がわからないのです。 その暗号方法も傍受される可能性だってあるわけでしょう。 しかも、ウエブブラウザは誰だって持っているIE6.0。 その点だけがなんともナットクいかないのです。
- kuma-ku
- ベストアンサー率54% (1558/2845)
こんにちは クライアントが持っているSSL の暗号鍵・復号鍵は、クライアントとサーバ間での通信を暗号化します。 動画のコーデックのように、そのコーデックを持っていれば誰でも見られると言う物ではなく、通信時に互いに鍵を交換しあい、その交換した相手にしか復号できない仕組みをとっているため、誰でもご自由に、と言うわけではないです。 現在の暗号・復号化の技術は非常に複雑です。 参考になるページを紹介しておきますので、ぜひご覧ください。 http://www.atmarkit.co.jp/fnetwork/rensai/pki03/pki01.html http://www.atmarkit.co.jp/fsecurity/special/01ssl/ssl01.html http://www.atmarkit.co.jp/fnetwork/rensai/cell02/ssl3.html http://www.nic.ad.jp/ja/materials/iw/2003/proceedings/ [PKI ~基礎と応用~]
お礼
お答えありがとうございます。 2つ目のURLが最もわかりやすかったです。 文中に以下の文面がありました。 >WebサーバとWebブラウザ間にて、使用可能な暗号化アルゴリズムを決定し ここがギモンなのです。 決定したアルゴリズムも回線で通信しているわけすから、それを第三者が知ることもできるはず。 どういう暗号で行こうねと約束をするようなものですよね。 その約束の内容だって、通信しているんですから、傍受だってできるでしょう。 ましてや、一般的なウエブブラウザでそれが解読できるんですから。
- shippo
- ベストアンサー率38% (1216/3175)
SSLの場合公開鍵や秘密鍵がありこれらの鍵を使用しなければ暗号が解読できないようになっています。 秘密鍵は文字通り秘密の鍵ですので、管理者などが厳重保管していますし、128bit符号化してますからそう簡単には暗号は解読できないと思います。 他にも認証作業なども行い安全性を高めているようです。 詳しくは参考URLを見てくださいね。
お礼
お答えありがとうございます。 参考URLは私ではわかりそうもありませんでした。 私はSSLの通信をできるようになりたいということではなくて、約束事なども通信で行っているのに、それを解読する秘密鍵も通信しているのに、そしてそれをウエブブラウザという一般的なソフトで解読しているのに、なんで大丈夫なの?ということなのです。 難しくてまずいいだろうというのは、きっとそうなんだろうとは思うのですが、どういうリクツなのかが知りたいだけなのです。
お礼
たくさんの方に親切なお返事を頂きましたが知恵及ばずなんともわかりませんでした。 ありがとうございました。