簡(jiǎn)述端到端加密技術(shù)

隨著移動(dòng)互聯(lián)網(wǎng)的普及,即時(shí)通訊類應(yīng)用(微信、QQ等)幾乎替代了傳統(tǒng)運(yùn)營(yíng)商的電話、短信等功能。得益于即時(shí)通訊技術(shù)的實(shí)時(shí)性,讓人們的溝通更加方便,也讓信息的傳遞變的無(wú)處不在。但用戶的隱私和通信安全問(wèn)題也隨之而來(lái),那么如何提高這些應(yīng)用的安全性就顯得尤為重要。于是乎,端到端加密技術(shù)就成為給幾乎所有通訊類應(yīng)用的首選。

端到端加密技術(shù)

什么是端到端加密技術(shù)?

端到端加密技術(shù)是指數(shù)據(jù)在發(fā)送時(shí)被發(fā)送方加密,在接收方接收時(shí)被解密的技術(shù)。端到端加密只發(fā)生在發(fā)送方與接收方,而在整個(gè)傳輸過(guò)程中數(shù)據(jù)均已密文的形式存在,且無(wú)法進(jìn)行解密操作,極大的加強(qiáng)了數(shù)據(jù)的安全性。因而端到端加密技術(shù)可以有效地防范數(shù)據(jù)被竊取利用的風(fēng)險(xiǎn),成為通信應(yīng)用安全的首選。

端到端加密技術(shù)

端到端加密的優(yōu)勢(shì)

  1. 在用戶需要對(duì)敏感數(shù)據(jù)加密的情況下,“有選擇性地加密”將會(huì)大幅提升加密的靈活性,用戶可以根據(jù)自己的情況來(lái)選擇需要進(jìn)行加密的數(shù)據(jù);
  2. 用戶可以對(duì)端到端加密的實(shí)現(xiàn)過(guò)程進(jìn)行自定義配置,這將有助于實(shí)現(xiàn)功能的高度模塊化,并提升加密模塊的內(nèi)聚性;
  3. 在整個(gè)加密過(guò)程中所涉及到的文件量是非常小的,所以加密過(guò)程所占用的資源量并不大,而且加密時(shí)間也不會(huì)太久。

端到端加密的邏輯流程

  1. 在客戶端 APP 首次安裝時(shí),基于服務(wù)器公開(kāi)的兩個(gè)全局的參數(shù),生成自己的 DH 公鑰和私鑰;
  2. 將自己的公鑰上傳證書服務(wù)器,證書服務(wù)器上保存用戶標(biāo)識(shí)與其公鑰的關(guān)系。私鑰則保存在客戶端上;
  3. 首次給對(duì)方發(fā)送消息或首次接收到對(duì)方消息時(shí),便到證書服務(wù)器查詢對(duì)方的公鑰;
  4. 根據(jù)對(duì)方公鑰和自己的私鑰計(jì)算出共享密鑰;
  5. 后續(xù)與對(duì)方所有的消息都基于這個(gè)密鑰和相同的對(duì)稱加解密算法進(jìn)行加密解密操作。

端到端加密技術(shù)

端到端加密的升級(jí)

  • 使用HMAC作為消息完整性認(rèn)證算法

在消息傳輸過(guò)程中,雙方需要確認(rèn)彼此消息的完整性,簡(jiǎn)單的做法就是將消息進(jìn)行 Hash,得到的 Hash 值附加到消息后,隨消息一起發(fā)送;對(duì)端接收后,同樣進(jìn)行 Hash,來(lái)驗(yàn)證消息是否被篡改。

關(guān)鍵點(diǎn)在于不同數(shù)據(jù)得到的 Hash 值一定不同,其中帶密鑰的 Hash 值就是 HMAC算法。

  • 使用ECDH算法替換DH算法

DH 算法是以離散對(duì)數(shù)的數(shù)學(xué)難題為基礎(chǔ)的,隨著計(jì)算機(jī)計(jì)算能力逐步增強(qiáng),我們要不停地使用更大的數(shù)以增加破解難度,目前業(yè)界普遍認(rèn)為至少需要使用 2048 位 DH 算法才具備更好的安全性。

所有,可以使用ECDH 算法替換 DH 算法。ECDH 密鑰協(xié)商算法是 ECC 算法和 DH 密鑰交換原理結(jié)合使用。ECC 是建立在基于橢圓曲線的離散對(duì)數(shù)問(wèn)題上的密碼體制。在相同破解難度下,ECC 具有更小長(zhǎng)度的密鑰和更快的正向計(jì)算速度優(yōu)勢(shì)。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。