SSHとTLSとSSLとVPNの違い
「この番組は駆け出しエンジニアのじゅんぺいと先輩エンジニアのかいちのりが送る駆け出しエンジニアを中級エンジニアにレベルアップさせるラジオでございますよいしょい今日もかいちさん不在ではいやっていきましょうよやっていきましょうよじゅんぺいさんはい本日はなんか技術的なご質問が届いているとのことでありがとうございますじゅんぺいくん読み上げをよろしくお願いします」
「はいただいまご紹介に預かりました結婚式ですかじゅんぺいが読み上げさせていただきますお便りありがとうございますそしてこの方何度目の登場でしょうおなじみのラジオネーム鳥占い師さんでございます鳥占い師さんいつもありがとうございます本当にありがとうございますまずは感想からはい」
「なんで大学の課題をおろそかにしちゃうんですかね情報系じゃなくて数学系の学部なので仕事とかに直接関わんないしって思った途端にやる気が出なくなってって思った途端にやる気がなくなってしまいますうんわかる確かに関係ないってなったらうん関係ないしなってなりますよね」
「でもさ本当に関係ないかどうかって結局わかんないからね確かにどっかで繋がってくる可能性ありますよねどっかで繋がってくると思ってもやる気出ないから結局結局救えなかっただから」
「やる気あることをやった方がいいんじゃないかなって思いますねつまり単位を落として退学しようって話ですかね単位をギリギリ取ってやる気あることに時間を割いた方がいいんじゃないかなって思いますね間違いないギリギリでまあなんとか頑張ろうって話ですねギリギリは取った方がいいと思う間違いないですねまあなんか楽したいですね僕は」
「あんまりあれですけどとにかく人から課題の答えとかもらってましたねそれは良くないぞ良くないですよ良くないんですよでもギリギリで何とか卒業しましたね卒業どうなんでしょうねやりたいことが見つかったって言ってバーって大学辞めちゃう人とかもいますけどなんやかんや大卒という資格は取っておいていいんじゃないかなって気がするんでまあそうっすね」
「日本にいる以上はもちろんやりたいことあってそっちをやるのも素敵ですけどねちょっとぼちぼち頑張ってほしいですねというのが感想です次本題ポッドキャストで話してほしいこと3つ質問があります1つ目はSSH、TLS、VPNの特徴と違いを教えてほしいですSSHとTLSはどちらも安全な通信を行うためのものでVPNは」
「プライベートネットワークを安全に拡張するものだと思っているのですがなぜ複数の安全な通信方法を使うのでしょうかTLSなどが安全ならばそれを使って全ての通信を行うことはできないのでしょうか2つ目はVPNがどうやって安全な通信を提供しているのかについてです公共のネットワークにトンネルを掘ってその中で通信するから安全だよねみたいなイメージだったのですが他の通信方法ではプライベートネットワークを拡張することはできないのでしょうか」

「3つ目はTLSとSSLの違いについてです現在は基本的にTLSが通信に送られていると思うのですがSSLとは何が違うのでしょうかクライアントの作った共通も」
「共通鍵をサーバーからもらった公開鍵でサーバーに渡してサーバーの秘密鍵で複合化した後はその共通鍵を使うから安全だよねみたいなイメージなんですがそもそもこのアルゴリズムから変わったのかそれとも別の通信分が変わったのですか長文になってしまって申し訳ないですいつも楽しく拝聴していますありがとうございますありがとうございますネットワークのお話ですね主にすごいですねネットワークの全然僕分かんないですね」
「全然僕わかんないですね鳥占いさんがもう頭いいですねちょっと困っちゃいましたちなみに僕はですね今ZESさんのネットワークスペシャリスト浪人中なのでこの辺の内容はですね今年の前半ぐらいにやった記憶がうっすらあるのでおー」
「そこをちょっと掘り出していこうかなと思っておりますよわー助かりますネスペローニンののりさんから聞けるネット企画の話今ネスペローニン1年生まだ次の申し込み始まってないんですけど今の感じだともう一回やるんじゃないかなと思ってますねあー」
「そういうことですか2年生になるということですかなりそうだなと思ってますねまずいですね今はあんまり時間確保できてないなと思っててまあそうですねなので僕の復習も兼ねて今日のアウトプットはさっき言ってたSSHTLSVPNの違い系の八発ぜひお願いしますお話ししていこうと思います今回3つ質問あったので最初のからいきますねはい」
「一つ目sshとtlsとvpnの違いはいこの辺はですねだいたいどういうので使うかという項目的を分けると良いかなと思ってますはい準備君ちなみにsshはどんな時に使えますsshはもう絶対にバレたくないぞっていう時に使うイメージですね何がなんかうん」
「そのデータをやり取りするときに僕はどうだろう使うのって直近で直近っていうかパッと思いつくのはGitのときとかですかねGitで秘密書き公開書き設定してみたいなときなるほどねパッと思いついたやつですねうんうんうん」
「あとはあれじゃないですかねリモートサーバー入る時とかもSSH使うんじゃないですかねそうだはいはい確かにそうですねこれなんでじゃあまず複数の安全な通信方法を使うのかというところで使う目的が結構違っててSSHは今みたいにリモートサーバーにダイレクトアタックみたいなする時に安全にするじゃないですかこれってあらかじめ鍵を交換しておけるんですよね」

