憑證綁定 Certificate Pinning 分析使用 Curl

SSL

最近因為需要做了一點 Pining 分析,
Pinging 主要是要讓對方沒有辦法做中間人攻擊,
那主要測試方法就是先用 Curl 做原本的動作,
範例以 Github API 為例子

此範例是正常使用 API 並且取得 HTTP 200 OK!

因為之後要使用 SHA256 的值,所以使用 openssl 做 sha256 取得結果 y2HhTRXXLdmAF1esYBb/muQUl3BIBdmEB8jUvMrGc28=,用於 pinning 使用。

此範例說明,如果今天有人對某終端做 Proxy 那理論上使用者的 Device 會因為 SSL 不合法而被擋下來。

此範例說明,如果今天使用者的憑證被攻擊了,信任了非法的憑證,那就會可以正常存取,並且達到中間人攻擊的效果。

如果今天我們做了 Certificate Pinning,在正常的情況下不影響正常的動作。

在憑證不信任的情況下,依然會無法正常執行。

今天最重要的地方在這邊,就算信任了錯誤憑證,也還是會正常流程失敗,如此就成功防禦了中間人攻擊。

以上是對 Certificate Pinning 的小小分析。