《2022年CPU卡知识入门教程 .pdf》由会员分享,可在线阅读,更多相关《2022年CPU卡知识入门教程 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、CPU卡知识入门教程绪言:说起 CPU卡,人们肯定不禁要问,什么是CPU卡, CPU卡长什么样的呢?想起卡, 一般人接触最多的是银行卡,相信现在大家每个人的钱包里都有好几张磁卡。比如说:有工商行、建行的储蓄卡。但我们所说的CPU卡,是卡上面有个芯片的卡,现实生活中接触最多的应该是IC 卡电话卡、买电的卡。但以上的卡都不是CPU卡,长得和电话卡、买电的卡一样。但卡的芯片里有CPU ,我们手机里用的 SIM卡就是 CPU卡的一种。我们可以把CPU卡想象成一个极小的个人计算机,但这个计算机没有显示器,没有电源, 没有输入设备。要使用CPU卡的时候,必须由外部提供电源、显示屏和输入设备。比如说现在我要
2、往手机的SIM卡内存入一个电话号码. 1、我的手机必须有电提供电源2、我的手机必须有提供输入电话号码的手机按键提供输入3、我的手机必须能有显示电话号码的显示屏提供显示以上我们对CPU卡有了大概的了解,有可能比喻不是很恰当。第一章我们为什么要使用CPU卡呢?先谈谈银行磁卡的不安全性,经常去ATM取钱的必须注意如下事项:1、输入密码的时候必须防止被别人看到,最好能用手遮着。2、取完钱一定要取走打印的单据,或者不打印单据也行。看看犯罪分子怎样窃取你卡片里头的钱:1、在你取钱的时候凑在你旁边,偷偷得记下你的密码,或者在很远的地方用望远镜窥视你的密码。2、你取完钱走后,有可能安全意识不高,没有取走打印的
3、单据,犯罪分子就乘机取走单据,取走单据的目的是为了知道你的卡号。有了上面两点 , 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 首先: 犯罪分子先复制一张和你的银行卡一摸一样的银行卡。并且复制的成本非常低,只要有一台 PC ,一个磁卡写卡器(价格很便宜),一个小软件。其次:犯罪分子又已经有了你的密码。这样,犯罪分子就可以拿着你的卡去潇洒地消费、取钱了,而你却还蒙在鼓里。直到某一天,当你发现你的卡里的钱突然变少了,或者没了,但
4、一切为时已晚。为什么会出现这种情况呢?那就是磁卡太容易就可以被复制。那我们必须去寻找一种不能被复制的卡,什么卡呢?这就是 CPU卡。而 CPU卡又属于 IC 卡的一种。什么是 IC 卡呢? IC 卡分为几种呢?IC 卡是英文 集成电路卡 的缩写 , 是近年来传入中国的一项新技术。它是把具有存储、运算等功能的集成电路芯片压制在塑料片上,使其成为能存储、转载、传递、处理数据的载体。IC 卡从其功能上分为三种:1) 存储器卡。2) 带加密逻辑存储器卡:内有COS (卡操作系统)的一种存储器卡。3) CPU 智能卡:内有CPU (中央处理单元)的一种存储器卡。以上三种卡只有CPU卡被证实是最安全的。第
5、二章CPU卡在实际情况中是怎么使用的呢?CPU卡使用的简单情况举例:(如图)硬件:一台 PC 一个读卡器一张CPU卡读卡器和PC是通过串口进行通讯,这种做法比较常见。软件:一个在 PC上运行能读写CPU卡的小程序( 一般读卡器提供商都会提供开发CPU卡的函数接口和读写CPU卡的小工具 ) 对 CPU卡的操作的流程是怎样的呢?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 1、PC上的 CPU卡读写程序向PC的串口(比如说串口1
6、)发指令2、读卡器和串口1 是连在一起的,串口的指令传到读卡器3、读卡器又把指令传给CPU卡4、CPU卡内部执行指令,返回消息那指令的格式又是什么样的呢?我们可以举这么一个例子:用过 DOS的人都知道:CD C: 这个指令表示进入C盘根目录相应的 CPU卡有这么一个指令:SELECT MF 这个指令表示进入卡片的根目录,但由于CPU卡的操作系统比较简单,它处理不了这种纯粹字符的东西,向卡片指令的时候必须把指令转换成十六进制的格式:转换成卡片的指令格式是:00 A4 00 00 02 3F 00 每个字符的具体规定在ISO7816-4 中有具体的规定。大家有兴趣的话可以去查具体的标准,以下是比较
7、枯燥的IC 卡的国际标准:1、物理特性符合 ISO7816: 1987 中规定的各类识别卡的物理特性和ISO7813 中规定的金融交易卡的全部尺寸要求,此外还应符合国际标准ISO7816 1 : 1987 规定的附加特性、 机械强度和静电测试方法。2触点尺寸与位置。应符合国际标准ISO78162:1988 中的规定。3电信号与传输协议。 IC 卡与接口设备之间电源及信息交换应符合ISOIEC7816 3 :1989 的规定。4行业间交换用命令。有相应的国际标准ISOIEC78164:1994。但该版本尚未正式通过。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
8、 - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 5应用标识符的编号系统和注册过程应符合国际标准ISOIEC7816 5 :1994 中的规定。感应式智能卡的国际标准有: ISOIEC10536-1:1992、ISOIEC10536-2:1995、ISOIECDIS10536-3:1995、ISO14443-2 等。此主题相关图片如下:第三章多应用究竟是什么呢?对于 CPU卡,人们经常关注的是CPU卡的多应用,也就是说一张CPU卡上可以有多个应用,多应用的安全相互隔离,那么多应用究竟是什么呢?我们可以把卡片
9、想象成一栋县政府办公大楼,比如说:一楼:属于民政部门二楼:属于教育部门三楼:属于交通部门. 各个部门独立办公,互不干涉,在行政上他们并没有从属关系。从而达到了多应用并存。民政部门智能办理民政部门的事情,教育部门只能办教育部门的事情。从而达到了多应用的安全相互隔离。一、多应用并存于一张卡片上多应用共存在卡片上是怎么达到的呢?通过创建多个ADF(即创建多个目录) 达到。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 每个 ADF代
10、表一个应用。每个ADF下有相应的文件,相应的文件中存放相应的数据。二、多应用之间的安全相互隔离多应用之间的安全相互隔离是怎么达到的呢?通过卡片内部的安全机制来实现。第四章 CPU卡的文件结构1 CPU卡作为信息的载体,在卡片里必须能存储信息,比如说,存放一个人的身份信息在CPU卡上(包括姓名、年龄、工作单位、职务、电话等),这些具体的信息在CPU卡中是怎么存放的呢?请听我细细道来。在这个时候,我们可以把CPU卡想象为一张软盘,只不过软盘的容量比CPU卡大得多,我们现在软盘的容量一般为1.4M 字节,而我们现在常用的CPU卡的容量仅仅为8K或者 16K字节,远远比软盘的容量小。当然了,容量越大的
11、CPU卡价格越贵。请看下面例子假设我们把以上所说的一个人的身份信息存放在pm.txt中。pm.txt在一张软盘中的存放方式方式一: A:pm.txt 方式二: A:adf1pm.txt 方式三: A:ddf1adf1pm.txt 以上是信息在软盘中的存放方式。大家请看ISO7816-4 规定的 CPU卡内逻辑文件组织结构的举例,见下图: 大家可以看到最多只有三层目录。这是由于实际应用中只要有三层目录就够了。所以现在的CPU卡一般都是最多只支持三层目录的,有的国外的卡只支持两层目录( 实际上两层目录一般时候也够用) 。请看下面例子 ( 可以对比软盘的方式看) 假设我们把以上所说的一个人的身份信息
12、存放在EF1中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 方式 1: MF 方式 2:MF 方式 3:MF EF1 ADF1 DDF1 EF1 ADF1 EF1 由于 CPU卡的文件操作系统远比DOS或者 WINDOWS 操作系统简单,说句不好听的话, 可以说是“小巫见大巫”。不过这可以理解, 毕竟在这么小的一个芯片上暂时不能实现象DOS 或者WINDOWS 那样强大的操作系统。所以对文件的规定,对文件的创建、文件的操作
13、比较麻烦。不同之处在于:1、CPU卡创建一个文件时必须先声明创建的文件的类型以及创建文件的空间大小。在软盘或者硬盘上则可以不指定文件长度。2、CPU卡创建完一个文件后不可以删除。(测试发卡的时候可以例外,但删除的是MF ,即删除卡片中的所有文件和目录)3、CPU卡文件类型只有很少几种,没有后缀名。4、CPU卡创建文件、写文件必须通过向卡片发送APDU 报文的方式进行,并且每次写的字节数不能超过256 字节,比较麻烦。此主题相关图片如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
14、6 页,共 14 页 - - - - - - - - - 第五章CPU卡的文件结构2CPU卡入门教程6-CPU 卡的文件结构2 【CPU卡的文件类型】 MF(Master File): 根目录,是卡片文件系统的根,相当于DOS 的根目录,每张卡有且只有一个MF文件。不同卡片厂商的MF的创建方式是不同的。主要有两种方式:1、在卡片个人化过程中由发卡方创建。如明华、德生卡片2、厂商提供卡片的时候已经创建,发卡方不能再创建。如握奇卡片DF(Dedicated File):DF相当于 DOS 的子目录。DDF和 ADF :我们把包含下级目录的DF称之为 DDF ,不包含下级目录的称之为ADF 。注意:
15、 DDF下可以有ADF , ADF下不能再有ADF 。 一、透明文件:基本文件存储了各种应用的数据和管理信息,它存在于MF和 DF下。文件数据是通过连续空间中的字节地址进行存取。比如上节中说的个人身份信息就可以存放在透明文件中。二、记录文件:数据是以记录的方式存放在文件中的。记录文件分为以下几种:1、线性定长记录文件:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 一个文件中有n 条记录,每条记录的长度都是固定且相等的。2、线
16、性变长记录文件:文件中的每个记录的长度是可变的。但一旦写完后,进行更新的时候,更新的记录长度必须和原来的记录长度相同。变长记录的TLV格式如下:T=TAG:标识L=LENTGTH: 长度V=value :值3、循环定长记录文件:一个文件中所有记录是等长度的,对文件中的记录循环进行读取。在逻辑上,这类文件可看作一个环形记录队列,记录按照先进先出的原则存储。添加记录时,最新一次写入的记录的记录号为1,上一次写入的记录的记录号为2,依次类推,滚动写入。三、交易文件这一类的文件为特定格式的文件,通过具体的交易指令对这类文件进行操作。如:1、电子存折文件2、电子钱包文件 此类文件是和安全有关的文件,所以
17、对文件的访问控制就特别严格,对文件只能进行写入,文件是不可读的。文件内存放有关卡片安全的密钥和口令。但或许大家有疑问,文件要是不可读,那这文件还有什么用呢?在实际中它是这么被使用的,比如说我们要使用某个密钥,在卡片中每个密钥都有编号,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 我们在使用中通过指定卡片的密钥号(即:我们使用的是第几号密钥)来使用密钥。比如说我们使用口令,我们通过向卡片送入口令来进行使用口令。而具体的比对口令
18、和用密钥的计算是在卡片的内部进行了。所以这种措施保证了卡片的密钥和口令的安全。第六章对 CPU卡中文件的操作我们有什么办法可以对文件操作呢?比如我们要对个人基本信息文件pm.txt进行操作,在DOS 下我们可以用EDIT pm.txt进行编辑,在 WINDOWS下我们可以双击pm.txt ,用文本编辑器打开文件。但在 CPU卡中,我们怎么对一个文件( 比如说 EF1)进行操作呢?比如说我们要打一个人,我们必须先找到那个将要倒霉被打的人。同样,我们要对一个文件操作,首先,我们必须先找到要操作的那个文件。那我们怎们找到CPU卡中的文件呢?我们查找某人,可以查找他( 她)的身份证号来找到他,CPU中
19、卡的每个文件是否也有他们的身份证号呢?有的:那就是文件标识,CPU卡中的文件通过文件标识表标记一个文件。找一个人,还可以通过他( 她) 的名字来查找,找CPU卡中的文件呢?很遗憾,对 MF和 DF有关目录的文件有它们的文件名,其它文件则没有文件名。 文件标识符是文件的标识代码,用 2 个字节表示, 为什么只有2 个字节呢?因为2 个字节足矣, 2 个字节FFFF=65535 。在选择文件时只要找出该文件的标识,就可以找到该文件。同一目录下的文件标识符是唯一的。MF的文件标识符为3F00,文件名自定义,符合银行规范名称应该是1PAY.SYS.DDF01 ,名师资料总结 - - -精品资料欢迎下载
20、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - 当然了,社保的卡规定的就不是这个名字了。所有文件可以通过文件标识符用SELECT 命令进行选择, 目录文件 DF可以通过目录名称进行选择。短文件标识符:由于对 CPU卡文件的操作要求节省空间并且方便操作。于是好像便出现了短文件标识符这个东东。所谓短文件标识符,在字面上的意思就是比文件标识符短。好像实际上也是这样。大家看看,短文件标识符只用1个字节来表示,并且只用1 个字节低五位来表示。同一个目录下的文件短标识符必须是唯
21、一的。短文件标识符可以通过Read Binary 、Update Binary命令的参数P1来实现文件的选择: 若 P1的高三位为100,则低 5 位为短文件标识符。例如: 若 P1为 81H,即 10000001,其中高三位为100,则所选的文件标识符为00001,十六进制文件标识表示为00 01 。短文件标识符选择还可以通过Read Record 、 Update Record命令参数 P2来实现文件的选择,方法是若P2的高五位不全为0,低五位为100,则高五位为短文件标识符。对于命令Append Record 低五位为000 来表短文件标识符。短文件标识符选择只能用五位来决定文件标识符,
22、所以可选择的最大文件标识为31,若文件需要短文件标识符进行选择,则建立文件时就需将文件标识符取在1-31 之间。 上一节中规定了那么多种文件,那么,究竟该怎么对那些文件进行访问呢?MF :在 CPU卡被复位后自动被选择,在任何一级子目录下可通过文件标识3F00 或其文件名来选择 MF DF 通过文件名或文件标识符来选择DF,在 MF下可以选择任意DF。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 如果当前文件是一个DF下的
23、一个EF,同样可以通过选择DF的文件标识符或文件名来选择任意 DF。二进制文件 : 在满足读条件时可使用Read Binary读取,在满足写条件时可用Update Binary来更改二进制文件的内容。定长记录文件 : 在满足读条件时可使用Read Record 读取, 在满足写条件时, 若记录未满则用Append Record增加新记录,若记录已满则用Update Record来更改指定记录的内容。循环定长记录文件: 在满足读条件时可使用Read Record 读取,在满足追加条件时可使用Append Record 在文件末尾追加一个记录,当记录写满后自动覆盖最早写的记录,最后一次写入的记录,
24、其记录号总是1,上次写入的记录号是2,依次类推。变长记录文件在满足读条件时可使用Read Record 读出记录,在满足写条件时若记录未满则用Append Record 增加新记录,若记录已满则用Update Record来更改指定记录的内容。变长记录文件的格式为TLV格式,Tag 为 1 字节的记录标识,L 为 1 字节的记录数据长度,V为 L 字节的数据值。在执行Update Record更改已存在的记录时,新写的整条记录长度必须和原来的整个记录长度相等,否则将返回错误。cpu 卡入门教程8安全篇 原创 问题的引出:假如说你现在手中有6 份重要文件1、房契2、银行存折3、毕业证书名师资料总
25、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 4、户口本5、某某人欠你的100 万块钱的欠条( 呵呵,假装你有这么多钱,你是百万富翁并且很慷慨,一个好人 ) 6、结婚证 ( 这个好像已婚人士才有) 这些对我们来说都是比较重要的东东,一定要妥善的安全的保存啊!你可以这么保存:方法 1:把这些文件锁在六个保险柜里,一个柜子放一个文件方法 2:把六个文件全部锁在一个保险柜里方法 3:把六个文件锁在n 个保险柜里 , 这个 n 比 6 小又
26、比 1 大方法 4:把文件放在一个小保险柜里,把小保险柜放进大保险柜里,或者你觉得很好玩的话,再把大保险柜放进大大保险柜里,如此一个保险柜再套另一个保险柜,只要你有钱、 只要你还想套、我不反对。( 另:至于买什么牌子的保险柜、价钱多少的保险柜,不在本文章的研究之中,有兴趣者可以和我私下讨论。我的电话是:139-123456789 电话开机时间:凌晨3 点到 4 点 ) 在 CPU卡中的文件的存放也会存在这些问题,比如说你有6 个文件, 你想存放在CPU卡的某个应用中。考虑到安全问题,CPU卡的文件安全及访问机制是由通过认证来实现的( 如认证密钥、认证PIN,想进一步了解可以参考我写的文章:内、
27、外部认证深入剖析:我们现在以认证是通过密钥的认证来说明:方法 1:6 个文件用6 个密钥来保护,每个文件对应一个密钥方法 2:6 个文件只用一个密钥来保护方法 3:6 个文件进行归类,用n 个密钥保护,这个n 比 6 小又比 1 大方法 4:文件用密钥套密钥保护。比如说文件1 用密钥 1 保护、密钥 1 的使用又必须通过密钥2 的认证。 或者下面还更复杂密钥 2 的使用必须通过密钥3 的认证。你可以把密钥想象成保险柜的钥匙,小保险柜的钥匙必须在大保险柜的控制下使用。( 意思就是:小保险柜的钥匙必须在大保险柜的钥匙打开了大保险柜之后才能起作用,这话好像有些拗口,跟绕口令试的,呵呵 ) 其实一般的
28、保险柜都要密码的,也就是说保险柜的钥匙要和密码配套使用,两者缺一不可,好像看起来这样做会更保险一点, 事实上也是。 至于是先开钥匙后输入密码还是先输入密码再开钥匙,这主要看保险柜的设计。在 CPU卡中可以实现,CPU卡可以用用户密码加上卡上密钥的方法实现。可以设计成两种模式:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 方式 1、在密钥认证成功后,密码才可以使用。方式 2、在密码的验证成功后,密钥才可以被使用。这必须按顺序
29、来,如方式一,你要是想先验证密码,对不起,卡片会给你一个提示:安全状态不满足。这时候,你必须做的工作是,现对密钥进行认证,密钥认证成功后,再验证密码就不会提示安全状态不满足了。以上机制好像听起来比较复杂,但其实也并不复杂。( 谈何容易,或许你会这么说) 在卡片中,现在比较流行的并且实现起来也挺简单的的方法:状态机机制一个 CPU卡文件的安全认证设计,涉及到3 方面的状态:1、系统当前的安全状态2、对文件操作必须满足的状态3、密钥的状态我们再以保险柜为例:比如说我们想查看保险柜的那张100 万欠条的内容。1、对应的系统的当前状态:保险柜关闭状态2、对文件操作必须满足状态:保险柜打开状态怎么使系统
30、的当前状态:保险柜关闭状态变成对文件操作必须满足状态:保险柜打开状态呢?我们使用保险柜的钥匙来打开保险柜。3、使用钥匙后的后续状态:保险柜打开状态这样我们实现了对文件的操作。在 CPU卡中,状态可以用一个数字来表示:比如说0 我们定义:1、系统缺省的当前安全状态:0 2、对文件操作必须满足的状态:6 3、密钥的后续状态:6 步骤:1、直接对文件进行操作,文件比较“系统的缺省状态:0” 不等于“对文件操作必须满足的状态: 6”提示,安全状态不满足。2、我们对密钥进行认证,认证通过后,把“密钥的后续状态:6”赋值“系统缺省的当前安全状态”这样“系统的缺省状态6”3、下面我们再对文件进行操作,文件比
31、较“系统的当前状态:6” 等于“对文件操作必须满足的状态: 6,可以对文件进行操作安全状态的表示:实际使用中一般用1 个字节 (16 进制 ) 来表示状态,低 4 位表示安全级别下限(0-15) ,高 4 位表示安全级别上限(0-15) 假设一字节的值为:XY (0=X =F) (0= Y Y ( 如: 10, 32 , 85 等) ,表示这个文件被禁止访问3、如果 X=Y ( 如: 13,11,33,38) ,表示对文件进行访问前,必须满足文件的访问权限。比如说文件的访问权限是:13,现在的权限必须是1、 2 或者是 3 才可以访问文件比如说文件的访问权限是:38,现在的权限必须是3 到 8 的值才可以访问文件比如说文件的访问权限是:33,现在的权限必须是3 才可以访问文件系统一般都会规定一个缺省的权限:比如说0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -