4442卡消费卡卡片规范.docx
《4442卡消费卡卡片规范.docx》由会员分享,可在线阅读,更多相关《4442卡消费卡卡片规范.docx(5页珍藏版)》请在冰豆网上搜索。
![4442卡消费卡卡片规范.docx](https://file1.bdocx.com/fileroot1/2023-1/2/56fffe97-4cf7-498f-917d-708acd30d517/56fffe97-4cf7-498f-917d-708acd30d5171.gif)
4442卡消费卡卡片规范
4442卡消费卡
卡片规范
1编写说明
本规范对IC卡片的存储结构、安全措施、认证方法做出规定。
2IC结构及存储要求
2.1卡的结构介绍
卡系统采用SLE—4442的IC卡,特性如下:
一、主要指标:
?
256字节EEPROM组织方式?
?
32位保护存储器组成方式?
?
3字节用户密码,密码错误计数:
3次。
?
?
温度范围:
0℃~70℃?
?
至少10万次擦写?
?
至少10年数据保存期?
二、?
存储区分配:
三、保密特性:
1.?
密码核对正确前,全部数据均可读,如果有需要,可对数据进行适当加密。
核对密码正确后可写入或修改数据。
2.?
三字节的用户密码,校验通过后,至卡下电一直有效。
校验通过后密码本身可更改。
?
注意:
密码区另外编址,不在0~256字节内。
3.?
密码出错计数器,初始值为3,密码核对出错1次,便减1,若计数器值为0,则卡自动锁死,数据只可读出,不可再进行更改也无法再进行密码核对;若不为零时,有一次密码核对正确,可恢复到初始值。
4.?
写保护区(前32个字节)的每一字节可单独进行写保护,进行写保护后,内容不可再更改(即固化数据)。
5.?
字节地址0x15~0x1A为用户代码(卡片序列号),SIEMENS公司可为大用户在此专设一个全球唯一代码,以便用户统一发行使用(所有的卡出厂后不可再修改)。
6.?
字节地址0~7出厂前已由厂家写好,不可更改。
2.2卡的认证密钥
卡的认证采用卡片验证码和卡片读写口令校验的方式进行。
卡片验证码的产生和读写口令的产生,需要用到卡片认证工作密钥,我们称为AUK,AUK的保护密钥称为卡片认证主密钥AMK。
AMK存储在终端的安全设备当中,和PIK、MAK的主密钥分别存储。
AUK的密文可以在POS签到时从公务采购卡POS中心获得。
备注:
AUK暂时定义和PIK一致
2.3卡用户卡格式
字节地址0x20~0x27存储IC卡卡号(BCD码存储);
字节地址0x30~0x32存储卡效期(yyyymm格式BCD码);
字节地址0x33标识卡类型(保留未用);
字节地址0x34~0x39存储发卡时的卡面额,(BCD码金额不足12位左补零);
字节地址0x40~0x47存储发卡机构代码(ASC码);
字节地址0x4A 存储认证算法标识(0为DES,6为3DES)
字节地址0x4F存放卡认证主密钥索引值(AMK_IDX,HEX码,取值0-255);
字节地址0x50~0x57存储验证码(MAC(卡号+卡效期+发卡机构代码)),BCD码存储;
字节地址0x58~0x5F存放主机验证码,终端无需验证,只需读出按照终端规范上传即可。
字节地址0x60~0x6F存放认证密钥密文(被AMK加密的AUK),BCD码存储;
字节地址0x60~0x8F保留商户扩展,可写入会员号,持卡人姓名等要素;
剩余字节地址保留未用;
2.4卡用户卡改写密码
SLE4442卡片出厂缺省密码为HEX(FFFFFF),写入用户卡后,需改写此密码。
用户卡改写密码算法如下:
取出卡片字节地址0x20~0x27的8字节卡号(卡片序列号),利用安全设备(如密码键盘),使用卡片认证密钥AUK,对卡号进行加密,所得8字节加密结果,取前3字节做为用户卡改写密码。
2.5用户卡认证过程
终端对用户卡采用下述过程进行认证:
1)将卡号+卡效期+发卡机构代码共19字节内容,以AUK做为密钥,送入安全设备进行MAC运算,若结果与验证码不符,则提示“不受理此卡”;
2)将卡号以AUK做为密钥,送入安全设备进行DES加密,得到的8字节结果取前3字节做为卡片读写口令,如果验证读写口令失败,则提示“此卡无效”;
附 录 A
(规范性附录)
POS终端MAC的算法
POS终端采用ECB的加密方式,简述如下:
a)将欲发送给POS中心的消息中,从消息类型(MTI)到63域之间的部分构成MACELEMEMENTBLOCK(MAB)。
b)对MAB,按每8个字节做异或(不管信息中的字符格式),如果最后不满8个字节,则添加“0X00”。
1示例:
MAB=M1M2M3M4
其中:
M1=MS11MS12MS13MS14MS15MS16MS17MS18
M2=MS21MS22MS23MS24MS25MS26MS27MS28
M3=MS31MS32MS33MS34MS35MS36MS37MS38
M4=MS41MS42MS43MS44MS45MS46MS47MS48
按如下规则进行异或运算:
MS11MS12MS13MS14MS15MS16MS17MS18
XOR)MS21MS22MS23MS24MS25MS26MS27MS28
---------------------------------------------------
TEMPBLOCK1=TM11TM12TM13TM14TM15TM16TM17TM18
然后,进行下一步的运算:
TM11TM12TM13TM14TM15TM16TM17TM18
XOR)MS31MS32MS33MS34MS35MS36MS37MS38
---------------------------------------------------
TEMPBLOCK2=TM21TM22TM23TM24TM25TM26TM27TM28
再进行下一步的运算:
TM21TM22TM23TM24TM25TM26TM27TM28
XOR)MS41MS42MS43MS44MS45MS46MS47MS48
---------------------------------------------------
RESULTBLOCK=TM31TM32TM33TM34TM35TM36TM37TM38
c)将异或运算后的最后8个字节(RESULTBLOCK)转换成16个HEXDECIMAL:
RESULTBLOCK=TM31TM32TM33TM34TM35TM36TM37TM38
=TM311TM312TM321TM322TM331TM332TM341TM342||
TM351TM352TM361TM362TM371TM372TM381TM382
d)取前8个字节用MAK加密:
ENCBLOCK1=eMAK(TM311TM312TM321TM322TM331TM332TM341TM342)
=EN11EN12EN13EN14EN15EN16EN17EN18
e)将加密后的结果与后8个字节异或:
EN11EN12EN13EN14EN15EN16EN17EN18
XOR)TM351TM352TM361TM362TM371TM372TM381TM382
------------------------------------------------------------
TEMPBLOCK=TE11TE12TE13TE14TE15TE16TE17TE18
f)用异或的结果TEMPBLOCK再进行一次单倍长密钥算法运算。
ENCBLOCK2=eMAK(TE11TE12TE13TE14TE15TE16TE17TE18)
=EN21EN22EN23EN24EN25EN26EN27EN28
g)将运算后的结果(ENCBLOCK2)转换成16个HEXDECIMAL:
ENCBLOCK2=EN21EN22EN23EN24EN25EN26EN27EN28
=EM211EM212EM221EM222EM231EM232EM241EM242||
EM251EM252EM261EM262EM271EM272EM281EM282
2示例:
ENCRESULT=%H84,%H56,%HB1,%HCD,%H5A,%H3F,%H84,%H84
转换成16个HEXDECIMAL:
“8456B1CD5A3F8484”
h)取前8个字节作为MAC值。
取”8456B1CD”为MAC值。