「例えばですけどさっきじゅんぺい君が言ったGithubとかってまず鍵を生成するじゃないですか鍵ってペアになってるじゃないですか公開鍵と秘密鍵って2つあってまずこの公開鍵と秘密鍵っていうのはそれぞれ役割が違ってて」
「公開鍵の方は誰でも暗号化できるんですねそれを使えば公開されてますからね一方秘密鍵の方は複合化するときに使えますよとなんでその鍵を持ってる人しか複合できないようにしますよっていうそういうやつですねはい」
「なのでこういうふうなサーバーとアクセスしてやり取りするよっていう時とかは秘密鍵を自分のPCに持っておいて秘密にすることによって自分だけがそれを&Go解読できてみたいなことができますよっていう通信ですね一方TLSTLSは何で使われているイメージあります?これマジで分からないですちょっと恥ずかしいですけどもしかしてこれこれは恥ずかしいね恥ずかしい」
「SSLって言った方がわかりやすいかもしれないねちょっと駆け出しすぎてやばいかもしれないおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおいおい位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位位」
「でhttpsとかって要はブラウジングするときとかに使うじゃないですかなのでまずこれあらかじめ鍵交換ができないんですよねTLSの一部が一つとしてhttpsというかhttps以外で使われてるのあんまり見たことない気がするほぼじゃあイコールと思ってもいいって感じ」
「でもTLSの方がでかいと思うTLS使ってる他のこともあるはずこれは要は使うユーザー全員と鍵交換するなんて無理じゃないですかあらかじめ」
「皆さん使うとき公開鍵登録してくださいねなんてウェブサイトめんどくさすぎて使えないじゃないですかめんどくさすぎますTLSはまたちょっとやってることが違っていてまず一個サーバーの認証っていうのをやってるんですねその前にユーザーが使う前に」
「そのサーバーちゃんとしてんのみたいなところを第三者機関みたいなのがチェックしてでOKだったら証明書みたいなやつを渡してるとだからたまにローカル開発してる時とかにオレオレ証明書みたいなの使ってるとブラウザーが危なくないですかこれみたいなの出てくる時とかないですか鍵マークついてるけど赤いスラッシュバシャって入ってるみたいな」

「はいありますねあれとかは自分で証明書発行してるからこの証明書って本当に大丈夫なのってブラザーが言ってきてるパターンみたいなURLのとこの一番左のとこですよねそうそうそうそうとかは一応あれは暗号化できてるけどその証明書って本当に大丈夫なのかみたいに疑われてる時のやつですねはい」
「サーバー認証っていうのもやってますよとプラスちょっと細かい話は置いておくんですけどTLSは通信するときに鍵交換みたいなことやるんですよお互い秘密の数字を持ち寄ってさらにランダムにできた固定の値と混ぜてそれを渡して計算した結果一致するよねみたいなことをするんですけどはい」
「それをやると他の人が分からないように相手が何の数字を出したかが分かるみたいなそういうことができるんですねへーすごいこれは分かりやすく話せたら1エピソードになりそうなぐらいのやつなんで今日は簡単に言っておきますでもとりあえず通信の直前に」
「お互いにしか分からない暗号のやり取りしますとそれを使って鍵交換して通信を暗号化するっていうのがTLSですねなのでこれのいいところとしては事前に鍵交換してなくても暗号化して通信ができるとそしてVPNVPNどんなときに使いますかバーチャルプライベートネットワーク」
「これはそうですよね僕は今は会社のネットワークに家から入るときにこのVPNを通して入るっていう感じなんでどっかの場所をプライベートでセキュアにつなぐときに使うって感じですかね」
「そうですねネットワークとネットワークをつなぐときに使うのがVPNかなというイメージですかねそうかそうかゲートみたいなイメージですかね例えばVPNつないだ状態でインターネットアクセスするときってまず家のネットワークがあるじゃないですか家のネットワークと会社のネットワークがあって」
「まず家から会社のネットワークに通信するんですね会社のネットワークからインターネットに出てって通信すると思うんですよVPNつないでるときってその家のネットワークと会社のネットワーク部分をつないでるのがまずVPNですよねTLSが安全ならそれを使って全ての通信を行うことはできないのでしょうかっていうところで実はですねこのVPNにTLSが使われるケースもあります」
「暗号化するためにメジャーではないかもしれないなけどその暗号化するためのアルゴリズムとしてTLS使うケースもありますねで」

