




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
社保卡规范vs银行卡规范一 社保卡体系及实现1. 密钥权限状态机命令与密钥的关系(参见p.67表2):命令密钥用法Application BlockLKDF03,LKDF04外部认证STKDF01,STKDF02,STKDF03,STKDF04计算MACCard BlockBK外部认证STK计算MACInternal AuthenticationIRK内部认证PIN Change/UnblockPUK外部认证STK计算MACRead BinaryRead RecordRK1DF03,RK2DF03,RK1DF04外部认证Update BinaryUpdate RecordUKMF,UK1DF01,UK2DF01,UK3DF01,UK4DF01,UK5DF01,UK1DF02,UK2DF02,UK3DF02,UK4DF02,UK5DF02,UK1DF03,UK2DF03,UK3DF03,UK1DF04,UK2DF04外部认证STK,STKDF01,STKDF02,STKDF03,STKDF04计算MAC脱网医保交易DSK外部认证DLK,DPK,DTK计算MAC、TAC各类密钥的定义:密钥类型类型名称密钥子类型密钥名称消费密钥DPK(0x00)DPK圈存密钥DLK(0x01)DLKTAC密钥DTK(0x02)DTK应用维护密钥DAMK(0x05)STKSTKDF01STKDF02STKDF03STKDF04外部认证密钥EXTAUTK(0x08)个人密码解锁密钥(0x01)PUK卡片锁定控制密钥(0x02)BK应用锁定控制密钥(0x03)LKDF03LKDF04年度起始日期控制密钥(0x04)DSK应用数据更新密钥(0x05)UKMFUK1DF01UK2DF01UK3DF01UK4DF01UK5DF01UK1DF02UK2DF02UK3DF02UK4DF02UK5DF02UK1DF03UK2DF03UK3DF03UK1DF04UK2DF04应用数据读取密钥(0x06)RK1DF03RK2DF03RK1DF04内部认证密钥INTAUTK(0x09)IRKPINPIN(0x0B)PIN各DF下的密钥:DF密钥类型密钥名称MF(SSSE)应用维护密钥STK外部认证密钥PUK(0x01)BK(0x02)UKMF(0x05)内部认证密钥IRKPINPINDF01(公共应用)应用维护密钥STKDF01外部认证密钥UK1DF01(0x05)UK2DF01(0x05)UK3DF01(0x05)UK4DF01(0x05)UK5DF01(0x05)DF02(就业与失业应用)应用维护密钥STKDF02外部认证密钥UK1DF02(0x05)UK2DF02(0x05)UK3DF02(0x05)UK4DF02(0x05)UK5DF02(0x05)DF03(社会保险应用)应用维护密钥STKDF03外部认证密钥LKDF03(0x03)UK1DF03(0x05)UK2DF03(0x05)UK3DF03(0x05)RK1DF03(0x06)RK2DF03(0x06)DF04(医疗保险应用)消费密钥DPK圈存密钥DLKTAC密钥DTK应用维护密钥STKDF04外部认证密钥LKDF04(0x03)UK1DF04(0x05)UK2DF04(0x05)RK1DF04(0x06)DSK(0x04)用Write Key命令写外部认证密钥时,密钥的后续状态就是密钥子类型。Create File和Write Key命令中,读写控制条件的字节表示:B7B6B5B4B3B2B1B0是否校验PIN1 是0 不是两者逻辑关系1 与0 或外部认证密钥的ID111111b 任何情况下外部认证控制条件均不满足000000b 任何情况下外部认证控制条件均可满足其他 若已成功验证过指定ID的密钥,则外部认证控制条件满足实例:控制条件条件字节的内容无00000000UKMF01000100PIN11000000PIN或UK2DF0110000110PIN & RK2DF0311010101不允许改写11111111状态机由b_pinflag变量与d_dfac变量共同构成。应用状态(d_dfac变量)字节的含义:B7B6B5B4B3B2B1B0应用状态(00000000b 11111111b)00000000b 未做外部认证时的初始状态其他 若某外部认证密钥验证成功,则相应的标志位被置为1。18号外部认证密钥分别与B0B7位对应。二 规范比较及程序变更1. 不分主题 遵循社会保障(个人)卡规范。应用规范部分系全新设计。l 在项目中增加了sbtrans.c文件,移除了getblan.c、inttra.c、trans.c文件。l 在mainx.h中移除了FINAL_VAR*、EDLOAD、EPLOAD、UNLOAD、EDCASH、EDPUR、EPPUR、EDUPDATE、CREDITPUR、TRANSIDLE、TRANSLOAD、TRANSCASH、TRANSUNLOAD、TRANSUPDATE等宏的定义,定义了FINAL_VAR019、EFMXID、EFEDID、EFEDLEN、DSK、EDLOAD、EDPURCHASE、TRANSIDLE、TRANSLOAD、TRANSPURSE等宏。l 在data.c和data.h中移除了b_financeflag变量的定义;在相关各处移除了使用该变量的语句。l 在func.h和sbtrans.c中将debit_for_purchase_or_unload函数更名为debit_for_purchase。在func.h和sbtrans.c中定义了read_or_update_starting_day函数。l 在main.c的cmdtable变量初始值中移除了Credit for Load、Debit for Purchase / Cash Withdraw / Unload、Get Balance、Get Transaction Proof、Initialize、Update Overdraw Limit等命令入口,增加了Credit for Load、Debit for Purchase、Get Balance、Get Transaction Proof、Initialize、Read / Update Starting Day等命令入口;在func.h中移除了update_overdraw_limit函数的定义,定义了read_or_update_starting_day函数;在main.c中改写了checkcmdata、main函数。l 在cfile.c中改写了create_file函数。 交易类型的代号不是1、2,而是31、32。l 在mainx.h中改变了EFLOAD、EDPURCHASE宏的定义,并改写了sbtrans.c中相关的调用。 消费初始化,返回的个人累计不对,原因是没有专门准备这一个值。l 在消费初始化时,修改了消费准备响应报文的程序。 对消费时金额累加可能导致的溢出未作处理。l 在sbtrans.c中改写了creditloadbegin函数。 社保卡对ATR的历史字节有要求(p.21)。l 在main.c中改写了main函数。 不再支持用卡片初始密钥做外部认证。l 在inauthe.c中改写了external_authentication函数,移除了对MF的特殊处理。2. 权限控制 命令的操作权限由两套机制联合控制:对PIN进行校验,用指定密钥做外部认证。PIN验证成功与否只影响PIN标志位,不影响应用状态。社保卡规范中的PIN是全局PIN,选择其他应用时,PIN验证结果不变(p.94)。同一ADF下先后执行的多个外部认证所引发的应用状态变化都要保留,直到断电或选择其他应用。l 在sub.c中改写了clrdf、judgeac函数。l 在inauthe.c中改写了external_authentication函数。l 在pin.c中改写了verify函数。 要使用Card Block、Application Block、PIN Change/Unblock、Update Starting Day等命令,必须首先对特定的外部认证密钥进行外部认证,通过后才允许执行这些命令。l 在func.h和sub.c中改变了findkey函数的定义和实现;在sub.c、writekey.c中改写了使用该函数的语句。l 在func.h和sub.c中改变了searchkeycore函数的定义和实现;在sub.c、writekey.c中改写了使用该函数的语句。l 在mainx.h中定义了PUK、BK、LK、DSK等宏。l 在func.h和sub.c中定义并实现了check_authentication函数;在app.c中改写了block_unblock函数;在pin.c中改写了pin_change_and_unblock函数;在sbtrans.c中改写了read_or_update_starting_day函数。 没有Reload PIN命令。l 在pin.c中移除了reload_pin函数的定义和实现。l 在pin.c中改写了change_pin函数,将change_or_reload_pin函数的处理合并进来。l 在func.h和pin.c中移除了change_or_reload_pin函数的定义和实现;在main.c的cmdtable变量初始值中改变了Change PIN命令入口的函数调用。 持卡人可以将PIN设定为无效,此时PIN必须存在,其长度为0,且任何需校验PIN的操作均允许执行。正常PIN的长度是416位(28字节),不是412位(26字节)。根据PIN的有效与否,Change PIN命令(p.33)允许只给出当前PIN和新的PIN这两者中的一个。Verify命令(p.47)的Lc可以是 00,这种情况下的返回码有特殊含义。l 在pin.c中改写了checknumber、change_pin、verify函数。 PIN Change/Unblock命令(p.38)要支持PIN Unblock功能,且PIN Change功能的实现也与金融卡不同。该命令必须在PUK认证通过后才能执行,计算MAC用的是STK。l 在pin.c中改写了pin_change_and_unblock函数。 计算MAC及加密时,社保卡必须使用过程密钥(pp.54-56),而金融卡仅在金融交易中使用过程密钥(pp.122-123, 138)。过程密钥的生成方式是以随机数作为初始值,按照原始密钥(计算MAC时固定为应用维护密钥)的长度,执行单DES或三DES运算。用过程密钥计算MAC及加密时,只能使用单DES算法。若连续三次MAC校验未通过,应用维护密钥STK*应该被锁定,但Card Block和Application Block命令除外(见p.108)。PIN Change/Unblock命令应该锁定STK,不是PUK,规范p.109的说法是不正确的。使用已被锁定的应用维护密钥,返回码应该是6985。应用维护密钥不能解锁?l 在data.h和data.c中改变了sessionkey变量的定义,并将其重新命名为d_sessionkey。l 在mainx.h中改变了SENDBUF_A、REC_BUF_A、RECEIVELIMIT、LOCALMEMORY和FINAL_VAR014宏的定义,移除了FINAL_VAR15宏的定义,将FINAL_VAR1617宏重新命名为FINAL_VAR1516。l 在sub.c、inttra.c、trans.c中用d_sessionkey替换了sessionkey。l 在func.h和sub.c中定义并实现了calc_sessionkey函数。在func.h和sub.c中移除了session_key函数的定义和实现。在inttra.c、trans.c中用calc_sessionkey函数调用替代了session_key函数调用。l 在func.h和sub.c中改变了transmac函数的定义和实现;在binary.c、increase.c、inttra.c、sub.c中改写了使用该函数的语句。l 在inauthe.c中改写了external_authentication和internal_authentication函数;在sub.c中改写了decrypt函数。l 在data.h中改变了df.bs的说明;在pin.c中改写了pin_change_and_unblock函数;在sub.c中改写了searchkeycore、incerrcounter函数。注意,incerrcounter函数仅服务于文件读写,它的存在是因为d_key所用内存与文件数据缓冲区重叠。 Get Challenge命令(p.36)可取回8字节随机数。l 已支持。 Write Key命令对外部认证密钥的ID和后续状态(密钥子类型)进行了检查。外部认证密钥的ID应为1-8。l 在writekey.c中改写了write_key函数。 External Authentication命令(p.34)重新定义了P2和命令数据的意义。应用规范中的“交易流程”部分给出了它的用法(p.95)。缺省密钥标识符0代表哪个密钥是由COS自行规定的。按给定ID及版本找不到密钥时应返回6A88。BK、LK认证失败后,也应返回63CX,但密钥不应被锁定(见p.108)。l 在inauthe.c中改写了checkp1p3、external_authentication函数。 Internal Authentication命令(p.37)重新定义了命令数据的意义。应用规范中的“交易流程”部分给出了它的用法(p.93)。l 在inauthe.c中改写了internal_authentication函数。 外部认证、内部认证的缺省版本号是0。l 在inauthe.c中改写了checkp1p3、internal_authentication和external_authentication函数。 应用锁定后,执行除Select之外的任何命令都只返回9393(p.108)。l 在main.c的cmdtable变量初始值中改变了各命令入口状态字节倒数第2位的定义。 Application Block命令(p.31)只支持应用永久锁定模式(P2为 01)。l 在app.c中改写了block_unblock函数;在sub.c中改写了appblocked函数;在binary.c中改写了select函数。 没有Application Unblock命令。l 在func.h和app.c中移除了application_unblock函数;在main.c的cmdtable变量初始值中移除了Application Unblock命令入口。 卡片锁定不能在ADF下执行,应用锁定不能在MF(SSSE)下执行。l 在app.c中改写了application_block、card_block函数。 Card / Application Block命令必须在BK / LK认证通过后才能执行,计算MAC用的是STK。l 在app.c中改写了block_unblock函数。 PIN Change / Unblock、Card Block、Application Block命令的错误处理顺序为:P1P2 - P3 - 安全状态(6982) - 随机数(6984)。l 在pin.c中改写了pin_change_and_unblock函数。l 在app.c中改写了block_unblock函数。3 文件系统 在社保卡规范中,“树的根和每一分支都是一个应用数据文件(ADF)”,见p.29。而在银行卡规范中,“树的每一分支是一个应用数据文件(ADF)”。l 已支持。 应用选择的入口是社会保障系统环境(SSSE),且SSSE的名字是“sx1.sh.社会保障”,见pp.28 & 49。l 已支持。 Select命令(p.43)扩展了几种选择方式。允许通过文件ID来选择EF(p.29),但不返回FCI。l 在binary.c中改写了select和dofci函数。 通过SFI读写EF时,EF ID的高字节始终被置为 EF,低字节是SFI。l 在binary.c中改写了read_update_binary和read_update_append_record函数。 ADF目录文件的入口地址必须包括“应用标签”这一项,见pp.49-50。l 已支持。 Read Binary命令(p.40)仅支持明文方式,偏移量可长达15位(P1最高位为0),可指定读取长度。l 在main.c的cmdtable变量初始值中改变了Read Binary命令入口的CLA。 Update Binary命令(p.44)支持明文和明文+MAC两种方式,不支持密文方式。6700错误仅在Lc域为空时返回,其他情况应返回6B00。l 在binary.c中改写了read_update_binary、secure_access函数。在data.h中定义了SW6985宏,并调整了其他SW*宏的定义;在main.c中改写了convertsw函数。 Read Record命令(p.41)仅支持明文方式,可指定读取长度。l 在main.c的cmdtable变量初始值中改变了Read Record命令入口的CLA。 Update Record命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京京能清洁能源电力内蒙古分公司招聘31人考前自测高频考点模拟试题带答案详解
- 邢台市人民医院神经外伤评估考核
- 2025黑龙江鸡西市博物馆现公益性岗位招聘2人模拟试卷及一套完整答案详解
- 2025黑龙江齐齐哈尔市泰来县城镇建设服务中心招聘市政园林养护人员5人考前自测高频考点模拟试题及答案详解(网校专用)
- 邯郸市人民医院风湿病消化系统表现识别考核
- 天津市人民医院脊髓电刺激术资格认证
- 2025年甘肃省武威市事业单位已发布考前自测高频考点模拟试题及答案详解(有一套)
- 张家口市中医院甲状腺疾病抗体解读考核
- 石家庄市中医院舌诊与脉诊专项技能分级考核
- 沧州市中医院直接间接检眼镜检查技能考核
- 2025中考语文名著《红岩》重点知识讲解及高频考点梳理+练习(学生版+解析版)
- 房颤患者随访管理制度
- 2025届上海市崇明区高三上学期期末(一模)生物试题(解析版)
- QGDW11447-202410kV-500kV输变电设备交接试验规程
- 国际货物“双清包税”物流服务合同
- 自愿打掉孩子协议书
- 造船协议书范本
- 2025年地理高考复习 微专题 风(讲义)(解析版)
- 2024-2025学年部编人教版八年级语文拓展阅读计划
- (广东二模)2025年广东省高三高考模拟测试(二)历史试卷(含答案)
- GB 5009.229-2025食品安全国家标准食品中酸价的测定
评论
0/150
提交评论