Https密鑰如何保存才能不被獲取到?

https可以防止中間人攻擊我是理解了, 但是協商後的密鑰雖然是臨時的,但是存放在客戶端內存,黑客可以寫個工具什麼的來獲取密鑰,然後偽裝成客戶端跟伺服器進行通信,有相關經驗的同學麻煩回答下,多謝。


請問黑客如何寫個工具來訪問客戶端的內存?如果這個工具是裝在客戶端機器上的,那也就是說可以完全控制客戶端行為了,那自然是什麼都能做了。


對於操作內存什麼的,如果機子root了dump一下真的不算太難。

如果是Android,請自行Google:KeyStore和KeyMaster,以及安全操作環境TEE。這三個配合起來,都是root情況下都都無法泄露密鑰的神器。

我有空會給大家科普下這玩意。


可以,之前曾利用過HTTPS這個漏洞來偽裝成APP做一個美帝APP匿名社交軟體的數據爬取。

思路和你所得是一致的。然後我們偽裝成若干的終端發送虛假數據,來測試平台效果。

流程大致:採用手機WIFI連接,用筆記本作為熱點接入。然後從筆記本上抓包破解HTTPS的通信內容。然後再偽裝。

這確實是漏洞。


需要追加保護措施,例如密鑰不在內存里保存。其實Windows上某著名Web調試器就是內存抓密鑰實現跟蹤HTTPS的,支持IE、Chrome、Firefox。


晚上碰巧剛剛看到這個章節,大概是說,https中的SSL 的安全性體現在是對data in transit進行加密,而不是對data at rest 進行加密, 所以必須採取其他的方式對data at rest的安全性進行保護,也就是對客戶端進行保護


密鑰始終要有個地方存放部署起來,如果自己的伺服器安全級別不高,覺得可能會丟密鑰,就用keyless的部署方案,但是還是要保證keyless伺服器的安全。相對於分散部署到不同機器上,看上去還是要安全一點點。


首先這個密鑰在初始建立會話後網路傳輸的過程是通過非對稱密鑰加密的,如果非對稱密鑰足夠強,是不容易破解的;然後接下來的數據傳輸,僅傳輸用對稱密鑰加密的數據,密鑰本身在進程內存中,除非黑客侵入主機並獲取足夠的許可權,否則也很難拿到;

不過上述每一步都不是絕對安全,都有破解的可能,只是成本高低的區別。沒有絕對安全的系統,只是看對於黑客來說破解的性價比了~


HTTPS的流程大概是,瀏覽器使用證書中的公鑰對臨時會話密鑰進行加密發送給伺服器

伺服器用私鑰解密獲得臨時會話密鑰

然後雙方的交互數據都是通過臨時會話密鑰進行數據加密的(對稱加密)。

那麼,想要在客戶端(瀏覽器)中拿到這個會話密鑰,似乎除了利用瀏覽器的漏洞,沒有其他的辦法了。

當然,前提是HTTPS證書是沒問題的


主密鑰或者會話密鑰都泄露的情況要保證安全啊…題主有沒有興趣看下leakage resilient crypto。


推薦閱讀:

匿名者(Anonymous)是一個什麼樣的黑客組織?
網路安全工程師就是網管嗎?
該怎樣學習網路安全?
網銀的密碼控制項到底做了哪些安全保護工作?
如何能有效地檢測分散式爬蟲?

TAG:網路安全 | HTTPS |