根据上述 BenTaylor 的问题,OBWAC 和 OBSEAL 在其组成中以 QCStatements 的形式隐藏了一个宝石,将软件声明断言中指定的角色映射到来自 CSR 的结果证书在其qcStatement
OID 中指定的角色。这是 OBSEAL 的 CNF 示例:
[ req ]
default_bits = 2048
encrypt_key = no
default_md = sha256
default_keyfile = obseal.key
utf8 = yes
string_mask = utf8only
prompt = no
distinguished_name = client_dn
req_extensions = client_reqext
[ client_dn ]
countryName = "GB"
organizationName = "Typical O name"
# Subject common name
commonName = "<Open Banking Directory Org ID>"
[ client_reqext ]
keyUsage = critical,digitalSignature,nonRepudiation
subjectKeyIdentifier = hash
qcStatements=DER:30713013060604008e4601063009060704008e46010602305a06060400819827023050303930110607040081982701020c065053505f504930110607040081982701030c065053505f414930110607040081982701040c065053505f49430c0c4f70656e2042616e6b696e670c0547422d4f42
如果将上述二进制代码粘贴到 ASN1 解码器中,您将看到以下结构:
SEQUENCE (2 elem)
SEQUENCE (2 elem)
OBJECT IDENTIFIER 0.4.0.1862.1.6
SEQUENCE (1 elem)
OBJECT IDENTIFIER 0.4.0.1862.1.6.2
SEQUENCE (2 elem)
OBJECT IDENTIFIER 0.4.0.19495.2
SEQUENCE (3 elem)
SEQUENCE (3 elem)
SEQUENCE (2 elem)
OBJECT IDENTIFIER 0.4.0.19495.1.2
UTF8String PSP_PI
SEQUENCE (2 elem)
OBJECT IDENTIFIER 0.4.0.19495.1.3
UTF8String PSP_AI
SEQUENCE (2 elem)
OBJECT IDENTIFIER 0.4.0.19495.1.4
UTF8String PSP_IC
UTF8String Open Banking
UTF8String GB-OB
节点PSP_*
以如下方式将 OBWAC/OBSEAL 证书映射到软件声明角色:
PSP_PI
=PISP
PSP_AI
=AISP
PSP_IC
=CBPII
您可以使用ASN1 编辑器来编辑/删除节点并根据 OBWAC 和 OBSEAL 的要求派生二进制文件。只需敲入二进制文件减去qcStatement=DER:
部分并完成它。您也可以使用此网站查看 qcStatement 的结构。
另一个注意事项是,与 eIDAS QSeal 证书不同,OBSEAL 的最大密钥长度似乎是2048
位。
希望有人会发现这很有用,因为英国银行开始丢弃旧的开放银行签名/传输密钥并实施 eIDAS/OBWAC+SEAL。祝你好运,让乐趣开始。o7