網路協定的加密

我們常說SSH是安全的,Telnet是不安全的,因為傳輸的過程當中沒有加密,所以如果有人能在中間擷取封包就能看到帳號密碼,那是真的嗎?



我們試著連上一個使用telnet協定服務輸入帳號密碼,



奇怪,我不是打aabbcc嗎?怎麼只有一個a呢?



原來是因為他是一個字元一個字元傳輸的,



這時候可以使用Wireshark的TCP Stream來看,他會把多筆TCP整合成軌跡。



網頁如果是使用http,出現輸入帳號密碼的時候。



也是用明碼傳輸。



另外FTP也是明碼傳輸。



https就算抓到封包也都是加密的,什麼都看不到,那是不是表示只要能找到加密的金鑰就可以解密了呢?

如何抓取本機電腦 symmetric session key 可以參考這篇
https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/




我們把https傳輸加密的 symmetric session key 想辦法存成檔案。



找一個使用https輸入帳號密碼的網站。



把金鑰餵給Wireshark,果然發現底下多一個解密的欄位,然後帳號密碼資訊還是找的到。

結論:由於 Telnet、Ftp和http都是使用明碼傳輸資料,如果資料中間被人擷取封包,很容易得到帳號密碼,因此目前都被SSH、Sftp和https取代。

留言

這個網誌中的熱門文章

FortiGate 網路基本設定

Windows AD 架設

電腦的路由表設定