TLS有兩種策略:簡(jiǎn)單策略和交互策略。交互策略更為安全,但需要用戶在他們的瀏覽器中安裝個(gè)人的證書來進(jìn)行認(rèn)證。
不管使用了哪種策略,協(xié)議所能提供的保護(hù)總強(qiáng)烈地依賴于瀏覽器的實(shí)現(xiàn)和服務(wù)器軟件所支持的加密算法。
HTTPS并不能防止站點(diǎn)被網(wǎng)絡(luò)蜘蛛抓取。在某些情形中,被加密資源的URL可僅通過截獲請(qǐng)求和響應(yīng)的大小推得,[11]這就可使攻擊者同時(shí)知道明文(公開的靜態(tài)內(nèi)容)和密文(被加密過的明文),從而使選擇密文攻擊成為可能。
因?yàn)?a title="安全套接層" style="text-decoration: none; color: #0b0080; background-image: none; background-position: initial initial; background-repeat: initial initial;">SSL在HTTP之下工作,對(duì)上層協(xié)議一無所知,所以SSL服務(wù)器只能為一個(gè)IP地址/端口組合提供一個(gè)證書。[12]這就意味著在大部分情況下,使用HTTPS的同時(shí)支持基于名字的虛擬主機(jī)是不很現(xiàn)實(shí)的。一種叫域名指示(SNI)的方案通過在加密連接創(chuàng)建前向服務(wù)器發(fā)送主機(jī)名解決了這一問題。Firefox 2、Opera8和運(yùn)行在Windows Vista的Internet Explorer 7都加入了對(duì)SNI的支持。[13][14][15]
因?yàn)镠TTPS連接所用的公鑰以明文傳輸,因此中國(guó)大陸的防火長(zhǎng)城可以對(duì)特定網(wǎng)站按照匹配的黑名單證書,通過偽裝成對(duì)方向連接兩端的計(jì)算機(jī)發(fā)送RST包干擾兩臺(tái)計(jì)算機(jī)間正常的TCP通訊,以打斷與特定IP地址之間的443端口握手,或者直接使握手的數(shù)據(jù)包丟棄,導(dǎo)致握手失敗,從而導(dǎo)致TLS連接失敗。[16]這也是一種互聯(lián)網(wǎng)信息審查和屏蔽的技術(shù)手段。
如果Mac OS X中的家長(zhǎng)控制被啟用,那么HTTPS站點(diǎn)必須顯式地在“總是允許”列表中列出。[17]