AWS Payment Cryptography

在看「How to migrate 3DES keys from a FIPS to a non-FIPS AWS CloudHSM cluster」這篇的時候看到一個沒有印象的服務,叫做 AWS Payment Cryptography,查了一下是去年推出的新服務:「New – Move Payment Processing to the Cloud with AWS Payment Cryptography」。

這個服務從名字大概知道跟金流用到的密碼學演算法有關,從「What is AWS Payment Cryptography?」這頁可以看到是把 HSM 的部分包起來:

AWS Payment Cryptography is a managed AWS service that provides access to cryptographic functions and key management used in payment processing in accordance with payment card industry (PCI) standards without the need for you to procure dedicated payment HSM instances.

另外從文件上可以看到圍繞在很多 PCI SSC 發佈的標準,所以理論上自己兜 AWS CloudHSM 或是 AWS KMS 應該都是可以用的,只是自己實作的部分就得另外 auditing?

AWS CloudHSM 的 compliance 資訊在「Compliance」這邊,可以看到 CloudHSM 在服務層級上掛了 PCI DSS、PCI PIN (看起來是個資相關) 以及 PCI-3DS。

而 AWS KMS 的 compliance 資訊在「Compliance validation for AWS Key Management Service」這邊,可以看到 KMS 主要就只有 PCI DSS 的報告部分。

也許 AWS KMS 在這塊上面能提供的功能比較少?

除了 PCI compliance 相關的整合外,另外一個切入點應該是價錢的部分,CloudHSM 因為就是租硬體,一個單位就是 US$1.6/hr,一個月就是固定 US$1152/mo 在燒;而 AWS Payment Cryptography 則是只收 US$1/mo 的 active key 費用,然後每 10k call 收 US$2,換算下來是每個月 5.7M API call 左右會跟一個 CloudHSM 差不多。

看起來交易量沒有很大的情況下也還不錯?如果兩邊在功能上是有辦法等價交換的話...

AWS 多了一卡車服務符合 PCI DSS

碰到信用卡卡號時會需要的 PCI DSS,在 AWS 上面多了一卡車服務過了這個認證:「AWS Adds 16 More Services to Its PCI DSS Compliance Program」。

多了這些,有不少其實蠻常用的東西:

  • Amazon Inspector
  • Amazon Macie
  • Amazon QuickSight
  • Amazon S3 Transfer Acceleration
  • Amazon SageMaker
  • Amazon Simple Notification Service
  • AWS Batch
  • AWS CodeBuild
  • AWS Lambda@Edge
  • AWS Shield
  • AWS Snowball
  • AWS Snowball Edge
  • AWS Snowmobile
  • AWS Systems Manager
  • AWS X-Ray

Lambda@Edge 可以用表示信用卡處理頁面上也可以卡這個服務進來了,另外比較意外的是,SNS 之前居然沒在 PCI DSS 清單裡面喔 XDDD

AWS 的稽核報告服務:AWS Artifact

以往要取得 AWS 的稽核報告都必須簽署 NDA 並透過 support ticket 取得 (或是找窗口拿),現在 AWS 把這件事情做成一個服務:「Introducing AWS Artifact: Speeding Access to Compliance Reports」。

服務叫做 AWS Artifact,還是要簽保密協議,不過電子化了:

You can start downloading the audit reports in the AWS Management Console today. Many of the documents are confidential and require you to accept Amazon’s confidentiality terms and conditions, but after you review and agree to those terms, you will be granted instant access to review documents.

這樣取得資料就可以透過系統直接拉出來了:

To document the current and historical compliance of the AWS infrastructure and services, many AWS customers provide compliance reports—including those for ISO, SOC, and PCI—to their auditors or regulators.

CloudFlare 通過 PCI DSS 3.1 Level 1

CloudFlare 宣佈通過 PCI DSS 3.1 Level 1:「CloudFlare is now PCI 3.1 certified」。

早在去年的時候 CloudFlare 就已經通過 PCI DSS 2.0 Level 1:「CloudFlare is PCI Certified」,這次過 PCI DSS 3.1 主要還是因為 2.0 即將失效,不升級就不能處理信用卡資料了...

PCI DSS 的更新:PCI DSS 3.1

PCI DSS 3.1 出了:「PCI COUNCIL PUBLISHES REVISION TO PCI DATA SECURITY STANDARD — PCI DSS 3.1 and supporting guidance helps organizations address vulnerabilities within SSL protocol that put payment data at risk; PA-DSS revision to follow —」(PDF)。

與 3.0 相比,修正了 SSL 與 TLS 的安全性問題。分成兩大塊討論,對於新的系統:

  • 禁止使用 SSL 與早期的 TLS (包括了 TLS 1.0 與 TLS 1.1 的某些設定)。

而對於舊的系統:

  • 在 2016 年 6 月 30 日後,禁止使用 SSL 與早期的 TLS。
  • 在這之前,不符合上述條件的設備必須修正到可以防禦已知的 SSL 與 TLS 問題。
  • 對於 POS (Point-of-sale) 與 POI (Point-of-interaction) 系統則是例外處理:確認可以防禦已知 SSL 與 TLS 問題的話,期限後仍然可以使用。

PA-DSS 3.0 對密碼儲存方式的說明

PA-DSS (Payment Application Data Security Standard) 是 PCI SSC 訂出來提供給軟體開發商在支援交易時的標準:

PA-DSS was implemented in an effort to provide the definitive data standard for software vendors that develop payment applications.

這個標準也有很多版本,最新的 3.0 版是 2013 年 11 月公告的。剛剛在「Passwordscon 2014 - Password Security In The Pci Dss - Jarred White」這邊意外看到有提到密碼儲存的要求,出自 PDF 的 Page 34。

分成幾個部份,PA-DSS Requirements 的部份是寫:

3.3.2 Use a strong, one-way cryptographic algorithm, based on approved standards to render all payment application passwords unreadable during storage. Each password must have a unique input variable that is concatenated with the password before the cryptographic algorithm is applied.

標準規定必須使用 one-way cryptographic algorithm,並且必須要有 salt 的設計。

另外在 Guidance 則是直接建議使用 PBKDF2Bcrypt

Concatenating a unique input variable to each password before the hashing algorithm is applied reduces the effectiveness of brute force attacks. Examples of strong one-way cryptographic algorithms suitable for hashing passwords include PBKDF2 and Bcrypt.

之前在密碼儲存這塊最痛的事情就是沒有夠先進的標準可以遵循,現在總算是有一份金融標準可以拿出來用了...

參考 2012 年 ijliao 就有寫到的「請愛用 bcrypt 和 PBKDF2」。