攀枝花医保管理系统IC卡数据结构分析
文章出处:http://www.nexussmartsolutions.com 作者:fondcard 人气: 发表时间:2011年09月17日
[文章内容简介]:本文主要说明医保系统中采用的各种IC卡片中的数据结构及相互关系,是系统构成的重要技术性文章。
概 述
本文主要说明医保系统中采用的各种IC卡片中的数据结构及相互关系,是系统构成的重要技术性文章。
在本系统中,根据IC卡类型可分为两种:CPU卡和SLE4428逻辑加密卡;根据其应用功能的不同,可以分为:总控卡、密钥传输卡、密钥卡和医保卡(也可以叫用户卡)。另外,由于系统管理的需要,特别添加了管理员卡(用于登录发卡系统)。
其相互关系如下:
一、 CPU卡
本系统采用的CPU卡系符合国家劳动保障部规定的智能IC卡,芯片采用符合社保要求的国产华大芯片,自带8位微处理器,数据存储空间为8K ,CPU卡的操作系统(COS)为广东德生科技有限公司自主开发并获得社保认证的社保IC卡操作系统。目前已在广东省、云南省等地区广泛应用。
CPU卡中所有信息都是以文件形式保存的,而文件又是以目录形式组织的〔事实上,在CPU卡里,目录也被称为文件,叫专用文件(DF),而保存具体数据的文件叫基本文件(EF)〕,在创建文件的时候,即可以设置对该文件的操作限制,如允许直接读、允许通过安全认证后改写、固化不得改写等。
而为了控制对不同的文件的读写控制,又可以设置不同的密钥(长度为8/16个字节),换言之,可以设置为要读某一个文件,需验证密钥1,要改写该文件,则需验证密钥2,而要读另外一个文件,又可以设置要求验证密钥3……这样一来,其安全性得到了明显的提高。
二、 逻辑加密(SLE4442)
逻辑加密卡常被通俗地叫成IC卡,它是通过一个逻辑安全机制,来控制卡片信息的读/写操作的。
4428卡有三重数据安全机制:卡片密码、密码错误计数器及数据保护。
1.卡片密码:控制着IC卡数据区数据的改写,即要改写IC卡的信息,必须验证IC卡的密码——保证卡上数据安全而不被撰改;
2.卡片密码错误计数器:当IC卡密码验证失败时,该计数器减1,如果减到0,则该卡片物量锁死,如果验证成功,则该计数器恢复到初始值——防止恶意跟踪和尝试;
3.数据保护指将写在IC卡上的信息进行写保护操作,如同磁盘的写保护开关,一旦写保护操作成功,则该数据信息不可改(可针对一个字节进行写保护操作)——防止数据修改和保证唯一性。
本系统在IC卡(也就是医保卡)的安全规划上,采用了综合、全面的安全措施,使得系统的安全性得到了最大限度的保障,其具体的措施如下:
1.最大的也是最核心的,一卡一密
首先说明,很多IC卡应用中,都是用相同一个密码,长度一般为2-3个字节,其安全隐患在于如果有人破得了一张IC 卡的密码,则整个系统将面临危险。
一卡一密则很好地解决了这一问题,它的原理是先从IC卡的数据保护区内读取一个(唯一的、足够长的、不可改的)卡片序列号(SN),长度为8个字节,然后通过标准的、通过安全认证的、通用的加密算法(3DES),进行加密运算(DEA),得到一个8字节的密文,对该密文进行某种固定的取舍,即可得IC卡的密码。
具体过程如下图:
2.卡序列号唯一并固定
相对来说,该方案很多应用中都采用它,一来它可以保证卡片的合法性,另一方,也方便了IC卡的管理。防止一些回收卡重新非正常渠道流入应用中。
补充说明:该序列号可以为明码,也可以为密文
3.数据加密
数据加密同样也是应用得较多的一种安全措施,因为IC卡本身的原理是任何时候都可以读取卡上的信息,试想,如果一个攻击者可以轻易地看到你的目标和路径的话,那他接下来想的一定是无论如何也要达到,而相反,如果一个攻击者一开始面对的就是漆黑一片,他几乎很难让自己再坚持走下去。(以上仅为个人想法)
4.数据校验码和两种校验算法同时采用
数据校验是防止外人恶意篡改,这也是信息安全的一种常用模式,也是必须采用的。
本系统采用两种数据校验算法,分别为:加权平均和求异或校验码长度为1个字节,分高低2位BCD码,高位为加权平均值,低位为求异或。两种算法同时应用,为系统的安全性加重了科学依据。
5.CPU卡的加入
CPU卡加入为系统的安全性提供的最大的保障,CPU卡主要应用在医保卡卡片密码的计算和卡上数据区数据信息的加/解密。CPU卡的加入,为系统增添了许多特点,如:
系统安全控制密钥由用户方领导入系统管理员共同输入产生,卡片供应商、软件开商发无法获知系统的原始密钥;
CPU卡在卡片内计算产生密文信息,避免了在程序中进行数据加/解密运算所带来的不确定因素;
CPU卡为其本身的安全提供了严格的管理机制,系统将严格按此机制设计开发发卡系统。
其它在此不再作详细的论述。
三、 总控卡
总控卡主要完成对所有CPU卡的安全控制,包括通过它对密钥传输卡的安全认证从而启动一般密钥卡的发行;通过它解锁密钥卡上的操作口令;通过它完成已经使用过的CPU卡洗卡操作,从而清空CPU中的安全数据等。
总控卡通过系统管理员输入一串16个字节的系统卡片总控密钥产生。该总控密钥该被分散到每一张密钥卡中,作为密钥卡合法性鉴别的依据。
具体关系图如下:
说明:由于总控中存放的密钥卡卡片主控密钥系校验密钥卡的合法性,以使有别与其它应用中的CPU卡,所以,它的安全性不是至关重要的。因此它的产生和管理也就相对来说简单些。
四、 密钥传输卡
它的重要性就在于它存放了密钥卡中真正进行数据加密计算和医保卡卡片密码计算的两组密钥,同时还存放了该密钥产生的原码串(也就是由负责领导输入的原两组原码串和系统管理员输入的分散因子),该卡将是系统安全的来源。
密钥传输卡由总控卡控制发行,如下图所示:
密钥传输卡中的信息结构:
1.由用户方负责人直接输入两组16个字符,通过系统转换为BCD码。并由系统管理员输入两组分散因子(长度为8个字节),分别为卡片密码计算密钥分散因子(PSUB)、卡片数据加密计算密钥分散因子(DSUB);
2.以上三人输入的字符串将分别保存在三个顺序文件中:0004、0005、0006;
3.以上三人还要求分别输入各自的口令,分别为:Pin1,Pin2,Pin3,长度为2-8个字节,该口令控制着各自的原码信息读出;
4.将领导I输入的原码串对PSUB进行分散,得8字节临时密文I:PkeyL;
5.将领导II输入的原码串对PSUB进行分散,得8字节临时密文II:PkeyR;
6.PkeyL & PkeyR=Pkey(卡片密码计算密钥);
7.将领导I输入的原码串对DSUB进行分散,得8字节临时密文I:DkeyL;
8.将领导II输入的原码串对DSUB进行分散,得8字节临时密文II:DkeyR;
9.DkeyL & DkeyR=Dkey(卡片数据信息加/解密计算密钥);
10.将卡片数据加/解密计算密钥(Dkey)保存到文件EF01中,该文件的读写控制为:改写:不允许;读:卡片主控密钥认证和线路加密;
11.将卡片密码计算密钥(Pkey)保存到文件EF02中,该文件的读写控制为:改写:不允许;读:卡片主控密钥认证和线路加密。
逻辑结构图如下:
关于密钥传输卡的一些安全特性如下:
1.其使用必须通过总控卡的有效性认证(认证卡片主控密钥),本系统中所有密钥卡的卡片主控密钥(MK)都是一致的。该密钥是对卡片合法性的有效认证;
2.密钥传输卡是系统安全数据源,有其有效的管理,也就是对系统安全性的管理。它是系统原始密钥的;
3.密钥传输卡的原始密钥数据的改写权限为不允许,读操作要求验证相应人员的PIN,同时,数据在卡与终端的传输过程中采用了线路加密技术,防止他人截取。
五、 管理员卡
管理员卡的加入,主要是为了加强对医保发卡系统的有效管理,控制医保卡的发行工作了密钥卡的安全产生。
管理员卡按权限的不同,又分为系统管理员卡和发卡管理员卡,前者拥有发卡系统的全部操作权限,而后者则只能完成与发医保IC 卡相关的操作,如数据链接、医保IC卡的发行、重写以及数据清除等。
管理员卡是在总控卡和密钥传输卡控制下产生的,具体过程如下图:
管理员卡的安全特性:
1. 管理员口令控制着两组密钥的使用权
2. 终端管理员对终端的安全管理就是对该密钥卡的管理,同时,该密钥卡又成为了终端管理员身份卡
3. 终端管理员基本信息可以根据应用需要进行扩充。
管理卡的数据结构如下图:
六、 密钥卡(终端应用)
密钥卡与管理员卡的数据结构几乎是相同的,只是要密钥卡的根目录下添加了一个标识文件,具体内容请参见管理员卡。
七、 医保IC卡
医保IC卡的数据结构主要分为三部分:前32个字节的卡序列号(卡号)、持卡人基本信息、交易记录。
本文关键词:IC卡,数据结构,CPU卡,逻辑加密,总,C卡,数据结构,CPU卡,逻辑加密,总控,卡,数据结构,CPU卡,逻辑加密,总控卡
上一篇:PKI技术漫谈[ 09-17 ]
下一篇:技术与大型体育赛事的安全防卫、管理控制(上)[ 09-17 ]