基于互联网的学生ic卡信息访问方法
【专利摘要】本发明提供了一种基于互联网的学生IC卡信息访问方法,该方法包括:在加密IC卡的数据传输过程中,片上系统使用安全状态寄存器存储当前系统安全状态,并通过外部认证和验证口令改变安全状态,利用消息认证码确认数据的完整性并对发送方进行认证。本发明提出了一种基于互联网的学生IC卡信息访问方法,在卡片功能性和安全性上有很大提升,保证了学生在校活动中便利性,提高了教育部门的工作效率和信息化水平。
【专利说明】
基于互联网的学生IC卡信息访问方法
技术领域
[0001 ]本发明涉及IC卡,特别涉及一种基于互联网的学生IC卡信息访问方法。
【背景技术】
[0002]在物联网发展过程中,IC卡技术是识别终端物体的技术,是应用最为广泛的技术。加密IC卡有易携带、兼容性好、超大容量、非常稳定等特点。现在电子商务、电子政务逐渐成为互联网时代最为流行的应用领域的时候,其安全问题变得最为突出。在制造、物流、金融、交通、旅游等很多领域都使用了加密IC卡技术,极大地提高了人们的工作效率,更方便了人们的生活。在教育系统中,所有的职工和学生用学生IC卡在学校出入、活动、消费、注册,还可以通过学校的终端来进行银行卡到学生IC卡的转账,大大方便了教职工及学生的生活和学习,同时也提高了学校各个部门的工作效率和信息化水平。学生IC卡系统是学校管理决策补充系统的功能,是校园信息化采集的重要手段。然而加密IC卡的功能无法满足日益增长的需要,尤其是加密IC卡的片上系统亟待从功能性和安全性上进行提升。
【发明内容】
[0003]为解决上述现有技术所存在的问题,本发明提出了一种基于互联网的学生IC卡信息访问方法,包括:
[0004]在加密IC卡的数据传输过程中,片上系统使用安全状态寄存器存储当前系统安全状态,并通过外部认证和验证口令改变安全状态,利用消息认证码确认数据的完整性并对发送方进行认证。
[0005]优选地,所述通过验证口令改变安全状态,进一步包括:
[0006]加密IC卡是通过验证用户输入的密码完整性来确定卡片用户的合法性;当个人口令完成输入后,如果密码正确,改变安全状态寄存器的值作为口令密钥的安全状态,并重新设置口令错误计数器;如果密码不正确,就将口令允许错误的次数减去I,但是如果输入错误密码次数超过允许的次数,则个人密码被锁定;在验证个人口令的过程中,首先卡片用户通过键盘输入个人口令,然后读卡器对其进行编码发给卡片,收到指令后就对数据域中的数据进行消息认证码验证并解密,如果将得到的个人密码与文件中存储的个人密码对比,结果一致,则将安全状态设置为个人口令的安全状态并重置错误计数器,返回密码验证成功的代码;
[0007]所述消息认证码是密钥和消息内容公开的函数,而且输出为定长的数据块,定义I为消息内容,K为密钥,M为生成消息认证码的算法,则消息认证码MAC=M(I,K);
[0008]通过以下两种方式进行报文安全传送:
[0009](I)发送方先对数据进行消息认证码运算得到4字节的消息认证码值,将其附加在数据的后面并传送给接收方,接收方收到后也对数据进行消息认证码运算得到消息认证码值,并与附在数据后面的消息认证码值进行比较,如果相同则接收数据;
[0010](2)发送数据前先对数据进行AES加密形成密文,然后对密文进行消息认证码运算得到消息认证码值,数据在接收后先对密文进行消息认证码运算得到消息认证码值并与发送方的消息认证码值进行比较,如果相同则接收并进行AES解密得到明文;
[0011 ]所述AES加密和解密过程进一步包括:
[0012]加密过程:Y=AES(KL)[AES—HKR) [AES(KL[X])]]
[0013]解密过程:X=AES-1(KL) [AES(KR) [AES—HKL[Y])]]
[0014]其中AES ()表示AES算法的加密过程;AES—1 ()表示AES算法的解密过程;X代表明文,Y代表密文。
[0015]优选地,所述通过外部认证改变安全状态,进一步包括:读卡器先产生随机数,然后通过外部认证密钥进行加密,再按照外部命令编码格式发给加密IC卡,加密IC卡用相应密钥对数据解密并与存储的随机数对比,相同则认证通过,如果不同,则认证失败,返回错误代码。
[0016]本发明相比现有技术,具有以下优点:
[0017]本发明提出了一种基于互联网的学生IC卡信息访问方法,在卡片功能性和安全性上有很大提升,保证了学生在校活动中便利性,提高了教育部门的工作效率和信息化水平。
【附图说明】
[0018]图1是根据本发明实施例的基于互联网的学生IC卡信息访问方法的流程图。
【具体实施方式】
[0019]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0020]本发明的一方面提供了一种基于互联网的学生IC卡信息访问方法。图1是根据本发明实施例的基于互联网的学生IC卡信息访问方法流程图。
[0021]本发明是对非接触式CPU加密学生IC卡的片上系统的密钥系统和安全体系架构的实现,提出文件的安全管理机制和认证与鉴别过程。
[0022]加密IC卡的内部结构有CPU,控制存储器和接口。CPU负责执行命令和运算,控制存储器包括随机存储器RAM、只读存储器ROM及电可擦除程序存储器EEPROM,EEPROM用来存储发卡方和持卡方的有关信息及应用数据,接口则是卡片与外部通信的端口。
[0023]加密IC卡的软件体系结构是由以下四个功能单元构成的。通信管理单元管理卡片与读卡器之间的数据通信,确保数据传输的完整性;安全管理单元是对要传输的数据进行加密和解密,加密IC卡的鉴别,控制文件的访问控制权;指令解释单元是对从外部收到的指令判断完整性并调用其他的单元做进一步处理,最后将处理结构返回给通信管理单元,文件管理单元管理对各种文件的创建和读写。
[0024]学生IC卡的片上系统调度和分配好软件和硬件资源,对加密IC卡的片上系统进行初始化及指令的处理。从卡片上电开始,打开卡片接口等待数据的接收,然后进入循环接收数据的过程,不断询问是否接收到读卡器发送来的选择指令,如果收到了有效地选择指令,则片上系统初始化执行环境,初始化文件系统,选择根目录主文件,然后主进程向通信传输单元发送应答选择信号,读卡器收到片上系统已经初始化的返回响应,卡片就会被选中。通信传输单元打开数据输入输出端口,按照通讯协议将块数据组合起来形成完整的数据放入收发缓冲区,并对数据块进行判断其完整性。通信传输单元接收完数据后,将其传输给指令解释单元,这时加密IC卡的片上系统就会启动命令处理流程。等指令处理单元处理完毕,通信传输单元就会将处理的结果返回给读卡器。流程会循环等待消息的接收,然后再进行指令的处理,在上电后一次处理多条的指令。
[0025]加密IC卡与读卡器是以指令的形式来通信的,读卡器发出指令,加密IC卡接收指令,这种采用指令应答的方式,处理完接收的指令后返回应答结果。在学生IC卡的系统架构中,指令处理单元由指令处理器和指令解释器两部分组成,指令解释器从传输单元接收到指令数据后,将调用指令处理器并负责对指令处理环境的判断,如果指令处理器在正常状态下,指令处理器就会启动并根据指令映射入口,然后执行相应的操作和返回结果。
[0026]命令处理分为命令解释和命令处理,命令解释部分是用来查看卡片状态、更新数据状态、应用状态和更新随机数。然后进入命令处理部分,根据寻找指令执行入口,调用其他单元进行相应的操作。
[0027]在数据I/O方面,使用块链方式来传输数据,收发的数据存储在长256字节长的RAM中,数据块分为三部分,包括开始域、信息域和结束域。开始域由卡标识符、协议控制字、节点地址NAD构成。信息域包含的是命令数据。结束域包含的是差错检测码,是开始域和信息域的校验结果。
[0028]系统应用数据的I/O流程进一步包括:系统接受到数据后将数据传给命令层,命令层就根据命令处理流程来处理并产生应答数据,这些数据将被放在收发缓冲区中,然后主进程调用传输单元,开始数据发送流程,通信传输单元打开数据发送端口,检查数据并判断发送方式,如果不进行块链发送,就组装数据块并加入协议控制字和卡标识符发送出去;如果以块链方式发送,则先计算块链个数,以最大长度数据块组装发送出去,然后循环组装和发送直至数据全部发送出去。
[0029]片上系统的文件系统采用树状结构进行分层管理,各目录间独立。文件系统分为根目录、对象目录和应用目录文件这三级目录。卡片的文件存储就是把逻辑结构的文件映射到EEPROM内。卡内存储结构包括:单个文件的存储和文件链的存储。
[0030]单个文件的存储指的是单个文件对象在卡内的数据结构,用来对单个文件的存储和管理。单个文件的存储分为两个部分。文件描述块用来记录文件的属性等信息,包含了对应用文件的描述,由片上系统来管理和维护。文件体是文件的数据信息部分。对于对象目录文件,文件体包含了所有子文件对象信息;对于应用目录文件,文件体包含了实际的应用数据。文件体是文件系统管理的具体对象。
[0031]文件链在逻辑上也是树状结构。文件链只实现单向的搜索功能。实现文件链包括:
[0032]文件的初始入口,卡片上电复位后自动选择根目录,然后进入文件系统;同层次文件的关系,用来维护同层次文件的关系;对象目录文件和子文件的关系。用来维护前后层次直接的关系。
[0033]根目录文件的起始地址在片上系统中预先指定,如EEPROM的第一个或第N个数据块当做根目录文件描述块的起始地址,当根目录自动被选择则从指定地址进入。同一层下的文件都是按照文件创建时间先后在存储器空间上连续存储的,同层次文件的文件链与父子层的文件链有显式连接和隐式连接两种。
[0034]显式连接是指在文件描述块中记录同层次下的下一个文件的地址,在遍历文件时就使用这个指针来访问。在对象目录文件中,文件描述块记录子层上第一个文件的起始地址,这样就可以把不同层的文件链连起来。
[0035]隐式链接中不同关系的文件由加密IC卡的片上系统来定义和解释定位的方式,通常就是存储空间按块来连续分配,各文件之间则没有空闲的文件数据块,块的起始地址就当做文件的起始地址,子文件的空间从父文件的起始地址开始分配,只要通过文件描述块记录的文件大小就能计算出下一个文件的起始地址,然后遍历文件。
[0036]文件的空间结构分为文件描述块的空间结构和文件体的空间结构。所以根目录和对象目录可以设计为相同的文件空间结构。主文件根目录是文件系统的根目录,在文件系统中有且只有一个,根目录文件在初始化时首先被创建,并在整个卡片生存期间都有效。
[0037]透明二进制文件是学生IC卡文件系统里面最基础的文件,其空间结构的文件描述块中控制字为OxFF,文件体则存储连续的字节流。
[0038]本发明设计的学生IC卡的片上系统安全体系包括:状态机单元、安全属性单元、安全机制单元、密码算法单元四部分组成。
[0039]状态机单元也叫做安全状态单元,它是指卡片当前所处的安全级别。加密IC卡的片上系统用一个寄存器来存储当前的安全状态,寄存器的低四位表示当前应用的安全状态,高四位表示根目录的安全状态。安全属性就是进行某种文件操作需要达到的条件,而这种条件就是文件访问时的权限,权限在文件建立时就设定好的。加密IC卡的片上系统的访问权限是用一个区间来描述的。如果文件的读的权限是LR,则当前应用的安全状态要满足的条件是:L>M>R;如果设定文件禁止被访问的权限,则定义当前的安全属性LR满足L>R。
[0040]片上系统通过外部认证和验证口令两种方式来改变安全状态,在应用文件目录下只能用验证口令方式改变。任何一种安全状态可以跳转到另外一种安全状态。如果目录更改了,则安全状态置为0,在新的目录下,创建密钥文件不受目录创建权限的限制,在密钥文件中,装载第一个密钥同样不受该机制约束。
[0041 ]片上系统采用以下两种对称密钥加密算法之一。
[0042]I)首先,把密文分割成多段的64位的明文,进行逐段的加密,接着做与密钥无关的初始变换处理,然后对变换的结构进行总共16次的迭代,每次用不同的56位的密钥进行相同的迭代,每次迭代完后,密钥的左28位和右28位都循环移位,形成下一次的密钥,当16次迭代完之后,把结果的左32位和右32位互换位置,最后,再把结果进行一次还原变换就得到64位的密文,还原变换就是初始变换的逆变换。
[0043]2)利用K代表AES算法中的不同的密钥,X代表明文,Y代表密文,因此用公式表示为:
[0044]加密过程:Y=AES(KL)[AES—H KR) [AES(KL[X])]]
[0045]解密过程:X=AES-1(KL) [AES(KR) [AES—HKL[Y])]]
[0046]其中AESO表示AES算法的加密过程;AES—1O表示AES算法的解密过程;
[0047 ]文件的安全属性表现在对文件的操作和访问的控制方式上。对文件的操作方式就是在文件创建的时候定义允许对文件进行哪些操作,比如文件的创建、删除、读和写操作,而对于密钥文件来说,是不能定义读操作的。访问的控制方式就是在对文件进行访问时必须满足规定的访问权限。
[0048]为了保证加密IC卡和外部信息传输的安全性,加密IC卡的片上系统还提供安全报文传送,安全报文传送可以对数据的完整性、可靠性及发送方的认证。利用消息认证码保证数据的完整性和对发送方的认证,对信息域的加密则保证了数据的可靠性。
[0049]消息认证码是密钥和消息内容公开的函数,而且输出为定长的数据块。假设I为消息内容,K为密钥,M为生成消息认证码的算法,则消息认证码MAC = M(I,K)。只有在I完全相同的情况下,才会生产相同的消息认证码值,所以消息认证码可以鉴别报文的完整性。安全报文的传送有以下两种方式:
[0050](I)发送方先对数据进行消息认证码运算得到4字节的消息认证码值,将其附加在数据的后面并传送给接收方,接收方收到后也对数据进行消息认证码运算得到消息认证码值,并与附在数据后面的消息认证码值进行比较,如果相同则接收数据。
[0051](2)发送数据前先对数据进行AES加密形成密文,然后对密文进行消息认证码运算得到消息认证码值,数据在接收后先对密文进行消息认证码运算得到消息认证码值并与发送方的消息认证码值进行比较,如果相同则接收并进行AES解密得到明文。
[0052]为了验证卡片用户的合法性,本发明采用个人口令的方式来验证使用者的身份信息的,加密IC卡中对应有验证指令,验证指令的使用是通过验证用户输入的密码完整性来确定卡片用户的合法性。当个人口令完成输入后,如果密码正确,改变安全状态寄存器的值作为口令密钥的安全状态,并重新设置口令错误计数器;如果密码不正确,就将口令允许错误的次数减去I,但是如果输入错误密码次数超过允许的次数,则个人密码将被锁定,被锁定的密码只能通过解锁指令恢复。
[0053]验证个人口令的过程如下:首先卡片用户通过键盘输入个人口令,然后读卡器对其进行编码发给卡片,收到指令后就对数据域中的数据进行消息认证码验证并解密,如果将得到的个人密码与文件中存储的个人密码对比,结果一致的话则将安全状态设置为个人口令的安全状态并重置错误计数器,返回密码验证成功的代码。
[0054]读卡器对加密IC卡认证时,读卡器和加密IC卡通过内部授权指令来进行内部认证,读卡器内部产生随机数及存储的密钥可以进行数据认证。认证的过程是:首先加密IC卡中的密钥对需要认证的数据进行AES加密得到鉴别数据,然后将鉴别数据作为应答数据返回给读卡器进行AES解密并与鉴别数据进行比较验证。
[0055]通过卡片验证读卡器时,认证的过程是:读卡器先产生随机数,然后通过外部认证密钥进行加密,再按照外部命令编码格式发给加密IC卡,加密IC卡用相应密钥对数据解密并与存储的随机数对比,相同则认证通过,如果不同,则认证失败,返回错误代码。
[0056]密钥管理分为两个部分:一部分是由银行方面来负责密钥的产生和管理,另一部分是由学校方的密钥系统来产生和管理。
[0057]密钥管理体系中有专用密钥、管理密钥、共享密钥三种。加密IC卡生成专用密钥和共享密钥,存储于加密IC基础卡中,用来进行校园消费,加密IC卡还能生成用于其它交易的保护密钥。管理密钥可分为保护密钥和认证密钥,前者用于加密IC卡的加密保护,后者用于对读卡器认证。
[0058]在传送前将密钥划分到不同区域,在密钥被截取的情况下,依然可以通过该算法来找回密钥。密钥划分算法是将一个16字节的双长度的主密钥MK用来处理8字节长度的划分数据,从中推导出一个16字节双长度的子密钥DK。
[0059]子密钥DK的左边部分的推导为:使用主密钥MK对16位长度的划分数据进行AES加密运算;推导子密钥DK右半部分的过程是:先对16位长度的划分数据进行求反得到输入数据,然后用主密钥DK对输入数据进行AES加密运算。
[0060]在根密钥产生过程中,首先,由学校输入16位种子A和种子B,将种子A和B分别进行压缩并进行串联形成系统根密钥,并以明文划分导出密钥形式保存到IC卡密钥文件中,此卡即为密钥基础卡,其他所有卡片密钥均由此基础卡派生。为防止基础卡损坏,种子A和B也应做备份保存,以便重新生成基础卡。
[0061 ]本发明采用两级基础卡密钥体系,根密钥基础卡,再由根密钥基础卡派生出IC基础卡。
[0062]在写基础卡的同时写卡其认证卡,基础卡和基础卡认证卡在使用时均须输入口令,口令通过后,基础卡在经过认证卡认证后方可支持导出密钥功能。
[0063]IC卡出厂设置有根目录及一个卡片主控密钥,即卡片主控密钥,初始化过程只能在安全区域完成。初始化由IC基础卡提供密钥,流程如下:
[0064]I)认证IC卡初始主控密钥;
[0065]2)擦除根目录并重建,建立密钥文件,长度要能保存2个16字节密钥;
[0066]3)验证IC基础卡及认证卡口令,并用认证卡对基础卡进行认证;
[0067]4)将IC卡序列号导入基础卡,由基础卡明文划分导出该IC卡子控制密钥,密文划分方式导出该IC卡子保护密钥;
[0068]5)将IC卡子控制密钥以明文方式写入IC卡根目录下密钥文件中;
[0069]6)将IC卡子保护密钥以卡片子控制密钥做加密保护写入IC卡根目录下密钥文件中;
[0070]7)建立并写入根目录下各数据文件及应用目录。
[0071]IC卡写卡,连接加密器,密钥明文只能在加密器中出现,流程如下:
[0072]I)在卡片子保护密钥的保护下更新根目录下数据文件;
[0073]2)将卡序列号传给加密器,在加密器内部产生该IC卡片子控制密钥;
[0074]3)在所述应用目录下创建密钥文件,并在卡片子控制密钥的保护下将应用子控制密钥写入密钥文件;
[0075]4)在加密器内部产生该IC卡应用子保护密钥,并用应用子控制密钥加密传出;
[0076]5)在IC卡上将应用子保护密钥写入密钥文件;
[0077]6)在加密器内部用该IC卡应用子控制密钥对主密钥进行加密传出;
[0078]7)在IC卡上将主密钥写入密钥文件;
[0079]8)建立并写入应用目录下各数据文件。
[0080]综上所述,本发明提出了一种基于互联网的学生IC卡信息访问方法,在卡片功能性和安全性上有很大提升,保证了学生在校活动中便利性,提高了教育部门的工作效率和信息化水平。
[0081]显然,本领域的技术人员应该理解,上述的本发明的各单元或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0082]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【主权项】
1.一种基于互联网的学生IC卡信息访问方法,其特征在于,包括: 在加密IC卡的数据传输过程中,片上系统使用安全状态寄存器存储当前系统安全状态,并通过外部认证和验证口令改变安全状态,利用消息认证码确认数据的完整性并对发送方进行认证。2.根据权利要求1所述的方法,其特征在于,所述通过验证口令改变安全状态,进一步包括: 加密IC卡是通过验证用户输入的密码完整性来确定卡片用户的合法性;当个人口令完成输入后,如果密码正确,改变安全状态寄存器的值作为口令密钥的安全状态,并重新设置口令错误计数器;如果密码不正确,就将口令允许错误的次数减去I,但是如果输入错误密码次数超过允许的次数,则个人密码被锁定;在验证个人口令的过程中,首先卡片用户通过键盘输入个人口令,然后读卡器对其进行编码发给卡片,收到指令后就对数据域中的数据进行消息认证码验证并解密,如果将得到的个人密码与文件中存储的个人密码对比,结果一致,则将安全状态设置为个人口令的安全状态并重置错误计数器,返回密码验证成功的代码; 所述消息认证码是密钥和消息内容公开的函数,而且输出为定长的数据块,定义I为消息内容,K为密钥,M为生成消息认证码的算法,则消息认证码MAC=M( I,K); 通过以下两种方式进行报文安全传送: (1)发送方先对数据进行消息认证码运算得到4字节的消息认证码值,将其附加在数据的后面并传送给接收方,接收方收到后也对数据进行消息认证码运算得到消息认证码值,并与附在数据后面的消息认证码值进行比较,如果相同则接收数据; (2)发送数据前先对数据进行AES加密形成密文,然后对密文进行消息认证码运算得到消息认证码值,数据在接收后先对密文进行消息认证码运算得到消息认证码值并与发送方的消息认证码值进行比较,如果相同则接收并进行AES解密得到明文; 所述AES加密和解密过程进一步包括: 加密过程:Y=AES(KL) [AES—HKR) [AES(KL[X])]] 解密过程:X=AES-1 (KL) [AES(KR) [AES^(KL[Y])]] 其中AES ()表示AES算法的加密过程;AES—1 ()表示AES算法的解密过程;X代表明文,Y代表密文。3.根据权利要求2所述的方法,其特征在于,所述通过外部认证改变安全状态,进一步包括:读卡器先产生随机数,然后通过外部认证密钥进行加密,再按照外部命令编码格式发给加密IC卡,加密IC卡用相应密钥对数据解密并与存储的随机数对比,相同则认证通过,如果不同,则认证失败,返回错误代码。
【文档编号】H04L9/32GK105897426SQ201610196605
【公开日】2016年8月24日
【申请日】2016年3月31日
【发明人】刘林
【申请人】成都银事达信息技术有限公司