字體:小 中 大 | |
|
|
2014/05/09 11:39:25瀏覽120|回應0|推薦0 | |
誤解: 網頁設計 的HTTPS無法緩存 許多人以為,出於安全考慮,流覽器不會在本地保存HTTPS緩存。實際上,只要在HTTP頭中使用特定命令,HTTPS是可以緩存的。 微軟的IE專案經理Eric Lawrence寫道: "說來也許令人震驚,只要HTTP頭允許這樣做,所有版本的IE都緩存HTTPS內容。比如,如果頭命令是Cache-Control: max-age=600,那麼這個網頁就將被IE緩存10分鐘。IE的緩存策略,與是否使用HTTPS協定無關。(其他流覽器在這方面的行為不一致,取決 於你使用的版本,所以這裏不加以討論。)" Firefox默認只在記憶體中緩存HTTPS。但是,只要頭命令中有Cache-Control: Public,緩存就會被寫到硬碟上。下面的圖片顯示,Firefox的硬碟緩存中有HTTPS內容,頭命令正是Cache-Control:Public。
如果你在網上搜一下,就會發現很多便宜的SSL證書,大概10美元一年,這和一個.com功能變數名稱的年費差不多。而且事實上,還能找到免費的SSL證書。 在效力上,便宜的證書當然會比大機構頒發的證書差一點,但是幾乎所有的主流流覽器都接受這些證書。
由於IPv4將要分配完畢,所以很多人關心這個問題。每個IP位址只能安裝一張SSL證書,這是毫無疑問的。但是,如果你使用子功能變數名稱通配符 SSL證 書(wildcard SSL certificate,價格大約是每年125美元),就能在一個IP位址上部署多個HTTPS子功能變數名稱。比 如,https://www.httpwatch.com和https://store.httpwatch.com,就共用同一個IP位址。 另外,UCC(統一通信證書,Unified Communications Certificate)支持一張證書同時匹配多個站點,可以是完全不同的功能變數名稱。SNI(伺服器名稱指示,Server Name Indication)允許一個IP位址上多個功能變數名稱安裝多張證書。伺服器端,Apache和Nginx支援該技術,IIS不支援;用戶端,IE 7+、Firefox 2.0+、Chrome 6+、Safari 2.1+和Opera 8.0+支持。
部署SSL證書,需要這樣幾步: 1. 在你的伺服器上,生成一個CSR檔(SSL證書請求檔,SSL Certificate Signing Request)。 2. 使用CSR文件,購買SSL證書。 3. 安裝SSL證書。 這些步驟都經過精心設計,保證傳輸的安全,防止有人截取或非法獲得證書。結果就是,你在第二步得到的證書不能用在另一台伺服器上。如果你需要這樣做,就必須以其他格式輸出證書。 比如,IIS的做法是生成一個可以轉移的.pfx檔,並加以密碼保護。 將這個檔傳入其他伺服器,將可以繼續使用原來的SSL證書了。
使用HTTPS不會使你的網站變得更快(實際上有可能,請看下文),但是有一些技巧可以大大減少額外開銷。 首先,只要壓縮文本內容,就會降低解碼耗用的CPU資源。不過,對於當代CPU來說,這點開銷不值一提。 其次,建立HTTPS連接,要求額外的TCP往返,因此會新增一些發送和接收的位元組。但是,從下圖可以看到,新增的位元組是很少的。 第一次打開網頁的時候,HTTPS協定會比HTTP協定慢一點,這是因為讀取和驗證SSL證書的時間。下面是一張HTTP網頁打開時間的瀑布圖。 同一張網頁使用HTTPS協議之後,打開時間變長了。 建立連接的部分,大約慢了10%。但是,一旦有效的HTTPS連接建立起來,再刷新網頁,兩種協議幾乎沒有區別。先是HTTP協議的刷新表現: 然後是HTTPS協定: 某些用戶可能發現,HTTPS比HTTP更快一點。這會發生在一些大公司的內部局域網,因為通常情況下,公司的閘道會截取並分析所有的網路通信。但 是,當它遇到HTTPS連接時,它就只能直接放行,因為HTTPS無法被解讀。正是因為少了這個解讀的過程,所以HTTPS變得比較快。
雖然無法直接從HTTPS資料中讀取Cookie和查詢字串,但是你仍然需要使它們的值變得難以預測。 比如,曾經有一家英國銀行,直接使用順序排列的數值表示session id: clip_image011駭客可以先註冊一個帳戶,找到這個cookie,看到這個值的表示方法。然後,改動cookie,從而劫持其他人的session id。至於查詢字串,也可以通過類似方式洩漏。
這種想法很普遍。人們覺得,HTTPS可以保護用戶的密碼,此外就不需要了。Firefox流覽器新插件Firesheep,證明了這種想法是錯的。我們可以看到,在Twitter和Facebook上,劫持其他人的session是非常容易的。 咖啡館的免費WiFi,就是一個很理想的劫持環境,因為兩個原因: 1. 這種WiFi通常不會加密,所以很容易監控所有流量。 2. WiFi通常使用NAT進行外網和內網的位址轉換,所有內網用戶端都共用一個外網位址。這意味著,被劫持的session,看上去很像來自原來的登錄者。 以Twitter為例,它的登錄頁使用了HTTPS,但是登錄以後,其他頁面就變成了HTTP。這時,它的cookie裏的session值就暴露了。 也就是說,這些cookie是在HTTPS環境下建立的,但是卻在HTTP環境下傳輸。如果有人劫持到這些cookie,那他就能以你的身份在Twitter上發言了。
http://www.piece2ec.com.tw/news.asp?ID=1904
1.位元文化,2002,XML 技術實務,台北:文魁資訊股份有限公司。 2.林宥吟,2002,延伸性企業報告語言之產業應用-以資產管理產業為例,私立中原大學會計系碩士班未出版論文。 3.李果益,2001,JAVA 技術手冊,台北:美商歐萊禮股份有限公司台灣分公司。 |
|
( 知識學習|檔案分享 ) |