Apple Pay令牌transactionId是全球唯一的吗?

时间:2017-10-26 20:53:13

标签: security payment-gateway payment-processing applepay applepayjs

我正在调查是否有可能在同一支付门的replay attacks防御中使用Apple Pay transactionId。辩护应该依赖于参与签名的领域并且是独一无二的。

Payment Token Format ReferencepaymentData.header.transactionId描述为

  

在设备上生成的交易标识符。

这还不足以将其视为全球唯一。

1 个答案:

答案 0 :(得分:0)

以下是ApplePayJS token的测试示例:

{
    "paymentData": {
        "version": "EC_v1",
        "data": "...",
        "signature": "...",
        "header": {
            "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6jY12R9PoL7bzaC3/ibs6q6+g/cqjSkiO3GVFld2NVUA6kRlq0iJRT+XzfmGFvRs/G2qwgmWY8fKu7p6Ktgxug==",
            "publicKeyHash": "AJiEM3d+czut7s1t4QdtRBPjSOxw0D6iWSp1MUdXueM=",
            "transactionId": "f8f0c804922303decba1a8a4f7c503df1a6314e44e8db5ae7eb6b7fe0323513b"
        }
    },
    "paymentMethod": {
        "displayName": "MasterCard 1471",
        "network": "MasterCard",
        "type": "debit"
    },
    "transactionIdentifier": "F8F0C804922303DECBA1A8A4F7C503DF1A6314E44E8DB5AE7EB6B7FE0323513B"
}

在实践中,它始终与顶级transactionIdentifier字段匹配不区分大小写的嵌套paymentData.header.transactionId

docs说:

  

<强> transactionIdentifier

     

此付款的唯一标识符。

     

此标识符适合在收据中使用。

Google搜索还会找到How do I process returns with Apple Pay

  

在日本,您还可以使用收据上的交易ID来查找购买并处理退货。

同样transactionId是64个十六进制字符或32个完整字节长。这比Unique Transaction Identifier format长。因此,有足够的空间来真正具有全球独特性。

仍在寻找更直接可靠的证据。