首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解每个事务派生唯一密钥中的密钥序列号(KSN)

理解每个事务派生唯一密钥中的密钥序列号(KSN)
EN

Security用户
提问于 2015-07-01 04:59:55
回答 1查看 17K关注 0票数 4

关于DUKPT中的关键序列号(KSNs),我有许多问题:

  1. KSNs长8-10字节.旧的实现是8字节,而较新的实现是10字节。如果我创建了10字节长的KSNs,是否会面临与某些旧系统不兼容的风险?
  2. KSNs有3个组件: 21位事务计数器和剩余位用于密钥集ID和抗篡改安全模块( TRSM ) ID。对于8字节的KSN,典型的约定是24位用于密钥集ID,19位用于TRSM ID。这意味着大约16M基派生密钥(BDK)和500 K设备。对我来说,这种分配是有利有弊的。缺点是,我永远不会有16M的BDK,如果业务成功,很有可能有超过500 K的设备。它的优点是它迫使我们不能在超过500 K的设备上使用相同的BDK,这限制了一种BDK的暴露受到损害。我确实读到,分配给密钥集ID和TRSM ID的位数是灵活的,所以我很想交换分配,这样我们就可以拥有多达500 K的BDK和16M设备。但我也看到了许多DUKPT的开源实现,它们假设24-19-21位被分割。如果我不遵循惯例,这些实现都会中断。你能建议我坚持惯例吗?
  3. 是否有一些标准的方法来设置密钥集Is,或者是否每个拥有BDK的实体都有自己的约定?我是否可以将密钥集ID =1分配给我的第一个BDK,然后为每个新的BDK增加1?还是这个策略太天真了?
  4. 有什么标准的方法来设置TRSM ID吗?我是否可以为使用新BDK注入的第一个设备分配TRSM ID =1,然后为每个新BDK增加1?
EN

回答 1

Security用户

回答已采纳

发布于 2015-07-09 12:23:52

  1. 8/10字节。该标准一直有KSN 10字节(80位),但允许在左边填充0 0xFF的较小值,而且许多人确实使用了8字节。不管是哪种方式,我都不能说有一个清晰的模式。如果您希望处理的任何设备(或系统)仅限于8个字节,则可以使用8个字节。如下所示,它基本上是武断的。
  2. 你说得对,几乎每个人都使用xx-19-21位,8字节是24-19-21位。请记住,DUKPT最初是为价值数千美元的自动取款机而设计的,所以512 K并不是一个麻烦的限制;现在人们用它来做火柴盒。从技术上讲,只有计数器部分(xx-21)与加密有关,所以您可以移动其他边界(ies?)如果您的程序,API,合作伙伴等可以处理它。OTOH如果你坚持传统,这更容易,没有什么说不同的KSI必须始终映射到不同的BDK。您可以拥有[FFFF]ABAB00-mmmmm是首个512 K设备,ABAB01-mmmmm是第二个512 K,等等,ABAB50是第一批处理BDK等。只要您只需要管理几十个或100批(50+百万设备)就可以了。如果你需要的远远超过500+百万,那么我会担心它,但到那时,你将有足够的影响力来改变这一点。
  3. 最初的想法是,KSI将识别银行或银行的子部分(ATM机,记住),并且是全球唯一的,因此清算网络中的任何密码都会自动识别/验证它“属于”谁。现在KSI基本上已经变得武断了,所以是的,选择你喜欢的。但是,我建议不要使用有前导零的值;太多的东西倾向于认为对一个看上去像数字的值(甚至是十六进制)的前导零没有意义,并将其删除。
  4. TRSM ID (或设备id):是的,只需使用序列号即可。但请注意,您经常会看到显示在十六进制中的21-19位(如-00000-ttttt-00001-ttttt )是设备0,-00002-ttttt +是设备1,-FFFFE-ttttt +是设备0x7FFFF。
票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/92815

复制
相关文章

相似问题

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