在做交易型系統,尤其是電子商務類的,往往會針對不同的資料等級來設定不同的規範與處理。
本篇文章就過去自己的經驗,簡要整理出幾個機敏性等級的資料與處理方式,供大家做參考。
分级
資料機敏性/操作行為分級,由嚴到鬆,依序列出。機敏性越高的資料,規範越嚴格。
1. 保密級
- 例如:密碼、信用卡號、個資
- 處理方式
- Authenticattion, Authorization 機制
- Hash(不可逆處理)
- Token(有效時間限制,且不需要原始資訊)
- Encryption
- Key/憑證管理(定時、臨時換金鑰機制,金鑰發放機制,金鑰管理機制)
- 軌跡稽核(任何接觸到保密級資料的動作,都應記錄何時、誰、對資料做了什麼事)
2. 敏感級
- 例如:訂單操作、訂單資料查詢、財務相關資料
- 處理方式
- Authentication, Authorization 機制
- 軌跡稽核
3. 一般級
- 例如:購物車、個人首頁
- 處理方式
- Authentication, Authorization 機制
4. 公開級
- 例如:商品資料、使用者評論
- 處理方式:不需要額外處理
驗證(Authentication)與授權(Authorization)
- 對外 API 統一頒發 App Id, secret key
- 對外 API 一律採 HMAC 簽章,並加上 log
- 敏感級以上資料操作或關鍵業務系統訪問,採 x.509 憑證 + PKCS12 驗證
- 管理後台與監控系統需具備提供使用者訪問記錄與操作 log 監控功能,以供 operator 日常巡檢及安全審查使用
- server layer, application layer, service layer 皆可設定黑白名單進行 access control
- 管理後台及供應商作業平台,採 role-based ACL 設計,涉及資料變動均做 log
- 建議 Authentication 採雙因子驗證(two-factor authentication)