天天看點

端到端加密(E2EE)技術分析:在移動應用中實作安全通信的利器

什麼是端到端加密?

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

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

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

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

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

1.在使用者需要對敏感資料加密的情況下,“有選擇性地加密”将會大幅提升加密的靈活性,使用者可以根據自己的情況來選擇需要進行加密的資料。

2.使用者可以對端到端加密的實作過程進行自定義配置,這将有助于實作功能的高度子產品化,并提升加密子產品的内聚性。

3.在整個加密過程中所涉及到的檔案量是非常小的,是以加密過程所占用的資源量并不大,而且加密時間也不會太久。

接下來,讓我們來了解一下什麼是進階加密标準(aes)。

進階加密标準(aes)

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

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

接下來,我們将通過下面的問答環節來向大家介紹有關進階加密标準的内容。

問題一: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)算法)可以使用這份密鑰材料來對後續消息進行加密。

為什麼需要ecdh密鑰交換算法?

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

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

whatsapp是怎麼做的?

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

如果你在開發中遇到了關于“端到端加密”的問題,請趕緊通過電子郵件來與我們聯系([email protected])。

本文轉自d1net(轉載)

繼續閱讀