关于SLE4428安全方案的实现:9577 4428

来源:小学教育 发布时间:2019-05-26 05:36:32 点击:

  摘要: 本文简述了SLE4428的性能、分析SLE4428的设计原则及流程,并对使用SLE4428提出注意事项。   关键词: SLE4428;加密卡;密钥   
  1.SLE4428性能描述
  
  1.1 SLE4428容量大小为1K字节,地址为0-1023。
  2.2 所有数据除密码外,在任意情况下均可被读出,密码在核对正确后可以被读出。
  3.3 所有数据包括密码本身在核对密码正确后可以写入或更改。
  4.4 所有数据都可以按字节进行写保护,写保护后数据固化,任意情况下不可更改。
  5.5 有一个密码出错计数器。地址是1021。初始值为8,密码核对出错一次,便减1。若计数器值为0,则整张卡的数据被锁死,只可读出,不可更改或写入且无法继续核对密码;若不为0,则只需要一次核对正确,计数器将恢复为初始值8。
  6.6 密码长度为2字节,地址是1022,1023。共有2种组合,在密码核对正确之前,读这两地址的结果是“00”,也无法写入和更改;在密码核对正确后可以读出密码和更改密码,密码会一直有效至卡掉电为止。
  7.7 地址0-7,21-26出厂前由厂家固化,不可更改,其中地址21-26是卡的用户代码,由制造卡的厂家向SIEMENS公司申请注册的全球唯一的用户代码。
  
  2.设计原则
  
  针对SLE4428安全性的局限性,必须采用以下原则发行和使用SLE4428逻辑加密卡:
  2.1生成密钥文件。该文件为二进制加密文件,由用户方提供的算法种子经过加密算法,生成用户卡密钥所需要的算法种子(以下简称密钥种子)和加密用户卡数据所需要的加密种子。
  2.2用密文方式存储用户卡重要数据,使其它系统无法读出卡上内容,从而保护用户
  的隐私。
  2.3用户卡的改写必须经过以下操作:调用密钥文件中的密钥种子,通过加密算法校验
  用户卡密钥,如果正确就可以进行改写,如果不正确,SLE4428将记数,超过8次不正确,SLE4428将自动锁死,从而避免用穷尽法破译用户卡密钥。
  
  3.设计流程
  
  3.1发行用户新卡
  3.1.1 建立用户对象u_maker 和定义SLE4428的驱动程序hnic32.dllu_maker主要
  由以下密钥函数组成(函数源程序略)。
  3.1.2 定义用户对象u_maker,生成用户卡密码,读密钥文件并将第一套两条密钥分别
  存于ls_key[1]和ls_key[2]中,程序如下:(为减少篇幅,程序只列出主要部分)
  u_maker u_maker1 //定义OBJECT
  u_maker1 = create u_maker
  li_aret=u_maker1.uf_getkey() //读密钥文件
  int li_min,li_sec,li_mul
  char ls_pas[]
  string ls_random,ls_pin_new
  li_sec=integer(mid(string(now()),7,2)) //产生随机数
  if li_sec=0 then
   li_sec=rand(99)
  End if
  li_min=integer(mid(string(now()),4,2))
  if li_min=0 then
   li_min=rand(99)
  End if
  li_mul=li_sec*li_min
  ls_random = left(string(li_mul),2)
  ls_pas = u_maker1.uf_encrypt(ls_random,u_maker1.ls_key[1]) //生成用户卡密码
  ls_pin_new = u_maker1.uf_asctostr(ls_pas)
  3.1.3 从数据库文件中读取需要的数据并写入结构变量istr_info1中,具体如下:
  istr_info1.grzhbh,istr_info1.FXSDM,str_info1.ICKH,istr_info1.BXH,istr_info1.XM,istr_info1.XB,istr_info1.CSRQ1,istr_info1.SFZHM,istr_info1.CBRYLBDM,istr_info1.BNYBMZLJ,istr_info1.YBMZLJ,istr_info1.YYBM,istr_info1.YYMC,istr_info1.BNZYCS,istr_info1.IN_HOS_MON,istr_info1.IN_HOS_SUM,istr_info1.ICHRCS,istr_info1.LAST_DATE,istr_info1.GRZfZF,str_info1.GRZfHR,istr_info1.LAST_BALAN,istr_info1.LAST_USE
  3.1.4 核对用户卡密码,写ic卡,写卡完毕后更改用户卡密码。
  3.2 改写用户卡
  3.2.1 建立用户对象n_cc_ic和u_maker,同时定义SLE4428的驱动程序hnic32.dll
  n_cc_ic 主要由ic卡读写函数组成,限于篇幅,略去。建立u_maker读取密钥文件
  3.2.2 从数据库文件中读取修改好的数据并写入结构变量istr_info中,同上
  3.2.3 从用户卡中读出随机数生成用户卡密码,并核对密码
  3.2.4 开始写卡,同上
  
  4.注意事项
  
  4.1SLE4428的安全机制:唯一代码是由制造卡的厂家向SIEMENS公司申请注册的全球唯一的用户代码。可防止其它厂家的卡进入系统,同时也决定了用户卡只能来源于该厂家;固化写入对于需要不断改卡的用户也不适用;只有建立安全的用户密码才是最有效的手段。
  4.2SLE4428无须密码便可读出除密码外的整张卡的数据,密码一经核对便可向任一地址写入或修改数据,因此设计时要注意适当固化数据和将数据内容加密,以防止无意破坏数据或非法修改数据。
  4.3密码核对正确后便可读出,因此设计程序时要能防止破坏者采用非法中断程序运行,直接去读取密码的方法来窃取密码。由于实现一卡一密,所以即使窃取一张或几张用户卡的密码,也无法破译一批用户卡的密码。
  
  参考文献:
  〔1〕张立松,刘鸿雁:SLE4442逻辑加密IC卡在52单片机中的应用[J].信息技术,2004,(08).
  〔2〕王新、吕锋:IC卡读写接口的设计和实现[J].武汉理工大学学报(信息与管理工程版)2005,(05).

推荐访问:方案 SLE4428
上一篇:汽车轮胎价格查询【浅析汽车轮胎维护与突发故障应对】
下一篇:最后一页

Copyright @ 2013 - 2018 四八文档网-文档下载,办公室文档软件 All Rights Reserved

四八文档网-文档下载,办公室文档软件 版权所有 沪ICP备09019570号-4