網路協定的加密

我們常說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取代。