#6 暗号化というそもそもの意味と意義 ssh, httpsを具体的にtcpdumpで実証しました
今回は暗号化がどういうものなのかを説明します。
ssh, https, vpn, ipv6などは暗号化されている技術の一つです。
なんとなく安全なものだとはわかっていても具体的にはイメージが
つかない人も多いと思うので、実際tcpdumpを用いて動画をとりました。
まずは、phpからmysqlに接続してSQLを通信傍受できるかどうかを
確認します。
insert文を実行して、それがtcpdumpで実際のinsert文を確認できました。
この環境ではmysqlの通信は暗号化されていないためSQLが丸見えとなります
この環境ではphpのlocalhostからmysqlのlocalhostなので丸見えでも
問題ないですが例えば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でデータの中身を見れるかどうかを検証
しながら説明するとわかりやすく理解できるのではと思い
ターミナルの画面を録画して説明してみました