Security 安全消息传递

Security 安全消息传递,security,encryption,smartcard,apdu,emv,Security,Encryption,Smartcard,Apdu,Emv,我正在从事一个项目,该项目需要EMV卡的安全消息传递,以保护发送到EMV卡或从EMV卡接收到的数据 根据EMV手册3第6.3.2节: 据我所知,我们可以在每个命令/响应对上使用“安全消息传递”。 例如,我们可以将CLA='8C',INS='CA'用于安全消息格式1,将CLA='84',INS='CA'用于安全消息格式2 然而,当我在我的两张卡上试用时,我得到了错误6e00——类不受支持 我对“安全消息传递”的理解有什么问题?当前的EMV协议似乎都不支持安全消息传递。因此,您的卡/EMV小程序也

我正在从事一个项目,该项目需要EMV卡的安全消息传递,以保护发送到EMV卡或从EMV卡接收到的数据

根据EMV手册3第6.3.2节:

据我所知,我们可以在每个命令/响应对上使用“安全消息传递”。 例如,我们可以将CLA='8C',INS='CA'用于安全消息格式1,将CLA='84',INS='CA'用于安全消息格式2

然而,当我在我的两张卡上试用时,我得到了错误6e00——类不受支持


我对“安全消息传递”的理解有什么问题?

当前的EMV协议似乎都不支持安全消息传递。因此,您的卡/EMV小程序也不支持安全消息传递

另外,我也不太确定您到底希望使用安全消息来实现什么。。。交换信息已通过身份验证(假设您执行交易,并且您执行CDA/SDA/DDA)。因此,您可能希望对终端和卡之间交换的信息进行加密(特别是收费金额、静态卡数据等),但是,基于当前EMV基础设施的设计,我怀疑这是否有多大意义:

目前假定终端不可信(至少在终端和卡之间的EMV协议交换方面)。因此,您将无法在终端和卡之间实现任何形式的相互身份验证。只有终端可以验证卡,卡可以验证从发卡机构收到的信息(例如发卡机构脚本),但卡永远无法验证终端。因此,尽管进行了加密,仍可以模拟终端端。因此,中间的攻击者仍然能够读取和解密消息。
根据以下人士的评论:


也许可以扩展Michael所说的,下一代EMV计划要做的是引入信道保密性,以消除被动窃听。但是,可以模拟终端(仅对卡证书进行身份验证)。当前的EMV仅对颁发者脚本使用安全消息传递,因为它需要仅对颁发者已知的对称密钥。从事务的角度来看,所有的数据终端交换都是纯文本的(发卡方脚本只需简单地传递,而无需终端分析或修改它们)


关于下一代EMV和信道安全的消息来源:

也许可以扩展Michael所说的,下一代EMV计划要做的是引入信道保密性,以消除被动窃听。但是,可以模拟终端(仅对卡证书进行身份验证)。当前的EMV仅对颁发者脚本使用安全消息传递,因为它需要仅对颁发者已知的对称密钥。从事务的角度来看,所有数据终端交换都是纯文本的(发卡方脚本只是简单地传递,而无需终端分析或修改它们)。@MichalGluchowski可以将其作为附加答案发布,或者编辑到我的答案中,如果您愿意的话(因为评论可能会丢失)。另外,关于您在下一代EMV上的注释,您是否有任何公开来源?换言之,目前卡将仅在个性化过程中尝试验证和信任另一端+1文档链接的信息性和可扩展性。