信息安全综合实验智能卡4.docx

上传人:b****6 文档编号:8619836 上传时间:2023-02-01 格式:DOCX 页数:54 大小:484.03KB
下载 相关 举报
信息安全综合实验智能卡4.docx_第1页
第1页 / 共54页
信息安全综合实验智能卡4.docx_第2页
第2页 / 共54页
信息安全综合实验智能卡4.docx_第3页
第3页 / 共54页
信息安全综合实验智能卡4.docx_第4页
第4页 / 共54页
信息安全综合实验智能卡4.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

信息安全综合实验智能卡4.docx

《信息安全综合实验智能卡4.docx》由会员分享,可在线阅读,更多相关《信息安全综合实验智能卡4.docx(54页珍藏版)》请在冰豆网上搜索。

信息安全综合实验智能卡4.docx

信息安全综合实验智能卡4

第五章智能卡实验

本实验配合智能卡原理与技术课程进行。

5.1实验目的

本实验的目的主要虽如下四点:

1.熟悉接触式和非接触式智能卡的应用环境和应用方式。

2.掌握智能卡的基本物理结构和逻辑结构。

3.了解智能卡的应用编程。

4.了解智能卡操作系统的基本结构和编程。

5.2实验设备与准备

在进行实验之前需要如下设备和环境:

1.标准接触式智能卡读写器设备和射频卡读写器设备各一套及相关驱动。

2.带九针RS232串行接口及USB串行接口计算机一台。

3.带支持ISO-7816-4的命令的操作系统的CPU卡、射频M1型卡、存储器卡各一张。

4.VC编程环境。

5.3预备知识

5.3.1智能卡简介

智能卡的名称来源于英文名词“Smartcard”,又称集成电路卡,即IC卡(IntegratedCircuitcard)。

它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似。

它以其超小的体积、先进的集成电路芯片技术以及特殊的保密措施和无法被译及仿造的特点受到普遍欢迎。

IC卡芯片具有写入数据和存储数据的能力,IC卡存储器中的内容根据需要可以有条件地供外部读取和供内部信息处理和判定之用。

我们曾经了解过一些使用密码学的身份认证系统如Kerberos,SNP,SSH等,而这些系统都是架构在密码学的基础下成型的:

然而除了采用密码学的方式做为身份认证机制外,当然我们也可以用其它的方法做为身份认证之用。

这些其它的方法例如传统式的身份证件,或是磁卡,而有些系统还可以用來辨識人体的指纹,声纹或是视网膜。

而智能卡是目前被看好的一种新一代的身份认证系统。

根据卡中所镶嵌的集成电路的不同IC卡可以分成以下三类:

 

存储器卡:

卡中的集成电路为EEPROM(可用电擦除的可编程只读存储器)。

逻辑加密卡:

卡中的集成电路具有加密逻辑和ZEPROM。

 

CPU卡:

卡中的集成电路包括中央处理器CPU、EEPROM、随机存储器RAM以及固化在只读存储器ROM中的片内操作系统COS(ChiPOperatingSystem)。

严格地讲,只有CPU卡才是真正的智能卡。

按卡与外界数据传送的形式来分,有接触型IC卡和非接触型IC卡两种。

当前使用广泛的是接触型IC卡,在这种卡片上,IC芯片有8个触点可与外界接触。

非接触型IC卡集成电路不向外引出触点,因此它除了包含前述三种IC卡的电路外,还带有射频收发电路及其相关电路,读写器对卡的读写为非接触式,因而称这种IC卡为非接触式或者感应式IC卡(RF射频卡)。

IC卡在使用中,有一些参数在卡型选择时是需要认真考虑的。

例如:

(1)如果IC卡的使用环境低于0℃时,最好不要选用CPU卡,因CPU卡的工作温度在0℃时以上.而MemoryCard可以工作在-20℃的低温下工作。

