如何保證發(fā)出去的微信和QQ消息不被篡改

參考:硬件茶談
【軟件科普】如何保證發(fā)出去的微信和QQ消息不被篡改?詳解RSA加密算法_嗶哩嗶哩_bilibili
當你打開手機,給你的朋友發(fā)送了一條短信、一筆付款、一張表情包,怎么保證對方接收到的信息跟你發(fā)出的信息完全一致,中間也沒有人看過/修改過呢?答案就是對發(fā)送的信息進行加密與簽名,并在接收端對它們進行校驗與檢查。加密、簽名與校驗構建了現(xiàn)代互聯(lián)網(wǎng)傳播的基石,也是信息安全的基礎,這其中歸功于當今最常用的非對稱算法:RSA加密算法
二、RSA加密、簽名區(qū)別

加密和簽名都是為了安全性考慮,但略有不同。常有人問加密和簽名是用私鑰還是公鑰?其實都是對加密和簽名的作用有所混淆。簡單的說,加密是為了防止信息被泄露,而簽名是為了防止信息被篡改。這里舉2個例子說明。

第一個場景:戰(zhàn)場上,B要給A傳遞一條消息,內(nèi)容為某一指令。

RSA的加密過程如下:

(1)A生成一對密鑰(公鑰和私鑰),私鑰不公開,A自己保留。公鑰為公開的,任何人可以獲取。

(2)A傳遞自己的公鑰給B,B用A的公鑰對消息進行加密。

(3)A接收到B加密的消息,利用A自己的私鑰對消息進行解密。

在這個過程中,只有2次傳遞過程,第一次是A傳遞公鑰給B,第二次是B傳遞加密消息給A,即使都被敵方截獲,也沒有危險性,因為只有A的私鑰才能對消息進行解密,防止了消息內(nèi)容的泄露。

第二個場景:A收到B發(fā)的消息后,需要進行回復“收到”。

RSA簽名的過程如下:

(1)A生成一對密鑰(公鑰和私鑰),私鑰不公開,A自己保留。公鑰為公開的,任何人可以獲取。

(2)A用自己的私鑰對消息加簽,形成簽名,并將加簽的消息和消息本身一起傳遞給B。

(3)B收到消息后,在獲取A的公鑰進行驗簽,如果驗簽出來的內(nèi)容與消息本身一致,證明消息是A回復的。

在這個過程中,只有2次傳遞過程,第一次是A傳遞加簽的消息和消息本身給B,第二次是B獲取A的公鑰,即使都被敵方截獲,也沒有危險性,因為只有A的私鑰才能對消息進行簽名,即使知道了消息內(nèi)容,也無法偽造帶簽名的回復給B,防止了消息內(nèi)容的篡改。

但是,綜合兩個場景你會發(fā)現(xiàn),第一個場景雖然被截獲的消息沒有泄露,但是可以利用截獲的公鑰,將假指令進行加密,然后傳遞給A。第二個場景雖然截獲的消息不能被篡改,但是消息的內(nèi)容可以利用公鑰驗簽來獲得,并不能防止泄露。所以在實際應用中,要根據(jù)情況使用,也可以同時使用加密和簽名,比如A和B都有一套自己的公鑰和私鑰,當A要給B發(fā)送消息時,先用B的公鑰對消息加密,再對加密的消息使用A的私鑰加簽名,達到既不泄露也不被篡改,更能保證消息的安全性。

總結(jié):公鑰加密、私鑰解密、私鑰簽名、公鑰驗簽。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容