從 OSI model 來想,tls(ssl) 在 session layer, http 在之上的 application layer,因此知道 tls(ssl) 完整保護了 header 跟 response body data
從 python socket programming 來看,會是先建 socket 到 server host/ip 以及 port 443,再加上 ssl wrapper 後,才對 server 送出 GET /PATH/TO/URI 然後收到 response 資料,因此也可以理解 https 連線保護了 http uri 跟傳輸的網頁內容,竊聽者除了知道我們跟哪一台主機、跟 port 連線外(tcp/ip header),除非真正解密,或找到其他安全漏洞,否則無法知道連線內容。
參考程式碼:
https://github.com/sjh/python/blob/master/demo_https_ssl_encryption_parts.py
沒有留言:
張貼留言