前言
早在 2008年,M1卡的安全算法就被破解,這意味著當(dāng)時(shí)全球多達(dá)10億張的M1卡都存在被偽造、復(fù)制的風(fēng)險(xiǎn),近幾年網(wǎng)絡(luò)媒體也針對(duì)智能鎖卡片鑰匙的安全問(wèn)題做了很多現(xiàn)場(chǎng)測(cè)試。測(cè)試表明,一部分智能鎖產(chǎn)品使用普通M1卡進(jìn)行開(kāi)鎖驗(yàn)證,未做加密導(dǎo)致可以備輕易復(fù)制,造成安全隱患。本文旨在通過(guò)簡(jiǎn)單的幾個(gè)步驟向大家介紹更加安全的CPU加密卡的實(shí)現(xiàn)方式。
一、CPU 卡開(kāi)鎖密鑰產(chǎn)生機(jī)制
1、 用 DEV_UID(16 位, 不足 16 位后面補(bǔ) 0)做為 3DES 加密密鑰對(duì) 4 字節(jié)卡片唯一識(shí)別碼 UID(不足 16 位后面補(bǔ) 0)進(jìn)行 3DES 加密得到 16 位加密數(shù)據(jù) DATA_ENC。
2、 DATA_ENC 做為 CPU 卡開(kāi)鎖密鑰 UNLOCK_KEY。
注: 加密密鑰由客戶自定義, 以上加密方式只是示例。
二、 CPU 卡綁卡流程
1、
根據(jù)《CPU 卡開(kāi)鎖密鑰產(chǎn)生機(jī)制》 , 產(chǎn)生開(kāi)鎖密鑰
2、
;選擇卡應(yīng)用 00A4 0400 09 A000000003D6D0D5FD
3、
; 得隨機(jī)數(shù) 0084 0000 08
; ; 例如卡片應(yīng)用主控密鑰為(112233445566FFFFFFFFFFFFFFFFFFFF)
; ; 用卡片應(yīng)用主控密鑰(112233445566FFFFFFFFFFFFFFFFFFFF) 對(duì)隨機(jī)數(shù)做 3DES 加密
; 對(duì)卡片做外部認(rèn)證, 獲取更新密鑰的權(quán)限, enc 為加密的結(jié)果 0082 0000 08 enc(last,112233445566FFFFFFFFFFFFFFFFFFFF)
4、
; 得隨機(jī)數(shù)
0084 0000 08
開(kāi)鎖密鑰(例如是 22222222222222222222222222222222)
; ; 先用主控密鑰(112233445566FFFFFFFFFFFFFFFFFFFF) 對(duì)(密鑰頭 5 字節(jié)+要替換的密鑰
16 字節(jié)) 加密得到 24 字節(jié)加密結(jié)果,
15300000003322222222222222222222222222222222
然后用主控密鑰(112233445566FFFFFFFFFFFFFFFFFFFF) 對(duì)(指令頭 5 字節(jié)+加密結(jié)果 24 字
節(jié)) 做 mac 計(jì)算得到 4 字節(jié) mac 值。
; 更新開(kāi)鎖密鑰
0084 0000 04
84D430011C
DATA_ENC(300000003322222222222222222222222222222222,112233445566FFFFFFFFFFFFFFFF
FFFF)
MAC(84D4 3001 1C DATA_ENC(3000000033
22222222222222222222222222222222,112233445566FFFFFFFFFFFFFFFFFFFF),112233445566FF
FFFFFFFFFFFFFFFFFF,LAST)
詳細(xì)過(guò)程如下:
隨機(jī)數(shù): 903E12B0ABBA8019 9000
加密密鑰數(shù)據(jù)原始內(nèi)容: 15300000003322222222222222222222222222222222
更新密鑰線路保護(hù)密鑰: 112233445566FFFFFFFFFFFFFFFFFFFF
加密密鑰數(shù)據(jù)明文內(nèi)容: 153000000033222222222222222222222222222222228000 //如加
密數(shù)據(jù)補(bǔ)足 8 字節(jié)的倍數(shù), 就后補(bǔ) 80000...湊足 8 字節(jié)整倍
數(shù)
加密密鑰數(shù)據(jù)密文內(nèi)容: 47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B
更新密鑰命令: 84D430011C 47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B
即: 84D430011C47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B800000
計(jì)算 mac 結(jié)果: E47CC048
更新密鑰命令: 84D430011C 47E16367A4F223D99131D48C0FCC7B4CA507087AF537D88B
E47CC048
三、 CPU 卡開(kāi)鎖流程
1、
根據(jù)《CPU 卡開(kāi)鎖密鑰產(chǎn)生機(jī)制》 , 產(chǎn)生開(kāi)鎖密鑰
2、
;選擇卡應(yīng)用 00A4 0400 09 A000000003D6D0D5FD
3、
; 門鎖產(chǎn)生 8 字節(jié)隨機(jī)數(shù)
; 用開(kāi)鎖密鑰(例如 22222222222222222222222222222222) 對(duì) 8 字節(jié)隨機(jī)數(shù)加密, 得到 8 字節(jié)密文 enc
4、
; 內(nèi)部認(rèn)證 0088000108(8 字節(jié)隨機(jī)數(shù))
; ; 得到 8 字節(jié)密文 enc'
; ; 比對(duì)密文結(jié)果 enc 和 enc', 比對(duì)成功, 開(kāi)鎖, 比對(duì)不成功, 提示開(kāi)鎖不成功
示例
0088000108 1122334455667788
9E 94 6C 69 B7 2F 0B 80 : 90 00
開(kāi)鎖密鑰(例如 22222222222222222222222222222222)
對(duì)隨機(jī)數(shù)加密 1122334455667788
Enc(1122334455667788, 22222222222222222222222222222222) =9E946C69B72F0B80
總結(jié)
以上示例就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了CPU卡的基礎(chǔ)應(yīng)用方法,通過(guò)此方法企業(yè)可以在非常短的時(shí)間內(nèi)實(shí)現(xiàn)CPU卡的應(yīng)用,感謝您的關(guān)注。
-
CPU卡
+關(guān)注
關(guān)注
1文章
24瀏覽量
11103 -
智能鎖
+關(guān)注
關(guān)注
18文章
1067瀏覽量
39095 -
M1卡
+關(guān)注
關(guān)注
0文章
3瀏覽量
6920
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論