「実はこれちょっとその2つ目3つ目の質問2つ目かな2つ目の質問にかぶってくるんでちょっと2つ目の質問いきますよはいVPNがどうやって安全な通信をしているかみたいなまずVPNってさなんかトンネルとかよくなんか聞くじゃないですかお便りにもなんか公共のネットワークにトンネルを掘ってその中で通信するから安全だよねみたいなっていうイメージがあるっていう風にもらってるんですけどはい」
「個人的にはこのトンネルっていう表現はなんか厄介なんじゃないかなって気がしてるというか結局めっちゃ簡単に言うと暗号化と認証してるだけなんですよ普通にインターネット通ってるはず通信はだけどその外部から見れなくなってるからトンネルみたいだよねってなってるみたいな」
「っていうのがまずありますよとVPNね何種類かあるんですよね何種類かあるのかここではちょっと3つ紹介するんですけど1つはインターネットVPNこれはその通信にインターネットを使いますよと家のネットワークから会社のネットワークに伝達するときにインターネットを普通に使ってますよっていうパターンですね」
「もう一個はIPVPNIPVPNこれは通信キャリアが持っている広域IP網というネットワークがあるんですけどそれを使っているパターンというのがあるんですねこれは多分インターネットではないはずだからその例えばネットワークのキャリアとかだとあれかドコモとかかドコモじゃねえわ」
「NTTとかが持っている専用の回線を使わせてもらうみたいなパターンですね今の2つの特徴でいうとインターネットVPNは費用安いでもインターネットを使うから帯域とかは保証されないネットワークのスピードというか遅い時もあるし早い時もあるしみたいな」
「一方キャリアの通信を使うIPVPNは割高なんですけどそういう帯域とかも割と保証されるしあとやっぱ通信キャリアからしたらお客様なんで結構サポート手厚いっていうのがありますともう一個がSSLVPNっていうのがあってこれがさっき言ったTLS使ってるやつですねこれについてはちょっと深掘りやめときます」
「SSLVPNってのもあるんですけどちょっと上のインターネットとかIPとかとはねレイヤーちょっと違う話をしちゃったかもしれないでちょっとここでさっき出てきたTLSとVPNで使ってるプロトコルの違いをお話しするとVPNの暗号化するときってIPsecっていう技術使うんですよはいIPsecでこれは何かというと」
「目的としてはやることは本当に暗号化とか認証とかそういうのをやりますよとだけどレイヤーが違うんですよねやるレイヤーが違うってどういうことかというとインターネットとかで通信する時の仕組みでなんかパケットとかさなんか聞いたことありますはいああいう送るデータっていろんな情報を付け加えていくんですよそのレイヤーごとに」