(2)IC卡是有工作电压指标的,西门子公司的IC卡一般工作电压在4.75V~5.25V之间.ATMEL公司的IC卡工作电压约在2.7V~5.5V之间。

 

(3)IC卡的寿命是对IC卡的擦写次数决定。

(4)IC卡读写器的使用寿命主要由两个因素决定:

读写器本身器件的选择和卡座的寿命;卡座的寿命分别有10万次,20万次和50万次。

(5)读写器对IC卡的上电操作,仅在接到软件发出的指令以后才能进行,并且,在IC卡没有插入的情况下,应给出上电出错的返回代码。

(6)读写器应用中最重要的问题是通信和系统的可靠性问题。

5.3.2存储器卡预备知识

存储器卡中的集成电路为EEPROM(可用电擦除的可编程只读存储器)。

这种卡的生产厂商最多,下面就常用的ATMEL公司的AT24C系列和INFINEON公司的44系列给出介绍。

5.3.2.1AT24C系列

AT24C01A/02/04/08/16/64系列IC卡为ATMEL存储卡,是一种不具备加密功能的EEPROM卡,AT24C为系列号,数字部分为K位容量,分别为1K、2K、4K、8k、16K、32K、64K位。

它的使用方法与EEPROM完全相同,存储结构简单,只有读写两种操作功能,主要用于存放一些保密性要求不高的数据。

该系列卡可循环擦写1,000,000次,数据保存期为100年,使用的温度范围从-250C到700C。

该系列的卡结构单一,无分区,只有读、写操作

    AT24C系列的工作频率为lMHz(5V),lMHz(2.7V),400KHz(1.8V);工作电压为5V士l0%,根据要求最低可至1.8V;Icc电流读最大为lmA,写最大为3mA:

写/擦除次数为l00万次;数据保持lO0年;工作温度为O-70℃,根据要求可超过指定工作温度;通讯协议符合ISO/IEC7816-3同步协议,双向串行接口。

AT24C系列的存储结构如下图所示:

 

  

图5-1

   AT24C系列型号的后两位数字为该型号的最大K位数(1K=1024),8位为1字节,最大字节存储容量的算法为K位数×l024÷8。

如:

AT24C01A的最大存储容量的1×1024÷8=128,其字节地址空间为O—127(16进制为0x00—0x7F)。

   下面的伪码程序在AT24C系列卡的ADDR地址开始写LEN个字节,并且读出校对。

     Open(AT24Cxxx)

     Write(ADDR,LEN,WDATA)

     RDATA=Read(ADDR,LEN)

     Close()

     IFWDATA=RDATATHEN写成功ELSE写失败。

   下面的伪码程序在AT24C系列卡的ADDR地址开始读LEN个字节。

     Open(AT24Cxxx)

     RDATA=Read(ADDR,LEN)

     Close()

5.3.2.2SLE4404卡

SLE4404卡为416位加密卡,存在读数据、写数据、密码及熔断操作。

其性能如下:

⏹416位容量

⏹208位应用区

⏹整区擦除

⏹温度范围:

-35℃~80℃

⏹至少10,000次循环擦写

⏹至少10年数据保存期

⏹触点结构和串行接口符合ISO7816同步协议

⏹SLE4404卡的保密特性主要是由用户密码、擦除密码及熔断操作来决定的,熔丝熔断前和熔断后的保密特性有所不同,现说明如下(以下的写表示置‘0’,擦表示置‘1’,编程操作时必须先擦后写):

(1)存储区名称:

厂商代码

字节地址:

0~1

字节长度:

2

熔断前特性:

出厂时已固化,只能读,不能更改

熔断后特性:

同熔丝前

(2)存储区名称:

发行商代码

字节地址:

2~7

字节长度:

6

熔断前特性:

用户密码核对正确后,可反复擦写

熔断后特性:

固化,不可更改

(3)存储区名称:

用户密码

字节地址:

8~9

字节长度:

2

熔断前特性:

用户密码核对正确后,可读,可更改

