為什么有了https 還需要做簽名驗證?
簽名的作用
如果只用簽名 不用https
密鑰泄露怎么辦
本文鏈接: https://blog.kfzsy.com/https-sign.html
為什么有了https 還需要做簽名驗證?
當用戶在瀏覽器當中加載受HTTPS保護的網站時,瀏覽器實際上只會驗證兩件事:網站是否提供了證書;證書是不是瀏覽器(操作系統)信任的根證書CA機構頒發的。實際上我們是在相信每個根CA機構都已盡全力來驗證你要連接的服務器的身份。但是實際上有時候根CA機構會被騙。我們還相信每個根CA機構都能夠保護自己的系統。但是實際上有時候根CA會被盜用。
安裝個代理工具(fiddler)的證書,就可以用代理工具抓到https請求的內容,還可以篡改數據。
簽名可以防止篡改數據,因為簽名的密鑰沒有在網絡中進行傳輸(服務器端線下頒發給客戶端或者客戶端自己輸入的登陸密碼作為密鑰,甚至登陸使用的短信驗證碼也可以作為密鑰)
https算法本質
https 采用 rsa+aes 結合
ras 為了 生成aes的密鑰不被發現
aes 可以防止數據被偷窺
簽名的作用
1、防止數據不被串改
如果aes的密鑰被代理工具發現了(畢竟密鑰會在網絡中傳輸一次)導致數據被偷窺(獲取到用戶的登陸token), 例如黑客獲取到了用戶的token,在正常的客戶端瀏覽器模擬此用戶發送請求,此時簽名防止數據不被串改,因為簽名的密鑰沒有在網絡中進行傳輸。
2、過濾很多無效請求
簽名還能過濾很多無效請求 https 不保證傳送的數據對系統是 “無害”,例如平台內部偽造支付請求(沒有簽名驗證模塊,無法甄別是否來源於商戶),或者大量無效請求直接發送到業務服務器上。
3、防止內網中 https過后 的 http傳輸被篡改
簽名可以防止內網中 https過后 的 http傳輸被篡改 簽名HMAC是應用層采用的手段來保護數據安全,SSL/TLS是傳輸層保護數據的機密與數據安全。
總結就是簽名可以兜底保證數據不被修改+過濾