2017-11-30

何謂憑證綁定

最近有客戶詢問什麼是”憑證綁定”(Certificate Pinning)?簡單的來說,憑證綁定是防止攻擊者使用假憑證進行中間人攻擊的一種安全機制。換言之,若未確實做到憑證綁定,則有心人士便可利用假憑證嗅探傳輸中的加密內容,以MITM(Man-in-the-middle)手法攔截敏感資訊。
根據行動應用App基本資安檢測基準4.1.4.2.2 “行動應用程式應確認伺服器憑證之有效性”,其中一項檢測基準為:
檢查行動應用程式是否使用憑證綁定(Certificate Pinning)方式驗證,以確保連線之伺服器為行動應用程式開發者所指定。
一個App若有確實達成憑證綁定,以工具進行檢測的結果,便會如下圖上半部綠色框住部份所示。左半邊是所攔截到的內容,為空白一片,右半邊則是App於行動裝置上的畫面,有提示憑證方面的問題。但是這錯誤訊息的提示不必然會明確指出與憑證有關,因各家開發廠商的做法不一,各位所看到的也許會是與SSL錯誤或網路錯誤等字眼,有的甚至會加上一個代碼,此代碼往往是供開發者除錯時的依據。
那若是未確實做到憑證綁定會出現什麼情況呢?如下圖下半部紅色框住部份所示,左邊的攔截內容包括了帳號、密碼、郵件地址、性別等與使用者有關的敏感資訊,右半邊則可清楚的看出這是當使用者進行註冊時所輸入的個人資訊。此即代表該App未有效達成憑證綁定,因此潛藏著遭到中間人攻擊的風險。
那要如何做到憑證綁定呢?以下的範例供各位參考,便可順利完成。驗證方式則如下圖的操作方式,若有任何問題也歡迎與我們聯繫,再為您說明。