熔断后特性:

核对正确后不可读,但可更改

(4)存储区名称:

密码错误计数器

字节地址:

10

字节长度:

1

熔断前特性:

初始值为4,用户密码核对出错1次减1,连续4次出错,则卡片自动锁死,若其中有一次正确,则计数器恢复为初始值

熔断后特性:

同熔丝前

(5)存储区名称:

备注区

字节地址:

11~13

字节长度:

3

熔断前特性:

用户密码核对正确后,可读,可擦,可写,用户可在其中标注信息

熔断后特性:

同熔丝前

(6)存储区名称:

应用区

(首字节的第1位为写属性控制位,第2位为读属性控制位)

字节地址:

14~39

字节长度:

26

熔断前特性:

读:

当RD置为‘1’时,任何情况下可读;

当RD置为‘0’时,用户密码核对正确后,可读;

写:

用户密码核对正确后,可写;

擦:

用户密码核对正确后,且擦除密码核对正确,则整区擦除

熔断后特性:

读:

特性同熔丝前;

写:

当PR置为‘1’,用户密码校对正确后,可写;

当PR置为‘0’,任何情况下不可写;

擦:

同熔丝前

(7)存储区名称:

擦除密码

字节地址:

40~43

字节长度:

4

熔断前特性:

用户密码核对正确后,可读,可更改

熔断后特性:

任何情况下不可读,不可更改

(8)存储区名称:

擦除计数器

字节地址:

44~51

字节长度:

8

熔断前特性:

不起作用

熔断后特性:

每校验一次擦除密码,不论对错,擦除计数器减1,应用区共可擦64次

5.3.3CPU卡预备知识

5.3.3.1COS简介

作为敏感数据和密钥信息的安全存储介质,智能卡的安全性除了芯片本身外,还取决于卡内的芯片操作系统或者称智能卡操作系统,即COS。

CPU卡内的资源较多,除了CPU之外,往往还有串行通信电路、存储器、随机数发生器、密码运算模块等,这些都需要COS来进行管理。

从功能上来说,智能卡操作系统主要用于控制数据传输,内存管理和信息处理。

在命令处理时,COS检查各项参数是否正确,以及安全条件是否满足,在此基础上执行相应的操作和数据处理,以实现对文件的访问。

5.3.3.2COS的工作流程和命令处理

COS工作流程可以通过命令处理的过程来详细说明。

命令处理的过程如下图。

 

图5-2COS命令处理的过程

命令管理是智能卡操作系统的主要内容。

其基本过程是:

终端设备向IC卡发送命令,IC卡则根据执行情况返回应答。

命令与应答结构有四种情形。

情形一:

命令格式:

CLA

INS

P1

P2

00

应答格式:

SW1

SW2

情形二:

命令格式:

CLA

INS

P1

P2

Lc

Data

应答格式:

SW1

SW2

情形三:

命令格式:

CLA

INS

P1

P2

Le

应答格式:

Data

SW1

SW2

情形四:

命令格式:

CLA

INS

P1

P2

Lc

Data

Le

应答格式:

Data

SW1

SW2

其中,CLA表示指令的类别,INS表示指令的指令码,P1、P2表示命令的参数,Lc表示数据域DATA的长度,DATA表示命令报文数据域或应答报文数据域,Le表示要求返回数据的长度,Le为00表示返回卡中最大数据长度。

而SW1、SW2卡执行命令的返回代码(状态码)。

每条命令的应答至少由两个字节的状态码组成。

状态码说明命令被处理的情况。

命令返回码的意义见下表。

表5-1命令返回码的意义

序号

SW1SW2

意义

1

9000

命令正确执行

2

61XX

SW2指出仍可得到的应答字节数

3

6200

非易失性存贮器状态未变,命令处理完成但未必正确

4

6281

部分返回数据可能是错的

5

6282

命令处理完成,但在达到Le字节之前,文件或记录已结束

6

6283

