SSL暗号化通信の仕組み②(暗号方式編)
どうも!WESTエンジニアです!
今日も元気にIT技術の紹介をしていこうと思います!
今回は、SSL暗号化通信の仕組みについて説明していこうと思います!
いろんなフェーズがあってこのSSL通信っちゅうのは成り立ってるんで、まずは暗号方式の仕組みを整理しようと思います
SSL暗号化通信ってそもそもなに?って人は、ここで説明しているんで読んできてもらえたらと思います!
SSL暗号化通信とは何者なのか
※この記事は2021年03月10時点でのIPAのページを参考にして作成しております
では、元気にいってみましょー!
WebアプリケーションにおけるSSL通信には、公開鍵暗号方式と共通鍵暗号方式を併用したハイブリッド方式が用いられる。ブラウザからSSL通信リクエストをサーバ側に送信すると、サーバ側で用意しておいた公開鍵をブラウザに返信する。ブラウザは共通鍵を生成し、受け取った公開鍵で暗号化してサーバへ送信する。サーバ側は、秘密鍵で復号化し共通鍵を取り出す。それ以降の通信は、共通鍵で暗号化・復号化される。
え? え? なんて?
ちょっと一気にいろいろゆーてはるんで、公開鍵暗号方式っちゅう部分から深掘りしていこかー
WebアプリケーションにおけるSSL通信には、公開鍵暗号方式と共通鍵暗号方式を併用したハイブリッド方式が用いられる。
公開鍵暗号方式と共通鍵暗号方式ってのを併用してSSL通信ってのが成り立ってるみたいやね
じゃあ、公開鍵暗号方式ってどんなんかをダンブルドア校長に聞いてみましょう
イメージこんな感じ
ある日、ハリーはハーマイオニーに手紙を送ることにしました
ヘドウィグを使って手紙を送ってる途中、なんとマルフォイに手紙の中身を見られてしまいました
醜態を晒してしまったハリーは今度ばかりはと、他のホグワーツ生に手紙の中身を見られないように魔法をかけて暗号化しました
「ウィンガーディアム・レビオーサー」
マルフォイがまた手紙を覗き見しようとしましたが、今度は魔法がかけられているため、中身を見ることができません
無事にハーマイオニーのもとに手紙が届きました
しかし、解読の魔法をハーマイオニーは知らないため暗号化された手紙の中身を見ることができませんでした
ハーマイオニーの機嫌を損ないかけたため、ハリーは急いで解読の魔法を伝えにやってきました
しかし、物陰に隠れてマルフォイがそれを盗み聞きしていました
そう、解読の魔法を聞かれてしまっては、ハリーとハーマイオニーのやりとりは全てスリザリンに筒抜けとなってしまいます
これじゃあ、グリフィンドールの安全は守れません
そこでハリーは、魔法よりも安全に手紙のやり取りをするために
公開鍵暗号方式という方法を使うことにしました
公開鍵暗号方式に必要なのは、
みんなに配る用の公開鍵
と
自分で持っておく用の秘密鍵
これら2つの鍵はペアになっている特別な鍵で
公開鍵で暗号化したものは、秘密鍵でのみ復号化でき
秘密鍵で暗号化したものは、公開鍵でのみ復号化できます
さっそくハリーは、ハーマイオニーに鍵を作ろうと提案し
ハリーとハーマイオニーはそれぞれ秘密鍵と公開鍵を作りました
ハリーから手紙を出すときは、ハーマイオニーにもらった公開鍵で暗号化
手紙を受け取ったハーマイオニーは、自分で作った秘密鍵で復号化
逆に、ハーマイオニーから手紙を出すときは、ハリーにもらった公開鍵で暗号化
手紙を受け取ったハリーは、自分で作った秘密鍵で復号化
こうすることでたとえ、マルフォイの手に公開鍵が渡ったとしても
復号化できるのは秘密鍵やし
秘密鍵はハリーとハーマイオニー自信しか持っていないため
2人の手紙を復号化することはできません
これで無事にグリフィンドールに平和が訪れました
っとまあ、これが公開鍵暗号方式っちゅうやつです
ただ、この公開鍵暗号方式は暗号化・復号化にすごく手間がかかるため
あんましスピードが速くないねん
インターネットの通信は、割とスピード重視やから
スピードを出すために作られたんが、共通鍵暗号方式っちゅうやつ
共通鍵暗号方式ってのは、その名の通り共通の鍵で暗号化・復号化をしちゃいましょうよってやつ
要は、ハリーが共通鍵を自分用とハーマイオニー用と2つ作って
ハーマイオニーにその鍵を渡す
手紙のやり取りは、その共通鍵で暗号化・復号化するってわけやね
でもここで、みんな思うわけやねんけど
この共通鍵をマルフォイに盗まれたらどないすんねんっと。。。
そう、共通鍵暗号方式は速い代わりに危険なんや
せやから、Webアプリケーションでは公開鍵暗号方式と共通鍵暗号方式を併用したハイブリッド方式が取られてるんや
ハイブリッド方式はこんな感じで
共通鍵をハリーからハーマイオニーに渡すときに
ハーマイオニーにもらった公開鍵で暗号化しちゃう
そうすれば、公開鍵しか持たないマルフォイに復号化されることはないし
ハーマイオニーは自分の秘密鍵で復号化できる
その結果、ハーマイオニーは無事に共通鍵をGETすることができるっちゅうカラクリなんや
ほな、ブラウザとサーバをそれぞれハリーとハーマイオニーに置き換えて
これを読んでみて欲しいんやけど
WebアプリケーションにおけるSSL通信には、公開鍵暗号方式と共通鍵暗号方式を併用したハイブリッド方式が用いられる。ブラウザからSSL通信リクエストをサーバ側に送信すると、サーバ側で用意しておいた公開鍵をブラウザに返信する。ブラウザは共通鍵を生成し、受け取った公開鍵で暗号化してサーバへ送信する。サーバ側は、秘密鍵で復号化し共通鍵を取り出す。それ以降の通信は、共通鍵で暗号化・復号化される。
どうでしょうか?
すんなり入ってきたんじゃないでしょうか?
ただですね。。。
SSL通信には公開鍵暗号方式には欠かせない証明書っちゅうもんがありまして
証明書発行してくれる認証局や認証局のレベルなどちょっとばかし複雑なフローを実は今回省略してます
認証局編はまた記事にしようとおもうんで、是非読んでみてください
今回は、公開鍵暗号方式と共通鍵暗号方式の仕組みとその違いがわかってもらえればOK!
こんな感じでITに関する技術を定期的に記事にしていこうと思うんで
よかったらフォローしてやってください!
ほな、みんなでIT業界盛り上げていきましょーー!!!
バイバイ!
この記事が気に入ったらサポートをしてみませんか?