古詩詞大全網 - 藝術簽名 - 測試那些事兒(十三)- 簽名和驗簽、公鑰和私鑰、加密和解密

測試那些事兒(十三)- 簽名和驗簽、公鑰和私鑰、加密和解密

在做接口測試時,大家壹定都遇到過需要提供簽名的場景。這時,我們就會被各種名詞比如 簽名和驗簽、公鑰和私鑰、加密和解密 沖擊。所以,了解壹下它們很有必要,可以幫助我們知道為什麽要這麽做,而不是簡單的去當壹個驗證執行者。甚至,在妳了解了它們之後,妳也可以在接口的安全性測試上更進壹步。

數字簽名其實就是壹個別人無法仿造,能夠證明申請者真實性的壹段字符串。 我們在真實生活中,最常用的簽名應該就是手簽我們的姓名了。

所以,在接口請求時,很多接口也不是妳來壹個請求我就給妳返回妳要的數據,而是要驗證妳的簽名,進而證明妳的身份後才能做出後續動作。在此過程中,接口調用者需要進行的工作就叫做 簽名 ,而被調用者需要進行的工作就叫做 驗簽

公鑰 :由接口被調用方提供,RSA 密鑰體系中對外公開的部分,通常用於數據加密、驗證數字簽名。

私鑰 :由接口被調用方提供,RSA 密鑰體系中非公開的部分,需由接口調用方嚴密保存,通常用於數據解密、數據簽名。

這個就很好理解了,傳遞數據時為了保證數據的安全性,不進行明文傳遞,而是通過某種算法對敏感數據進行 加密 ,傳遞後再由接收方使用對應算法進行 解密 來獲取明文信息。

將上面的定義總結為圖,會更加的清晰:

之所以用發送方的私鑰加簽,是因為,即便信息被黑客攔截,黑客修改了信息,但是加簽需要用發送方的私鑰,黑客沒有發送方的私鑰,所以也無法生成正確的簽名,接收方驗簽就不用通過。

反之如果用接收方的公鑰加簽,如果信息被黑客攔截,黑客修改了信息,因為接收方的公鑰是公開的,黑客就可以重新生成新的簽名,替換原有的簽名,發送出去,接收方接收到信息,拿自己的公鑰校驗是通過的,所以接收方無法辨別信息是真正的發送方還是黑客發送過來的,這樣的加簽不能辨別信息是否被篡改過。

之所以用接收方的公鑰加密,是因為,如果信息被黑客攔截,需要用接收方的私鑰來解密,黑客無法獲取接收方的私鑰,即便攔截了信息(情報),黑客也無法看到明文,只能看天書?了。

反之,如果用發送方的私鑰加密,如果信息被黑客攔截,因為發送方的公鑰是公開的,黑客就可以用發送方的公鑰解密密文獲得明文,這樣的加密所有的人都可以看到明文,不能保證信息的隱私。

了解了以上這些知識,在測試過程中就可以更加深入的了解簽名的目的,進而可以更深入的了解簽名的實現等。簽名的實現有很多種,這個要根據每個團隊選擇哪種具體分析,但作為測試,基本上我們都是可以按照約定的規則來生成的,這也幫助我們擴展了接口測試覆蓋的廣度(如接口用例覆蓋度、過期時間等隱藏功能),是非常有意義的。

/liyanlei5858/article/details/84664308