所有網路通訊都應該加密嗎?

2021-07-14 04:37:24 字數 2840 閱讀 2275

如今這個時代,免費、開放的wifi無處不在。這給wifi竊聽者有機可乘。當你通過wifi的接入點訪問各種**時,他們可以很容易地擷取你用以標識身份的cookie。我曾經在「breaking the web's cookie jar」(開啟網路的cookie罐頭)一文中談到過這一點。而且如果不對現有網路基礎設施大刀闊斧地改變的話,這個問題基本上難以解決。

舉例來說,我最近發現twitter悄悄地做了乙個改變(這個改變對於所有使用者來說都是透明的、不易察覺的),它預設情況下會使用加密的網路連線來進行通訊。你可以通過瀏覽器位址列呈現的綠色,來判斷出當前的網路連線已經加密過了(大部分時髦的瀏覽器都支援這樣的特性)。

我一開始對此有些抗拒。我覺得有點矯枉過正了。我一直認為只有像電子郵件服務(你可能在郵箱裡存放了登入其他所有**的密碼)和銀行業才需要如此謹慎。

是的,你可以天真地主張每個**都應該時時刻刻加密所有的網路通訊,但在我看來,那是「一刀切」的解決方案。我想看到的是一種更好的、更安全的身份標識協議來代替那古老的http cookie。其實我不介意別人看到我在stack overflow上其他的公開活動,那本來就不是什麼秘密。但是,我不能不介意有人偷走我的cookie,然後以我的名義去為非作歹!為了保護那一點點cookie資料而把所有東西統統都加密,我還是覺得這實質上就是矯枉過正。

當然,為匿名訪問或者沒登入的使用者加密網路通訊是沒必要的。twitter就沒那麼做。在使用者登入之前,使用的都是普通的http連線;而一旦登入,網路連線就自動切換到https。這麼做挺合理的!

作為使用者,我絲毫沒有感覺到由此帶來的不便,它讓盜取我的twitter賬號或竊聽我在twitter上的活動(聽起來似乎很可怕)變得異常困難。我其實很難找到令人信服的理由來反對這麼做,即使像保護我的twitter賬號這樣相對來說微不足道的小事,它的好處仍然是顯而易見的。因此,也許twitter的做法是對的,也許所有的**都應該預設使用加密的網路連線。一年前我還認為這種做法跟佩戴「錫箔帽」一樣,不過,如果著眼於長遠利益、讓整個網路世界健康發展的話,我現在想知道這麼做是否真的是值得的。

譯者注:錫箔帽是用一層或多層鋁箔或者類似材料製成的頭飾。有人販賣這種帽子,聲稱它可以抵擋電磁場對大腦的影響,或抵擋思想控制或被人讀腦。不過,這是沒有科學依據的。它已經淪為乙個廣為人知的人物形象刻畫和嘲笑用詞,意指**妄想,並常常用來形容陰謀論者。

那麼,為什麼不來乙個「一刀切」呢?讓我們把所有東西都統統加密!

https不再是奢侈品啦!

是的,在那古老的2023年,https實現起來的計算量還是相當大的。謝天謝地,過去13年中在「摩爾定律」的推動之下,情況已經完全不同了。儘管還有很多方面有待進一步完善,不過,還是讓我們來看看gmail這個真實世界裡的例子吧:

在2023年1月份,gmail轉變成預設情況下使用https加密所有東西的通訊方式。之前,https的使用以乙個可選項被引介給使用者,但現在我們讓瀏覽器跟google之間的通訊在任何時候都是加密的,以此來確保他們郵件的安全性。為了做到這一點,我們沒有增加新的機器,也沒有採用任何特殊的硬體。在我們前端的伺服器上,ssl/tls只用了不到1%的cpu負載,每個網路連線使用的記憶體低於10kb,並且額外的網路負載不超過2%。很多人堅信ssl會占用很多的cpu時間。其實不然。我們希望上面的資料(第一次對外公開)能夠幫助大家消除那種疑慮。

https意味著沒人能在網際網路上監視你

雖然不能完全杜絕,但會極大地限制那些壞蛋。不管你是否接入開放的wifi,https都能為你保駕護航!

拿我個人來說,我其實不太介意有人監視我在網上所做的事情,因為我的初衷就是:讓人們看到我在網上所做的事情。但是,我完全不同意如此荒謬的觀點,說是「只有作賊心虛的人才需要遮遮掩掩」。因為每個人都有自己的隱私權。(此處略去部分內容)為什麼不立即改善網際網路,去「拯救」那些不幸的人們呢?

https現在變得更快了

安全總是有代價的。加密乙個網路連線也不例外。https不可避免地會比普通的http要慢一點。但究竟慢多少呢?有些瀏覽器對於加密的內容不會進行快取;過去是這樣,但現在已經不同了。google的spdy協議就是想要來替代http,不僅僅是為了提公升效能,更是想把加密植入到設計之中:

為了獲得更好的安全性,以及跟現有網路基礎設施的相容性,spdy有乙個很明確的技術目標,就是要使用ssl來作為底層的傳輸協議。儘管ssl會引入一定的延遲,但我們相信從長遠來看,網路世界需要安全的連線。另外,ssl的使用對於保障跨**的通訊不被干擾是很有必要的。

關於ssl,有個謠傳是說必須要有乙個時新的瀏覽器才能支援,這樣才能在加密通訊開始之前、在通訊雙方繁瑣而又必要的握手過程中減少令人不快的延遲。對http實施ssl加密不會是免費的午餐。絕對不會!但它肯定比過去要快了很多,而且每年都在變得更快。

給已登入的使用者使用加密通訊絕對不是一件容易做到的事情,尤其是對於一些大型的知名**而言。我過去並沒有站出來指責那些不使用加密通訊的**,因為我知道實施起來會有多少工作量,會對已經很忙碌的團隊增加多少額外的複雜性。儘管https比起幾年前要容易得多了,但仍然有很多難題擺在我們面前亟待解決。比如說,**快取將比以前要困難得多了,因為資料已經加密,**伺服器「看不懂」了。如今的大部分**都大量聚合了來自其他終端的內容,從技術上來說,所有來自其他地方的內容都需要使用加密的https來傳輸。對於一些處理能力不是很強、連線不穩定的移動裝置來說,情況就會非常的糟糕!

也許不會是明天,也不會是明年,但從中長期來看,為已登入的使用者採用加密的網路連線會成為乙個標準,這是通向網路世界未來最健康的乙個方向。我們應該致力於使得https更加易用、更加快速,最為重要的是,使它預設為已登入的使用者服務。

SSL高階加密網路通訊

ssl secure sockets layer 安全套接層 及其繼任者傳輸層安全 transport layer security,tls 是為網路通訊提供安全及資料完整性的一種安全協議。tls與ssl在傳輸層對網路連線進行加密。ssl secure socket layer 為netscape所...

所有PHP程式設計師都應該知道的五個工具

3529個讀者翻譯 子非魚 09 10 2007原文引用雙語對照及眉批 在參與了幾個大型php專案,寫了很多php 以後,我發現很多任務具可以提高 質量,簡化發布,使得做為php開發人員的生涯變得輕鬆許多。許多這樣 的工具可能已經為大家所用。但是,由於一些人甚至沒有注意到這些工具的存在,我會從此開始...

網路通訊常用加密演算法研究

什麼是對稱加密 對稱加密採用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的金鑰,即加密金鑰也可以用作解密金鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,金鑰較短,且破譯困難,除了資料加密標準 des 另乙個對稱金鑰加密系統是國際資料加密演算法 idea 它比des...