絶対完全無料ツールの紹介

エンジニア目線のブログです

#6 暗号化というそもそもの意味と意義 ssh, httpsを具体的にtcpdumpで実証しました

youtu.be

今回は暗号化がどういうものなのかを説明します。

ssh, https, vpn, ipv6などは暗号化されている技術の一つです。

なんとなく安全なものだとはわかっていても具体的にはイメージが
つかない人も多いと思うので、実際tcpdumpを用いて動画をとりました。

まずは、phpからmysqlに接続してSQLを通信傍受できるかどうかを
確認します。

insert文を実行して、それがtcpdumpで実際のinsert文を確認できました。

この環境ではmysqlの通信は暗号化されていないためSQLが丸見えとなります

この環境ではphplocalhostからmysqllocalhostなので丸見えでも
問題ないですが例えばMySQLサーバーをパブリックな環境として公開して
どこからでもアクセスできるようにした場合はそのデータが通るネットワーク
すべてに通信傍受される危険性があります

なので、一般的には内部ネットワークからのIPのみ許可する設定を
している事が多いです。

他にはSSHでポートフォワーディングして直接接続せず
暗号化してから接続する方法もあります

MySQL Workbenchなどでも TCP/IP over an SSH connection
を選んで暗号化する方法もSSHのポートフォワーディングと
実質的に同じです。

次にHTTP Sの暗号化の確認をしていきたいと思います。

まずはhttpでアカウントとパスワード入力してPOSTします。
そのPOSTのデータをtcpdumpで確認します。

POSTされたアカウントとパスワードが確認できました。

次にhttpsにしてtcpdumpしてみます。
しかしPOSTされたデータが取得できませんでした。

このようにhttpでは容易にパスワードを傍受できてしまいます。

今ではほとんどのWEBページでhttpsになっているので第三者がデータを
傍受できる事はできなくなってきてます。

昔はプロキシサーバーが社内のイントラネットにあって会社に不要な
WEBページをブロックしたり、どういったアクセスや入力しているのかを
管理していましたが、HTTPSが主流になってそういった事も少なくなりました

なぜならプロキシサーバーを立ててもHTTPSで暗号化されていて
データが見れないので管理ができないからです。

アイスマンWiFiからクレジットカードのデータを盗んだ方法も
おそらくhttpで通信傍受をして盗んだのではと思います。

こういったように実際tcpdumpでデータの中身を見れるかどうかを検証
しながら説明するとわかりやすく理解できるのではと思い
ターミナルの画面を録画して説明してみました