选择文件无效,文件或密钥校验错误

7

6284

FCI格式不遵循ISO标准

8

6300

非易失性存贮器状态已变,命令处理完成但未必正确

9

6381

上次写入时,文件已充满

10

63CX

X表示还可再试次数

11

6400

非易失性存贮器状态未变,命令处理夭折

12

6500

非易失性存贮器状态已变,命令处理夭折,无其它信息

13

6581

存贮器失效,非易失性存贮器状态已变,命令处理夭折

14

6700

错误的长度

15

6800

不支持CLA的功能,不给出信息

16

6881

不支持的逻辑通道

18

6882

不支持的安全报文

19

6900

不允许的命令,不给出信息

20

6901

无效的状态

21

6981

命令与文件结构不相容

22

6982

不满足安全状态

23

6983

密钥被锁死

24

6984

参考数据无效

25

6985

使用条件不满足

26

6986

当前文件不是EF或无当前文件

27

6987

安全报文未得到

28

6988

安全报文不正确

29

6A80

数据域参数错误

30

6A81

功能不支持或卡中无MF或卡片已锁定

31

6A82

文件未找到

32

6A83

记录未找到

33

6A84

文件无足够空间

34

6A85

Lc与TLV结构不一致

35

6A86

参数P1P2错误

36

6A87

Lc与P1P2不一致

37

6A88

引用数据未找到(密钥未找到)

38

6B00

命令夭折,在达到Le字节之间文件结束;偏移量错误

39

6D00

指令码错误

40

6E00

错误的CLA

41

6F00

数据无效

42

9302

银行MAC错误

43

9303

应用已被锁定

44

9401

金额不足

45

9403

密钥未找到(用于银行专用命令)

46

9406

所需的MAC不可用

5.3.3.3COS的传输管理

传输管理器主要是根据卡所使用的通信协议来进行数据收发。

常用的通信协议有T=0和T=1。

IC卡插入读写设备并正确接触后,触点激活,读写设备对IC卡上电。

IC卡发出复位应答,给出后继字符解码方式、检验方式、通信协议等请求。

IC卡和读写设备建立起通信联系后,读写设备向卡发送数据,依据双方约定的通信协议,IC卡对由读写设备发出的命令进行接收。

同时,把对命令的响应按照传通信议的格式发送出去。

IC卡在对命令进行接收的同时,也要对命令接收的正确性作出判断。

这种判断只是针对在传输过程中可能产生的错误预言的,并不涉及命令的具体内容。

当发现检验错误,立刻向读写设备报告,并且请求重发原数据。

如果传IC卡认为对命令的接收是正确的,那么,它一般是只将接收到的命令的信息部分传到下—功能模块,而滤掉诸如起始位、停止位之类的附加信息。

相应地,当IC卡在向读写设备发送应答的时候,则应该对每个传送单位加上信息交换协议中所规定的各种必要的附属信息。

T=1协议的传输基本组成如下:

开始字段信息字段结尾字段

NADPCBLENINFEDC

其中,NAD长1字节,PCB长1字节,LEN长1字节,INF长0~254字节,EDC长1字节;LEN表示INF的数据长度,EDC为开始字段和信息字段的出错校验码。

5.3.3.4COS的安全管理

当完整的命令信息传到安全管理模块后,COS根据命令的需要来实现卡和终端机之间的相互认证、文件访问权限控制、数据的加密和解密等安全保密功能。

5.3.3.5COS的应用管理和文件管理

应用管理则对卡接收到命令的可执行性进行判断。

COS主要提供了两种对命令可执行性的判断方式。

顺序判断:

即命令只有满足某一系列条件才能进行下一步操作。

另一种是权限判断:

即只有满足某一安全属性才能对文件进行操作。

文件即数据单元或卡中记录的有组织的集合。

COS的整个文件系统按树形结构组织(如下图)。

COS给每一个应用建立一个相关的文件以实现对各个应用的存储和管理。

