1. 程式人生 > >移動端安全通訊的利器——端到端加密(E2EE)技術詳解

移動端安全通訊的利器——端到端加密(E2EE)技術詳解

前言


端到端加密允許資料在從源點到終點的傳輸過程中始終以密文形式存在。採用端到端加密(又稱脫線加密或包加密)時訊息在被傳輸時到達終點之前不進行解密,因為訊息在整個傳輸過程中均受到保護,所以即使有節點被損壞也不會使訊息洩露。

端到端加密系統與鏈路加密和節點加密相比更可靠,更容易設計、實現和維護。端到端加密還避免了其它加密系統所固有的同步問題,因為每個報文包均是獨立被加密的,所以一個報文包所發生的傳輸錯誤不會影響後續的報文包。此外,從使用者對安全需求的直覺上講,端到端加密更自然些。單個使用者可能會選用這種加密方法,以便不影響網路上的其他使用者,此方法只需要源和目的節點是保密的即可。

端到端加密系統通常不允許對訊息的目的地址進行加密,這是因為每一個訊息所經過的節點都要用此地址來確定如何傳輸訊息。由於這種加密方法不能掩蓋被傳輸訊息的源點與終點,因此它對於防止攻擊者分析通訊業務是脆弱的。

基於以上特性,對於當今如此繁榮的移動端應用來說,由於無線通訊技術安全問題的特殊性,研究和應用端到端(E2EE)技術還是非常有價值的。

移動端安全通訊的利器——端到端加密(E2EE)技術詳解_1.jpg

什麼是端到端加密?


實際上,我們可以將端到端加密(E2EE)視作一種目前比較安全的通訊系統。在這個系統中,只有參與通訊的雙方使用者可以讀取通訊資料。不僅網路犯罪分子無法竊聽到這種通訊資訊,甚至連網際網路服務提供商、通訊服務提供商、以及電信服務提供商都無法獲取到這類通訊資料。

除此之外,端到端加密還可以防止攻擊者輕易地獲取到用於解密通訊會話的加密金鑰。這種通訊系統可以有效地防止攻擊者對使用者的通訊資料進行攔截或竊聽,而且如果攻擊者想要篡改通訊內容的話,幾乎也是一件不太可能完成的任務。這也就意味著,那些在文字聊天服務中採用了端到端加密的公司無法將客戶的聊天內容轉交給某些特殊的情報機構。

移動端安全通訊的利器——端到端加密(E2EE)技術詳解_2.jpg 

當我們需要將某些資料從一個源地址傳送到目的地址時,我們就可以使用端到端加密技術來保證加密資料的安全傳輸。端到端加密的主要優勢是在Web層就可以對資料進行加密處理,然後在資料接收端的資料庫或者應用伺服器層解密出明文資料。如果在實現端到端加密的過程中,我們使用的是安全級別較高的加密演算法,那麼這樣就可以確保傳輸資料能夠得到最高級別的安全保護。

在實現端到端機密的過程中,發起加密操作的永遠是源裝置的使用者,這樣可以最大程度地體現出這項技術的靈活性,因為使用者可以自主選擇需要對哪部分資料進行加密。但是,在端到端加密的過程中,類似IP地址和路由資訊這樣的細節資料是無法進行加密處理的。

端到端加密的優勢在哪裡?


移動端安全通訊的利器——端到端加密(E2EE)技術詳解_3.jpg 

E2EE技術優勢主要體現在以下幾個方面:
 
  • 在使用者需要對敏感資料加密的情況下,“有選擇性地加密”將會大幅提升加密的靈活性,使用者可以根據自己的情況來選擇需要進行加密的資料;
  • 使用者可以對端到端加密的實現過程進行自定義配置,這將有助於實現功能的高度模組化,並提升加密模組的內聚性;
  • 在整個加密過程中所涉及到的檔案量是非常小的,所以加密過程所佔用的資源量並不大,而且加密時間也不會太久。

接下來,讓我們來了解一下什麼是高階加密標準(AES)。

高階加密標準(AES)


高階加密標準(AES)在密碼學中又稱Rijndael加密演算法,AES是美國聯邦政府採用的一種區塊加密標準。這個標準的設計目標是為了替代原先的DES,目前該標準已經經過了大量安全研究專家的分析,並且在全世界範圍內得到了廣泛使用。經過五年的甄選流程,高階加密標準由美國國家標準與技術研究院(NIST)於2001年11月26日釋出於FIPSPUB 197,並在2002年5月26日成為有效的加密標準。2006年,高階加密標準(AES)已然成為對稱金鑰加密中最流行的演算法之一。

