SEC-001 P0: SSL Pinning 公鑰雜湊為硬編碼測試值

Resolved 💬 2 comments Opened Mar 22, 2026 by stephen-taipei Closed Mar 25, 2026

問題描述

SSL Pinning 的公鑰雜湊為硬編碼的測試值,會導致與實際 api.ctrs.app 的連線失敗。

檔案位置

ios-swift/Connectors/Services/SSLPinningDelegate.swift:272-279

詳細說明

productionPublicKeyHashes 設定的兩個值是測試用佔位符:

  • PjYrcNskU4zZMH34EpkY3KcrRx/rqaEgJG2YyZ74cZk= (測試值)
  • C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M= (Let's Encrypt 測試)

風險評估

生產應用會因公鑰不匹配而無法連線到 API,導致應用完全不可用。

解決方案

  1. 使用實際生產憑證的公鑰雜湊替換測試值
  2. 建立定期憑證輪換機制
  3. 新增憑證更新警示和監控
  4. 驗證 staging 和 production 環境的雜湊正確性

優先等級

P0 - 高危,影響 API 連線安全性,上線前必須修復

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