每个应用下都可有各种基本文件。

利用选择文件命令或其它命令中所指明的短文件标识符可以选择某个文件,并且在以后对该文件进行操作。

图5-3COS的文件组织

文件标识符是文件的标识代码,用2个字节来表示,在选择文件时只要指出该文件的标识代码,COS就可以找到相应文件,同一父文件下的子文件标识符必须是唯一的,MF的文件标识符是3F00。

所有文件都可以通过文件标识符用SELECTFILE命令进行文件选择,MF和DF还可以通过文件名称在任意位置进行选择。

在智能卡操作系统中,文件系统是仅次于安全系统的重要部分,因为它是卡中所有用户数据和程序,或者说所有应用的载体。

根据ISO7816-4,COS支持的基本文件类型包括主文件MF(MasterFile)、专用文件DF(DedicatedFile)和基本文件EF(ElementaryFile)。

(1)主文件MF

主文件MF在IC卡中唯一,且必须存在。

MF是卡片文件系统的根,在MF下可以有多个专用文件DF和基本文件EF,IC卡复位后,卡片自动选择MF文件为当前文件。

MF下可有一个内部保密文件ISF,它是一个TLV格式的线性变长文件。

MF下还可有一应用列表文件,它是一个TLV格式的线性变长文件,它包含有卡片支持的应用目录。

MF的大小由用户在创建的时候指定,且仅受可用空间限制。

在创建的时候同时指定MF的ISF文件的大小以及创建DF、创建EF和创建KEY记录的访问控制权限。

MF在卡片复位后自动被选择,此外在任何文件下均可通过文件标识符3F00或文件名称1PAY.SYS.DF01来选择MF。

在创建文件后,MF不能自动被选择,需要执行选择文件命令。

(2)专用文件DF

一个DF则代表一个应用。

每一DF下可以存放多个EF。

任何一个DF在物理上和逻辑上都保持独立,都有自己的安全机制和应用数据,可以通过应用选择实现对其逻辑结构的访问。

专用文件DF下可有一个内部保密文件ISF,它是一个TLV格式的线性变长文件。

DF的大小由用户在创建的时候指定,且不能超过32K。

DF在创建的时候同时指定ISF文件的大小以及创建EF和创建KEY记录的访问控制权限。

(3)基本文件EF

基本文件EF用于存放用户数据、程序或密钥,分为内部保密文件ISF和工作基本文件。

存放密钥的文件称为内部保密文件ISF(InternalSecretFile),它不需用户专门创建,而与MF/DF同时被建立。

ISF文件可存放的密钥类型包括口令密钥、内部认证密钥、外部认证密钥、内部密钥、重装PIN的密钥、线路加密密钥、线路认证密钥或线路加密认证密钥等。

ISF文件在任何情况下密钥数据均无法读出。

存放用户数据的文件称为工作基本文件WEF(WorkingElementaryFile),分为透明文件、线性定长文件、循环文件、线性变长文件、ECC参数文件、ECC密钥文件。

透明文件也称二进制文件,为一个数据单元序列,数据以二进制为单位按地址进行读写,其中的数据由应用者解释。

线性定长文件每条记录长度相同,数据以记录为单位进行存储。

循环文件为具有固定长度记录的环形文件。

循环文件及下面所述的计算文件只能顺序增加记录,当写记录时当前写入的为第一条记录,上一次写入的为第二条记录,依此类推。

当记录写满后再执行写命令将自动覆盖最早写入的记录,最后一次写入的记录的记录号总是为1,上次写入的记录的记录号为2,依次类推。

线性变长文件的每一条记录长度是可变的。

更新记录时,新的记录长度必须与卡中记录长度相同,否则更新无效。

变长记录的格式TLV如下:

T

L

V

T(Tag):

记录标识、L(Length):

记录数据域长度、V(Value):

L字节数据

5.3.3.6COS的常用命令

