SSL pinning
一般的瀏覽器與手機會信任被機構簽發的證書,因為預設手機就存了一百多個, 所以 root certificate,許多家發的都會信任。 所以如果有個 proxy server 做 MITM 就很容易讀取封包。而 SSL pinning 將證書或公鑰 hash 後寫在應用程式,當server 要把公鑰傳給 app 端時會因為該公鑰無法產生跟一開始寫在 app 時的 hash 相同,於是拒絕連線。
步驟:
其他資料
Last updated
一般的瀏覽器與手機會信任被機構簽發的證書,因為預設手機就存了一百多個, 所以 root certificate,許多家發的都會信任。 所以如果有個 proxy server 做 MITM 就很容易讀取封包。而 SSL pinning 將證書或公鑰 hash 後寫在應用程式,當server 要把公鑰傳給 app 端時會因為該公鑰無法產生跟一開始寫在 app 時的 hash 相同,於是拒絕連線。
Last updated
1.某網站有用於非對稱加密的公鑰A、私鑰A。
2.瀏覽器向網站服務器請求,服務器把公鑰A明文給傳輸瀏覽器。
3.中間人劫持到公鑰A,保存下來,把數據包中的公鑰A替換成自己偽造的公鑰B(中間人當然也擁有公鑰B對應的私鑰B)
4.瀏覽器生成一個用於對稱加密的密鑰X,用公鑰B(瀏覽器無法得知公鑰被替換了)加密後傳給服務器。
5.中間人劫持後用私鑰B解密得到密鑰X,再用公鑰A加密後傳給服務器。
6.服務器拿到後用私鑰A解密得到密鑰X。