首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局平台安全通道2计算示例

全局平台安全通道2计算示例
EN

Stack Overflow用户
提问于 2020-02-21 11:47:33
回答 1查看 163关注 0票数 0

我正在为一个实现全球平台安全通道协议2的支付芯片编写个性化软件。我有一个来自芯片供应商的工具,可以登录到卡上,但我不能复制这些计算来获得我自己的登录。供应商工具只有一个工厂密钥,或者有三个相同部分的密钥集。供应商工具只知道这些,并且可以登录到卡上:

代码语言:javascript
复制
cm> auth
=> 80 50 00 00 08 A0 13 2D 8B C1 E6 6E 9A 00          .P.....-...n..          host challenge:     A0132D8B C1E66E9A
(122317 usec)                       vv indicates SCP02
<= 00 00 00 00 00 00 00 00 00 00 FF 02 00 13 BA 2A    ...............*        seq num: 0013    card challenge:     BA2A16C9DC0E
   16 C9 DC 0E 30 11 F0 19 01 0D BF 2B 90 00          ....0......+..          card cryptogram:    3011F019 010DBF2B
 Status: No Error                                                               
 => 84 82 00 00 10 29 FD 73 3D 5A 91 6C 6F EA A6 56    .....).s=Z.lo..V        host cryptogram: 29FD733D5A916C6FEAA656B82A6B8928
   B8 2A 6B 89 28                                     .*k.(
(75647 usec)
<= 90 00                                              ..
Status: No Error

通过阅读可公开获得的全球平台卡规范,我的软件需要使用常数182 (或者181号,我用了两种方法)和序列计数器(这里是“0013”),零填充到16个字节,来生成会话密钥。然后它需要连接主机挑战,序列号,卡挑战,和“8000.”为签名制作明文的填充。用会话密钥签名,结果应该与卡密码相匹配。一旦我可以复制供应商工具计算,我就可以在我的perso机器中使用相同的代码。很简单。

在.Net 4.5 TripleDESCryptoServiceProvider和MACTripleDES中工作,我得到不匹配的值。我不愿意整合弹跳城堡,只是想看看它是否能让事情变得更好。我的密钥计算是在因特网计算器上验证的,但是我当然看不到卡的会话密钥。在线签名计算器不同意我的代码,但他们也不同意样本数据。我只知道签名是错误的,或者至少与工作工具不同。

所以我想问题是,在任何地方都有这种计算的例子吗?当然,我先问了芯片供应商。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-21 15:19:16

Python中的一个例子是Asterix项目:https://github.com/suma12/asterix

在该项目中对SCP02.py进行少量的切分就足以运行和复制我的示例数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60338076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档