「で受け取った側はその外側のレイヤーから順番にめくってって正しいところに届けるみたいなことをするんですけどさっき言ったTLSっていうのは実はトランスポート層っていうところで働くやつなんですねうん」
「トランスポート層で暗号化すると何が起きるかというとその内側は暗号化されるんですよ内側アプリケーションでやり取りしている情報とかそういうのは暗号化されるんですけどじゃあこれIPアドレスどこなのみたいなIPって実はトランスポート層よりも1個外側の情報なんですけどそういう外側の情報って暗号化されないんですねなるほどだからなんかこのIPなんか」
「IP適当なんですけどIP200.1.4.5にこの謎のデータを届けたいんですっていう状態になるんですね一方IPSECっていうのを使ってる方IPSECっていうVPNの方はIPSECっていうのを使ってるんですけどこれネットワーク層ごと暗号化できるんですよだからさっきのIPもそうそうそうIPも包んだ上で暗号化してるんですねほう」
「で別のIPつけてるみたいな感じなのかな多分だから一見その情報を傍受しただけだとこのデータがどっから届けられてどこに送ろうとしてるのかがわからないっていうところまで暗号化できてるより大きい暗号化してるんですよねなのでそれを傍受したとてこれがどっから送られてどこに届けようとして一体何を届けようとしてるのかがわからないからそんなの実質トンネルに入ってるんだもんじゃんみたいな」
「なるほどこれを仮想的にやってますよっていうのがVPNっていう感じですかねつまりTLSは謎のものをどこに届けてるかは分かる一方IPsecを使ってるVPNは謎のものをどこに送るかすら分かんないしどっから来たのかも実は分かんない」
「っていう状態になってますねなるほどありがとうございます謎オブ謎ってことはこれが2つ目の質問の回答なのかVPNがどうやって安全な通信をしているかこれはIPSECという技術を使って暗号化していることが多いです他のプロトコルを使っているケースもありますありがとうございますすごいなあとは暗号化の方法も実は」
「ちょっとモードみたいなのがあって今IPが暗号化されますって言ったんですけどされないモードもありますいけちゃうんだトランスポートモードとトンネルモードっていう2つのモードがあるんですけどトランスポートモードの方はIPの方が見えちゃいますこれは主にモバイル通信とかでやる時とかにモバイル通信からやる時とかに必要なやつでソフトウェアを使って暗号化するんですねVPN用のソフトウェアみたいな」
「一方トンネルモードはVPN用の機器とか使ったりしますねVPNゲートウェイっていうこのゲートウェイを通したらめちゃめちゃ暗号化されるみたいなやつなのでVPNっていうと」

「結構実は幅が広くていろんな方法で暗号化してるし暗号化される範囲もちょっとモードによって違うけど目的としてはネットワークとネットワークをつなぐときに使うって感じですかねありがとうございますまだ一つ目の回答は出てないですよね一つ目出てないっけTLSだけじゃダメだよっていう話はあれしましたっけ」
「TLSは通信の時に鍵交換するよっていうこれもビュッペにするべきかそれであれですねその方式が適した通信がそれぞれにあるからTLSだけを使うってわけにはいかないんですよって話になるんですかね」
「そうですね例えばですけどvpnさっきipのところを隠しちゃって言ったんですけどそれをやっちゃうと通信できなくなるんじゃないかなウェブサイト見ようとしたらはいはいはいなるほどipわかんないですからねしかも向こう側にvpnの解読するためのマシンないしねなるほど」
「まあやっぱりそれぞれだからその通信に応じて一番できる最大限の暗号化をしに行ってるんじゃないかなって気がするね確かにこれうん」
「そういう目的があるのかもしれないなのでSSHとかだったら事前に鍵交換ができるからそれを使って暗号化してるしTLSだったらその時に鍵交換しなきゃいけないからIPまでラップしてしまったら良くないよっていうのがあるしVPNだったらネットワーク間をつなぐために機器設置したりとかソフトウェア入れたりとかができるからもうちょい広い範囲で暗号化できるよみたいな分かりやすい感じかなすごいありがとうございます」
「なので目的に応じてちょっとずつ特徴が違うんで使い分けているというところがありますねありがとうございますこれで一つ目も解決最後三つ目ですかね三つ目TLSとSSLの違いについて現在は基本的にTLSが通信で使われていると思うのですがSSLとは何が違うのでしょうかということでまずおっしゃっている通り今は多分TLS以外使ってないはずというかSSL使ってたらやばいですねやばいんですねやばいと思います」
「でこれなんでこれ2つあるのっていうのとあと用法の使い分けについてもちょっとお話ししていこうかなと思うんですけどお願いしますはいもともとSSLっていう名前だったんですよでこれが暗号化とかするためのアルゴリズムだったんですけどある時ですねバージョン3の時かなSSLが2位」
「プードル攻撃というのを食らいましてプードル攻撃ワンちゃんが100匹集まってきてインターネット触っている人を噛みまくってしまうという悲劇の攻撃なんですけど物理的にですか101匹ワンちゃん事件ですねそうですそういう事件があって嘘ですよね嘘ですよ」

