前言早在 2008年,m1卡的安全算法就被破解,这意味着当时全球多达10亿张的m1卡都存在被伪造、复制的风险,近几年网络媒体也针对智能锁卡片钥匙的安全问题做了很多现场测试。测试表明,一部分智能锁产品使用普通m1卡进行开锁验证,未做加密导致可以备轻易复制,造成安全隐患。本文旨在通过简单的几个步骤向大家介绍更加安全的cpu加密卡的实现方式。
一、cpu 卡开锁密钥产生机制1、 用 dev_uid(16 位, 不足 16 位后面补 0)做为 3des 加密密钥对 4 字节卡片唯一识别码 uid(不足 16 位后面补 0)进行 3des 加密得到 16 位加密数据 data_enc。
2、 data_enc 做为 cpu 卡开锁密钥 unlock_key。 注: 加密密钥由客户自定义, 以上加密方式只是示例。
二、 cpu 卡绑卡流程1、 根据《cpu 卡开锁密钥产生机制》 , 产生开锁密钥2、;选择卡应用 00a4 0400 09 a000000003d6d0d5fd 3、 ; 得随机数 0084 0000 08; ; 例如卡片应用主控密钥为(112233445566ffffffffffffffffffff) ; ; 用卡片应用主控密钥(112233445566ffffffffffffffffffff) 对随机数做 3des 加密 ; 对卡片做外部认证, 获取更新密钥的权限, enc 为加密的结果 0082 0000 08 enc(last,112233445566ffffffffffffffffffff)4、; 得随机数0084 0000 08开锁密钥(例如是 22222222222222222222222222222222); ; 先用主控密钥(112233445566ffffffffffffffffffff) 对(密钥头 5 字节+要替换的密钥16 字节) 加密得到 24 字节加密结果,15300000003322222222222222222222222222222222然后用主控密钥(112233445566ffffffffffffffffffff) 对(指令头 5 字节+加密结果 24 字节) 做 mac 计算得到 4 字节 mac 值。; 更新开锁密钥0084 0000 0484d430011cdata_enc(300000003322222222222222222222222222222222,112233445566ffffffffffffffffffff) mac(84d4 3001 1c data_enc(300000003322222222222222222222222222222222,112233445566ffffffffffffffffffff),112233445566ffffffffffffffffffff,last)详细过程如下:随机数: 903e12b0abba8019 9000加密密钥数据原始内容: 15300000003322222222222222222222222222222222更新密钥线路保护密钥: 112233445566ffffffffffffffffffff加密密钥数据明文内容: 153000000033222222222222222222222222222222228000 //如加密数据补足 8 字节的倍数, 就后补 80000...凑足 8 字节整倍数加密密钥数据密文内容: 47e16367a4f223d99131d48c0fcc7b4ca507087af537d88b更新密钥命令: 84d430011c 47e16367a4f223d99131d48c0fcc7b4ca507087af537d88b即: 84d430011c47e16367a4f223d99131d48c0fcc7b4ca507087af537d88b800000计算 mac 结果: e47cc048更新密钥命令: 84d430011c 47e16367a4f223d99131d48c0fcc7b4ca507087af537d88be47cc048
三、 cpu 卡开锁流程1、 根据《cpu 卡开锁密钥产生机制》 , 产生开锁密钥 2、 ;选择卡应用 00a4 0400 09 a000000003d6d0d5fd 3、 ; 门锁产生 8 字节随机数 ; 用开锁密钥(例如 22222222222222222222222222222222) 对 8 字节随机数加密, 得到 8 字节密文 enc 4、 ; 内部认证 0088000108(8 字节随机数) ; ; 得到 8 字节密文 enc' ; ; 比对密文结果 enc 和 enc', 比对成功, 开锁, 比对不成功, 提示开锁不成功 示例 0088000108 11223344556677889e 94 6c 69 b7 2f 0b 80 : 90 00 开锁密钥(例如 22222222222222222222222222222222) 对随机数加密 1122334455667788 enc(1122334455667788, 22222222222222222222222222222222) =9e946c69b72f0b80总结以上示例就是今天要讲的内容,本文仅仅简单介绍了cpu卡的基础应用方法,通过此方法企业可以在非常短的时间内实现cpu卡的应用,感谢您的关注。
HarmonyOS应用开发-Search实现
智晶光电副总经理蔡永诚:可穿戴领域应用OLED显示发展趋势
这款机械手套安装传感器后,不仅能辅助诊疗还能增加力气
Vue框架npm周下载量激增十倍
芯片厂家迎红利,国产替代芯片涨价近10倍
智能门锁M1卡钥匙易被复制存在安全漏洞?资深安全工程师教你轻松升级CPU加密防复制卡
魅族Pro7什么时候上市?魅族Pro7最新消息:魅族Pro7旗舰配置曝光,联发科+8G运存
智能镜子显示屏带你体验高科技的生活
OPPO Find X3终发布,2021旗舰机天花板就是它?
北京拟对AI训练所需的算力推行统筹供给
对于PPI和MPI通信的详细解析
华为副董事长郭平线上分享演讲稿件(完整版)
农业气象站系统监测要素有哪些
电感的常见作用有哪些
通信广播卫星的轨位资源与邻星协调
利用隔离DC/DC转换器延长IGBT驱动电路的使用时长
电动车电池排行榜_电动车电池什么牌子好
什么是货币溢价
BA6395AFP BTL五通道驱动集成电路图
科学家研发水凝胶制成的生物标记感应隐形眼镜