同学们,不同的智能卡硬件平台和生产厂商可能有功能相同的操作系统,但是也很可能不相同,我们在以后的工作和学习过程中要根据实际情况来确定具体的开发和应用方法。

在ISO7816规范中确定了不同的操作系统应该遵循的规范,特别是命令规范和文件规范。

而不同的厂商会对ISO-7816的命令规范进行扩充,形成自己的命令集,扩充的命令主要是:

(1)创建文件系统和密钥系统的相关命令。

这一部分是必不可少的,在进行CPU卡的应用开发时执行相关的命令也是必需的。

在ISO-7816中规范此类命令的数据格式和应答格式。

(2)密码相关命令,比如RSA和ECC基本运算、加密、解密、签名、认证命令,对于当前大多数的PKI环境下的智能卡应用此类命令也是必不可少的。

(3)行业命令,比如银行应用、税控应用、社保应用的相关行业命令。

我们在进行应用开发时要注意选择带有支持相关行业命令的操作系统的CPU卡。

下面列举一些常用的命令及其格式:

(1)应用锁定命令AppliBlock

应用锁定命令使当前选择的DF失效。

命令结构如下:

CLA

INS

P1

P2

Lc

DATA

84

1E

00

00/01

4

MAC

P2=00命令执行成功后可锁定应用,但该应用可以用应用解锁命令解锁,可由选择命令选择进入该文件,但返回‘6983’。

P2=01此命令执行成功后将永久锁定应用,IC卡将不允许执行解锁应用。

应答报文只有SW1和SW2:

SW1SW2

意义

9000

命令正确执行

6200

无信息提供

6281

回送数据可能出错

6283

选择文件无效

6400

EEPROM状态未改变

6581

写EEPROM不成功(表示EEPROM失效)

6882

文件不支持安全报文

6982

不满足安全状态

6984

引用数据无效(密钥类型不正确)

6987

安全报文数据项丢失(Lc不正确)

6988

安全报文数据项不正确

6A86

参数P1P2不正确

6A88

未找到引用数据(线路保护生成密钥)

 

(2)应用解锁命令AppliUnblock

应用解锁命令用于解锁当前DF。

如果对于某应用连续三次解锁失败,则IC卡将永久锁定此DF。

命令结构如下:

CLA

INS

P1

P2

Lc

DATA

84

18

00

00

04

MAC

应答报文只有SW1和SW2:

SW1SW2

意义

9000

命令正确执行(含应用未被锁定之情况)

6400

状态标志未改变

6581

写EEPROM不成功

6882

文件不支持安全报文

6982

不满足安全状态

6984

引用数据无效(密钥类型不正确)

6987

安全报文数据项丢失

6988

安全报文数据项不正确

6A88

未找到引用数据(线路保护生成密钥)

9303

应用或文件已被永久锁定

(3)卡片锁定命令CardBlock

卡片锁定命令使卡中所有应用失效。

当用卡片锁定命令永久锁定卡之后,所有后续的命令都将回送状态码‘6A81’,表示不支持此功能,且不执行任何其它操作。

命令结构如下:

CLA

INS

P1

P2

Lc

DATA

84

16

00

00

04

MAC

应答报文只含SW1和SW2:

SW1SW2

意义

9000

命令正确执行

6400

状态标志未改变

6581

写EEPROM不成功

6882

不支持安全报文

6982

不满足安全状态

6984

引用数据无效(密钥类型不正确)

6987

安全报文数据项丢失

6988

安全报文数据项不正确

6A88

未找到引用数据(线路保护生成密钥)

(4)外部认证命令ExternAuth

外部认证命令要求IC卡中的应用验证密码。

操作过程是:

将命令中的数据域用指定外部认证密钥解密,然后与先前产生的随机数进行比较,若一致则表示认证通过,置安全状态寄存器为该密钥规定的后续状态值,错误允许计数器恢复成初始值;若比较不一致则认证失败,错误允许计数器值减1,且不改变安全状态寄存器的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1