下圖所示的是一個簡單的AES加密流程:


移動端安全通訊的利器——端到端加密(E2EE)技術詳解_4.jpg 

接下來,我們將通過下面的問答環節來向大家介紹有關高階加密標準的內容。

問題一:AES加密到底是什麼?

AES加密演算法是一種對稱加密演算法,該演算法由比利時密碼學家JoanDaemen和VincentRijmen共同設計,結合兩位作者的名字,所以得名“Rijndael”加密演算法。

AES加密專門用於對電子資料進行加密。毫無疑問,在需要採用資訊加密技術的各種聊天應用程式中,AES加密演算法肯定是它們的首選。除此之外,AES加密演算法可以使用128位、192位、或者256位長度的金鑰來對文字資料進行加密和解密。

問題二:AES加密演算法的強大之處到底在哪?

當你需要傳送敏感資訊和憑證資料時,AES加密和解密演算法可以保證傳輸資料的安全。它可以將機密資料加密成一種可被解密的形式,但是隻有當你手握正確的解密密碼時,你才能夠對其進行解密。

問題三:AES加密演算法到底有多安全?

AES加密演算法是一種非常安全的加密方式,美國政府一直都在使用這種加密演算法來加密敏感資料。

Diffie-Hellman金鑰交換演算法


簡而言之,Diffie-Hellman是一種確保共享金鑰安全通過不安全網路的一種方法。包括AES加密演算法在內的對稱加密演算法可以使用這種方式來交換加密金鑰。需要安全通訊的雙方可以用這個方法確定對稱金鑰,然後可以用這個金鑰來進行資料的加密和解密。但是請注意,這個金鑰交換演算法只能用於金鑰的交換,而不能進行訊息的加密和解密。當通訊雙方確定了需要使用的金鑰後,要使用其他對稱加密演算法來進行實際的加密和解密操作。

還有一種匿名金鑰交換協議,即橢圓曲線Diffie-Hellman(ECDH)。通過橢圓曲線Diffie-Hellman (ECDH) 金鑰協商協議,兩個使用者可以建立共享的機密協議。他們可以在不安全的公共媒體上完成此操作,而不必事先交換任何私有資訊。該共享機密協議通常用於派生金鑰材料。對稱演算法(例如高階加密標準(AES)演算法)可以使用這份金鑰材料來對後續訊息進行加密。

移動端安全通訊的利器——端到端加密(E2EE)技術詳解_5.jpg 

為什麼需要ECDH金鑰交換演算法?

即便是沒有ECDH,我們的AES加密演算法依然可以正常工作。但問題就是,我們還需要自己去處理通訊雙方的私鑰問題。因此,我們需要將金鑰硬編碼至.apk檔案當中,但此時的金鑰是可以通過對apk檔案進行反編譯來獲取到的。因此,為了避免這種情況的發生,我們需要使用ECDH金鑰交換演算法來幫助我們進行金鑰的交換操作。

其實這也很好解釋,假如現在A需要與B進行通訊,那麼此時就要生成一個只有他們雙方自己知道的金鑰。當A要與C(新的通訊物件)進行通訊時,又要單獨生成另外一個金鑰。這就是端到端加密的實現方式,你可以將其想象成一種通訊專線的形式。也就是說,假如你要和一百個不同的人聊天,那麼此時就會存在一百條私人通訊通道。

WhatsApp是怎麼做的?


WhatsApp也採用了相同的處理機制。這個目前世界上使用人數最多的即時通訊服務已經在他們的通訊服務中引入了端到端加密技術,而且幾乎所有的移動裝置都可以使用這項服務,包括Android、iPhone、黑莓、諾基亞、以及WindowsPhone在內。WhatsApp不僅會對每一條資訊、每一張照片、每一個視訊、以及每一份檔案進行加密處理,而且還會對使用者的語音通話資訊進行加密。端到端加密可以確保只有通訊雙方(即資訊的傳送方和接收方)能夠對資料進行解密,即使是WhatsApp的開發人員也無法解密這些資料。

 

我的總結:

在資料傳送的時候先進行加密,等接受方收到資料後再進行解密。可以在常用的壓縮演算法的基礎上進行自己的修改。比如lz4、gz等。總之就是讓別人無法對這些資料直接進行分析。


(原文連結:http://www.freebuf.com/articles/database/113855.html