前言
早在 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 04
84D430011C
DATA_ENC(300000003322222222222222222222222222222222,112233445566FFFFFFFFFFFFFFFF
FFFF)
MAC(84D4 3001 1C DATA_ENC(3000000033
22222222222222222222222222222222,112233445566FFFFFFFFFFFFFFFFFFFF),112233445566FF
FFFFFFFFFFFFFFFFFF,LAST)
详细过程如下:
随机数: 903E12B0ABBA8019 9000
加密密钥数据原始内容: 15300000003322222222222222222222222222222222
更新密钥线路保护密钥: 112233445566FFFFFFFFFFFFFFFFFFFF
加密密钥数据明文内容: 153000000033222222222222222222222222222222228000 //如加
密数据补足 8 字节的倍数, 就后补 80000...凑足 8 字节整倍
数
加密密钥数据密文内容: 47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B
更新密钥命令: 84D430011C 47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B
即: 84D430011C47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B800000
计算 mac 结果: E47CC048
更新密钥命令: 84D430011C 47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B
E47CC048三、 CPU 卡开锁流程
1、
根据《CPU 卡开锁密钥产生机制》 , 产生开锁密钥
2、
;选择卡应用 00A4 0400 09 A000000003D6D0D5FD
3、
; 门锁产生 8 字节随机数
; 用开锁密钥(例如 22222222222222222222222222222222) 对 8 字节随机数加密, 得到 8 字节密文 enc
4、
; 内部认证 0088000108(8 字节随机数)
; ; 得到 8 字节密文 enc'
; ; 比对密文结果 enc 和 enc', 比对成功, 开锁, 比对不成功, 提示开锁不成功
示例
0088000108 1122334455667788
9E 94 6C 69 B7 2F 0B 80 : 90 00
开锁密钥(例如 22222222222222222222222222222222)
对随机数加密 1122334455667788
Enc(1122334455667788, 22222222222222222222222222222222) =9E946C69B72F0B80总结
以上示例就是今天要讲的内容,本文仅仅简单介绍了CPU卡的基础应用方法,通过此方法企业可以在非常短的时间内实现CPU卡的应用,感谢您的关注。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
CPU卡
+关注
关注
1文章
24浏览量
11661 -
智能锁
+关注
关注
18文章
1136浏览量
41474 -
M1卡
+关注
关注
0文章
3浏览量
7227
发布评论请先 登录
相关推荐
热点推荐
如何使用意法半导体的NFC读写器ST25R3920B读取贵公司的M1卡?
您好,我想问一下如何使用意法半导体的NFC读写器ST25R3920B读取贵公司的M1卡。ST读卡器支持mifare-classic卡的通信,但不支持M
发表于 05-07 06:18
高性能防复制加密芯片RJGT102:设计与应用全解析
富的功能,为电子工程师们提供了一个强大的安全解决方案。本文将深入剖析RJGT102芯片的各个方面,帮助工程师们更好地理解和应用该芯片。 文件下载: RJGT102WDP8.pdf 1.
汽车网络安全 ISO/SAE 21434是什么?(一)
ISO(国际标准化组织)与SAE(美国汽车工程师学会)联合制定,2021 年 8 月正式发布,核心替代此前的 SAE J3061 指南,成为汽车网络安全的核心技术基准。
1. 核心定位
汽车网络
发表于 04-07 10:37
SASETalk | 从车辆工程到ASIL D芯片安全:一位年轻工程师的成长进化论
王茁轩功能安全工程师3年芯片功能安全经验熟悉ISO26262、IEC62380、IEC61709、SN29500;拥有ASILD产品开发经验;熟知芯片开发验证封装
芯科科技驱动和重塑智能门锁行业格局 多协议、安全性、AI技术与开发工具共同赋能
当外出归家时,手机或穿戴设备可以成为智能门锁安全、可互操作的钥匙,为我们提供一种到达即入的轻松便捷进门体验;在远途出行时,
SASETalk | Z生代工程师的「立体化」安全实践
朱利亚磐时功能安全工程师熟悉ISO26262、ISO21448,具有全智能主动悬架、线控制动、线控转向等系统功能安全设计与认证经验。精通Carsim+Simuli
培训回顾 | 磐时功能安全系列课程顺利启动
近期,磐时功能安全系列培训前两期课程相继圆满举办,分别聚焦“功能安全工程师”和“汽车安全经理”方向,由行业资深专家针对性授课,精准匹配不同岗位的能力需求,收获了参训学员的高度认可。首场
硬件加密引擎在保障数据安全方面有哪些优势呢?
1Gbps 以上)完成实时加密,确保数据传输不延迟。
低功耗特性:专用硬件电路的运算逻辑更精简,相比软件在操作系统层的复杂调度,能耗降低 50% 以上。这对依赖电池供电的物联网终端(如智能门
发表于 11-17 06:47
芯源半导体安全芯片技术原理
联网系统,获取系统权限或发送虚假信息。比如,伪造智能门锁的身份信息,可能非法打开门锁;伪造工业传感器身份,向控制系统发送错误数据,影响生产决策。
设备固件安全威胁:设备固件可能被篡改
发表于 11-13 07:29
学习物联网可以做什么工作?
市场需求,制定产品规划。 系统集成工程师:负责将不同的物联网设备和系统进行整合,实现设备之间的联通和数据共享。 安全工程师:负责保障物联网系统和设备的安全性,包括设备的数据加密
发表于 10-11 16:40
嵌入式工程师的进阶之路
嵌入式工程师的进阶之路 (一)初级工程师(0-3 年)核心技能:
单片机开发:STM32F103系列 GPIO/USART/SPI 外设驱动,能完成 LED 呼吸灯、按键检测、串口通信等基础项目
发表于 08-13 11:08
低功耗蓝牙智能门锁应用
使用场景,提供高效、便捷的后台管理服务,在线实现授权、钥匙分发等功能。
应用:
1、家庭用户:通过手机APP控制管理,保障家庭安全,同时可将家庭门锁和其他
发表于 06-25 09:47
智能门锁M1卡钥匙易被复制存在安全漏洞?资深安全工程师教你轻松升级CPU加密防复制卡
评论