上海樂鑫科技官網ESP32 ble wifi模塊數據安全性揭秘,眾所周知,TCP 協議和 UDP 協議,及其之上的應用協議 HTTP 和 COAP,都是明文傳輸數據的,這樣就會導致數據在網絡傳輸的過程中被竊取或者篡改。如果數據中含有密碼、賬號等敏感信息,則可能會造成不可挽回的損失,因此需要對這些明文傳輸的數據進行加密。對于使用藍牙傳輸的數據,由于藍牙協議屬于點對點的協議,數據不會泄露到網絡上,被竊取的概率也很??;另外,上海樂鑫科技官網ESP32 ble wifi模塊藍牙協議本身也會對用戶的數據進行加密。因此,本文主要討論 TCP IP協議的數據加密。
加密是為了保證傳輸數據的機密性與完整性。常見的加密系統通常先對數據進行編碼再傳輸例如,在以前的戰爭中,發送的電報就是經過編碼的,接收方和發送方都有一個相同的密碼本,接收方用密碼本上的數字或者字母來替換電報中的單詞、語句。即使電報內容被第三竊聽了,第三方也無法在短時間破譯出電報的真實內容。但是這種方式有個缺陷,就是電報的內容還是存在被破解的可能,只是時間的問題,而且為了防止電報被破解,接收方與發送方需要定期更換密碼本,這時也有可能泄露密碼本,導致電報內容被破解。
上述的電報例子就是常見的加密算法——對稱加密的使用場景。在對稱加密算法中,加密與解密采用的算法是一樣的,它們的密鑰也都是一樣的。對稱加密具有算法公開、計算量小、加密速度快、加密效率高等優點。但在數據傳輸前,發送方和接收方必須商定好密鑰,而目為了保證數據不被破解,雙方還必須定期更新密鑰,這會使得密鑰管理成為雙方的負擔。常用的對稱加密算法有 AES、DES、RC4 等。
接下來介紹與對稱加密相對的算法——非對稱加密。上海樂鑫科技官網ESP32 ble wifi模塊非對稱加密的雙方都有一對公開密鑰(Public Key,公鑰)與私有密鑰 (Private Key,私鑰),數據的加密使用公鑰進行,數據的解密使用私鑰進行。因為加密和解密使用的是兩個不同的密鑰,所以這種加密算法稱為非對稱加密。相比于對稱加密,非對稱加密更加安全。因為非對稱加密比對稱加密更復雜,所以在解密時會比對稱加密慢,而且第三方很難直接破譯數據。因為非對稱加密算法的復雜度很高,并且用于解密的私鑰是不會在網絡中傳播的,只有接收方才能獲取到私鑰,所以大大提高了數據的安全性。常見的非對稱加密算法有 RSA、Diffe-Hellman、DSA等。
上海樂鑫科技官網ESP32 ble wifi模塊非對稱加密的優點是其安全性,用戶 A 可以保留私鑰,通過網絡將公傳輸給用戶 B,即使用戶C獲取了公鑰,因為用戶 C 沒有用戶A 的私鑰,用戶C 也是無法破解數據內容的。這樣用戶A 和用戶B 就可以大膽地通過網絡傳輸各自的公鑰。記住一點,公鑰是用于加密的,私鑰是用于解密的。
非對稱加密看起來似乎很安全,但是有沒有想過這樣一個問題: 如果用戶C 將發往用戶A 和用戶 B 的公鑰全部替換為自己對應私鑰的公呢?用戶 A 是不知道這個公是不是用戶 B的,所以當用戶A 發送數據時,就會使用用戶 C 的公鑰進行加密,這時用戶 C 就可以在竊取該密文數據后使用對應的私鑰進行解密。因此,如何保證公鑰的合法性是至關重要的。在現實中,通過 CA (Certificate Authority) 可以保證公的合法性。CA 也是基于非對稱加密算法來工作的,有了 CA,用戶 B 會先把自己的公鑰和一些其他信息交給 CA,CA 用自己的私鑰加密這些數據,加密完的數據稱為用戶 B 的數字證書。用戶 B 向用戶A 傳輸的公是CA加密之后的數字證書。用戶A 收到數寧證書后,會通過 CA 發布的數字證書 (包含了 CA的公鑰)來解密用戶B的數字證書,從而獲得用戶B 的公鑰。