「プードル攻撃っていう攻撃があってその時にSSLに致命的な脆弱性が発覚したんですねもうこれはバージョンアップとかそういうのじゃ無理だっていうレベルのやつそれはやばいなので急いでTLSを普及させたっていうそのプードル攻撃はその脆弱性を見つけて攻撃してきたってことなんですかそうじゃないかなちょっとねプードル攻撃詳細あんま知らないんですけど」
「一般的なことを言ってますねプードルとは暗号化された通信からその脆弱性をついて認証情報やクッキー情報を盗み出す攻撃です簡単に言うと暗号化がしてたけど普通に機密データ取れるようになっちゃったよっていう攻撃ですねこれはやばいじゃんってなって急いで違う仕組みを導入しなきゃってことで導入されたのがTLSですねなるほど」
「違いで言うとまず使ってるアルゴリズム違います裏側でさっき言った通り事前に鍵交換とかができないんで都度やるんですけどその時に指定できる暗号化用のアルゴリズムが違ったりとか暗号化のアルゴリズムだけじゃなくて多分諸々違うはずちょっとあんまり細かいところまではあれなんですけどとりあえずSSL危ないから」
「TLSじゃダメだって切り替えていったっていうのがここの違いですねなるほどですねSLSの致命的な脆弱性をカバーするためにTLSが出てきたので基本はそっちのはずそうめちゃめちゃ喋ってて不安なのでもし間違いとかあったらお便りで教えてほしいですねそうですねざっくりおさらいしますかしますかはい」
「いいですか?SSHは外部のサーバーにアクセスするためのものですよとこれはあらかじめ暗号化の鍵を交換しておけるよねっていう方法で通信していますTLS」
「これはちょっと複数のことやってるんですけどまず事前にサーバーの妥当性みたいなのを証明してますよっていうのがあるのと通信するときはその時に鍵交換を行ってお互いだけが知れる共通鍵みたいなやつを導き出してますよとそこで通信をしてますVPNはネットワークとネットワークをつなぐためのやつでめっちゃでかい範囲を暗号化してます」
「VPNが安全な通信をするためにはいろんなアルゴリズムがあったりするんですけど代表的なIPSECという方法を使ってやる方法だと専用の機器とかを置いてその機器を通すとすごいいっぱい暗号化されて送られるみたいな受け取る側はVPNゲートウェイを通すとすごい暗号化が解読されてゲットできるという仕組みですねこれはネットワークとネットワークをつなぎますと」
「最後SSLとTLSの違いで言うとSSLはやばかったからTLSに変わっていったっていう感じですね中身も丸ごと違うんじゃないかなわかりやすいありがとうございますいやさすがですねすごい最後に言い訳なんですけど補足ですねはい補足TLSのところに関して言うとちょっと間違ったことを言ってそうなので」

「いつかちゃんと調べてちゃんとエピソードにしたいなっていう風に思っておりますそれぐらい重いんですねTLSはこれで1エピソードいけるね多分それは言ってたような気もするけど楽しみにしてますなんで若干TLSに関しては嘘っぽいことを言ってる気がするんですけど大枠はこんな感じかなというところですねはい了解しましたはい」
「ありがとうございますいやーすごいですねこんだけ話せるのがすごいですいやー落ちそうまた落ちそう落ちそうねスペなんか話してと思ったわそこは頑張ってほしいですね僕が言えないですけど頑張ってほしいです怪しい漢字マックスだったわ」
「ありがとうございました次回作も楽しみにしていますなんとかもうちょい分かりやすいタイミングに分割して別パターン出せたらなと思っています嬉しいですありがとうございましたじゃあ締めますかじゃあ今回じゅんぺいがチャレンジしてみますかはいじゃあ締めの挨拶ということでひまじんプログラマーでは」
「様々なご意見を募集しておりますはいXで今回で言うとネットワーク関連の話TLSとかいい解説とかあればそれでもご意見あればお願いします」
「なんかTLSの分かりやすい記事とかあったらぜひちょっと欲しいですねいいですねぜひお待ちしてますお待ちしてますはいであとはXでハッシュタグひまじんプログラマーでいろんな感想をやったり一個意見などお待ちしてエゴサして見ておりますのでぜひぜひそちらもよろしくお願いします2回同じこと言った?あれ?確かにはいであとは」
「一度の番組のグーグルフォーム番組紹介のグーグルフォームからお便りやメールアドレスで直接ご意見いただいても非常に助かりますちょっと今お便りとかですね」
「結構溜まっちゃってるんですけれどもなんとか全部読んでいきたいと思いますのでまだまだお待ちしております頑張らせてくださいあとは各種ポッドキャストで配信しておりますのでそちらの方いいねと思ったらぜひ高評価フォローの方お願いできればなと思いますお願いしますじゃあそんな感じで今日は終わりですかねじゃあまた次回バイバイ」
「なりたーい!」
