sim卡7816协议.docx
《sim卡7816协议.docx》由会员分享,可在线阅读,更多相关《sim卡7816协议.docx(12页珍藏版)》请在冰点文库上搜索。
sim卡7816协议
竭诚为您提供优质文档/双击可除
sim卡,7816协议
篇一:
sim卡基本知识
sim卡基本知识
转发评论20xx-04-1821:
52
sim卡(subscriberidentitymodule,国际移动用户识别模块),简称用户识别卡,它是一张符合gsm规范的cpu卡。
sim卡用于gsm全球数字移动电话通信系统,除主要用于移动电话外,还可以用作其他数字通信。
每一张sim卡就代表一个用户,它记录着制造商和用户的有关信息,主要包括国际移动识别码imsi、鉴权密钥ki、用户身份识别及密钥信息、辅助业务信息、短信息、移动性信息和无线电资源信息等,可供gsm系统对用户的身份进行鉴别以及对用户信息进行加密。
手机只有装上sim卡才能使用。
如未安装sim卡,仅能拨打119、112等几个紧急号码。
一个移动设备(me)用户必须经过身份鉴权以确认入网是否合法。
确认过程是在网络和sim卡之间进行的。
鉴权开始时,网络产生一个128bit的随机数Rand,经无线电控制信道传送到移动台,移动台从sim卡中取出固有的密钥ki和算法a3,对接收到的Rand计算出应答信号sRes,并发回网络端。
而网络端在鉴权中心查明该用户的密钥ki用同样的Rand和算法a3算法sRes,并与sRes进行比较,如两者一致,则鉴权通过。
否则,不能入网。
sim卡常用的型号有sle44c80s、sle66c160s、sle66c322p、sle66c644p、at90sc4816R、at90sc6432R、at90s19264Rc、mc68hc05sc21、mc68hc05sc27、mc68hc05sc28、h8/3101、st16系列、st19系列和st22系列。
1、sim卡的作用
*向移动通信设备(me)提供sim卡的容量。
*可以按预先设定的方式,由sim卡主动向me发出一个呼叫。
*向sim卡写入信息。
*可以由sim卡向me主动传送菜单。
*可以实现sim卡对me的监控。
*sim卡的自动定时功能,并能自动向me发出定时时间到的信息。
2、sim的数据文件
sim卡主要用于存储数据文件,数据文件的组织结构完全符合iso/iec7816-4的相关规定。
文件系统的构成如下图所示:
按照gsm的规定,文件的访问条件有如下5种:
*always,无条件;即对数据文件的访问无任何约束条件。
安全状态为0。
*chV1,pin1码(也即pin码)条件;即须向sim卡输入正确的pin1码之后才能访问,除非解除pin1码命令已被sim卡接收。
安全状态为1。
*chV2,pin2码条件;即须向sim卡输入正确的pin2码之后才能访问,除非解除pin2码命令已被sim卡接收。
安全状态为2。
*adm,通过管理权限认证后才能访问。
安全状态为4-e(4-14)。
*neVeR,不能够由接口访问,而只在sim卡内部使用的文件。
安全状态为F(15)。
3、sim卡的cos命令
sim卡的cos命令应符合etsi(europeantelecommunicationsstandardsinstitute,欧洲电信标准化协会)的gsm标准。
主要有select、ReadbinaRy、updatebinaRy、updateRecoRd等命令,详情请参阅相关文献。
4、sim卡的pin码
*pin码
pin(personalidentitynumber)码称个人识别码,也叫pin1码,长4位,自己设定,是属于sim卡的密码,用来保护sim卡安全,初始状态是不激活的。
启动该功能后,每次用户重新开机后,gsm系统就要和手机之间进行自动鉴别,判断sim卡的合法性,即和手机对“口令”,只有在系统认可后,才为该用户提供服务。
如果pin1码输入错误超过3次,sim卡将被闭锁,但可以由puk码解锁。
*pin2码
pin2码也sim卡的密码,它与网络的计费和sim卡内部资料的修改有关。
手机上的“计费”功能需要pin2码支持。
gsm协议支持手机随时查询已通过已通话的支出,但中国移动和中国联通均未开通此项业务,所以pin2码用户不知道。
*puk
puk(pinunblockingkey)码是解pin码的钥匙,每张sim卡有各自对应的puk码,为8bit。
可以交由用户自己管理,也可以由网络运营商自己控制。
如果输入的puk出错超过10次,sim卡将被锁死,一般需要更换。
5、sim卡卡面代号
sim卡卡面上印有20位数码,其含义如下:
*第1-6位:
国际受话代码;如中国移动为898600,中国联通为898601。
*第7位:
业务接入号,对应于135、136、137、138、139中的5、6、7、8、9。
*第8位:
sim卡的功能位,一般为0。
,现在的预付费sim卡为1。
*第9-10位:
各省的编码;01-北京、02-天津、03-河北、04-山西、05-内蒙古、06-辽宁、07-吉林、08-黑龙江、09-上海、10-江苏、11-浙江、12-安徽、13-福建、14-江西、15-山东、16-河南、17-湖北、18-湖南、19-广东、20-广西、21-海南、22-四川、23-贵州、24-云南、25-西藏、26-陕西、27-甘肃、28-青海、29-宁夏、30-新疆、31-重庆。
*第11-12位:
年号。
*第13位:
供应商代码。
*第14-19位:
用户识别码。
*第20位:
校验位。
除了标准的20位数字以外,还有一些省、市发行的手机sim卡只印有14位数据或12位数字。
这主要是省略了前六位中国移动在国际上的受话代码和网号。
篇二:
sim卡的硬件和软件接口有关技术
sim卡(subscriberidentitymodule)。
即用户识别模块,是一张符合gsm规范的"智慧卡"。
sim卡可以插入任何一部符合gsm规范的移动电话中,"实现电话号码随卡不随机的功能",而通话费则自动计入持卡用户的帐单上,与手机无关。
sim卡作为智能卡中特殊的一类卡,采用标准的接触式ic卡。
他受到iso7816标准(接触式集成电路ic卡的规定)和etsi(欧洲电信标准委员会)的gsm11.11等标准的规范。
他沿袭了智能卡在安全中的特色,并在移动用户认证和移动商务中扮演重要的角色。
目前手机用户将一些重要的电话号码都储存在手机的sim卡上。
如果手机失窃,用户可以买一部新的,但是储存的号码怎么办呢如果用户能事先将储存在sim卡上的电话号码做一份电子拷贝,这样就算手机丢失了,用户还是可以很容易地将保存的号码写入到新的sim卡里。
为此,研究并设计了sim卡读卡器,通过他可以将手机sim卡中信息读取到电脑中,方便地实现电话簿和短消息的编辑、备份和管理。
为经常使用手机的用户提供了一个经济、便捷的信息备份管理解决方案。
sim卡是一张符合gsm规范"智能卡",他实际上是一个装有微处理器的芯片卡,内部有5个模块,且每个模块都对应一个功能:
cpu(8位)、程序存储器(3~8kb)、工作存储器(6~16kb)、数据存储器(128~256kb)和串行通信单元。
sim卡能实现存储数据(电话本、短消息等)和在安全条件下(个人身份号码pin、鉴权钥ki正确)完成客户身份鉴权和客户信息加密算法的全过程。
这些功能都是由sim卡内的一部具有操作系统的微处理机完成。
sim卡具有机卡分离(sim-me接口)、通信安全可靠、成本低等特点。
(1)sim卡的物理特征:
可以分尺寸为54mm×84mmid-1sim(大卡)和尺寸为25mm×15mmplug-insim(小卡)两种。
(2)sim卡的存储容量:
一般sim卡有8kb的存储容量,另外还有容量分别为16k和32k的sim卡,即stksim卡。
(3)sim卡的使用温度:
标准温度-25~+70℃,极限温度-35~85℃,极限情况下每次使用不得超过4小时,总共使用不得超过100次。
(4)sim卡的使用寿命:
物理寿命是取决于客户的插拔次数,约在1万次左右;而集成电路芯片的寿命取决于数据存储器的写入次数,不同厂家其指标有所不同,就mo-torola经试验室试验约5万次左右。
平均寿命约为4年。
一、sim卡接口电路
sim卡引脚功能的定义如表1所列:
sim卡芯片有8个触点,与移动台设备相互接通:
(1)电源Vcc(触点c1):
4.5~5.5V,icc
(2)复位Rst(触点c2);
(3)时钟clk(触点c3):
卡时钟3.25mhz;
(4)不提供(触点c4);
(5)接地端gnd(触点c5);
(6)编程电压Vpp(触点c6);
(7)数据i/o口(触点c7);
(8)不提供(触点c8)。
sim卡同移动台设备连接时至少需5个连接线:
数据i/o口(data)、复位(Rst)、接地端(gnd)、电源(Vcc)、时钟(clk)。
他与基带单元的接口电路如图1所示。
其中simcd为sim卡检测脚,用于检测sim卡的拔插;simclk为me提供的读/写sim卡的参考时钟;simRst为sim卡复位信号;simio为串行数据输入/输出线,由20kΩ上拉电阻上拉至高电平;simRnw为读/写控制信号,用以指示当前sim_io线上数据传输的方向;simpwctRl为功率控制信号,可在空闲方式时控制sim卡上的电源关闭,从而降低功耗,延长待机时间。
二、单片机与sim卡的接口
单片机与sim卡的接口电路如图1所示。
该电路主要由外围有源晶体y2提供4mhz、稳定的时钟频率给sim卡,电源由一颗ldo输出3.3V、纯净的直流电到sim卡的cl_Vcc上。
这里选择st7267的pe2脚作为i/o引脚,通过一个4.7kΩ的上拉电阻与sim卡实现通讯;选择pe3脚作为sim卡的复位控制引脚。
四、sim卡内部数据结构
sim卡共有3类数据文件:
主文件(masterFile,mF)、专用文件(dedicateFile,dF)、基本文件(elementFile,eF)。
组织结构规定如下:
0x3F00代表根目录,0x2Fxx代表根目录下的基本文件;
0x7Fxx代表一级子目录,0x6Fxx代表一级子目录下的基本文件;
0x5Fxx代表二级子目录,0x4Fxx代表二级子目录下的基本文件。
5sim卡上电复位流程
sim卡符合国际标准iso7816的要求,按照协议中的规定,sim应有8个触点,包括电源接口、复位控制接口、时钟输入接口、数据输入输出接口,sim卡工作时整体电流消耗小于10ma。
sim卡的时钟频率可由外部提供,在指定时问内运行鉴权过程时至少需要13/4mhz的时钟频率,其他情况下,使用最小为13/8mhz的时钟频率。
i/o端口的数据传输波特率为时钟频率的1/372。
五、底层软件设计
sim卡的数据传输方式与其他存储卡不同,它遵循iso7816标准。
因此在进行sim卡读写设计时应该注意数据传输时每一个数据位的宽度,然后按照iso7816的标准编写程序。
首先是接收到正确的复位应答信号(atR),其次是向sim卡发送命令,得到正确的返回数据和状态标志。
5.1etu的计算
etu(基本时间单位)就是sim卡i/o脚上输入/输出每一位数据的时间,计算公式是;
其中:
参数F和d分别是时钟频率转换因子和波特率调整因子,这里使用默认的速率,即F=372,d=1;使用的时钟频率f是4mhz。
可以计算出基本时间单位是93μs。
5.2基本数据帧结构
通信使用的协议是iso7816-3所规定的t=0的异步半双工字符传输协议。
基本的数据帧是由1个起始位(低电平)、8个数据位和1个奇偶校验位组成的,如图2所示。
其中,校验位是将8个数据位与其自身做偶校验,也就是其中1的个数必须足偶数。
起始位不做校验运算。
在保护时间内sim卡和单片机都要处于高电平(即i/o口是高电平)。
在t=o协议里,如果sim卡或者单片机检测到奇偶校验结果不正确,则在保护时间内把i/o端口拉低,以示出错。
5.3sim卡的apdu结构
应用协议数据单元apdu(applicationprotocoldataunits)包括了命令apdu以及应答apdu,其结构如下:
其中:
cla是指令的类别,a0被制定为gsm的应用;ins是指令代码;pl、p2、p3是指令参数,p3指示的是数据的长度;data就是要传输的数据;swl和sw2就是命令处理后返回的状态。
5.4基本程序模块的设计
设mybit为从i/o端口采样的存储变量,设parity为奇偶校验变量,parlty的初始化值为0。
每次从i/o口采样后,mybit都要与parity进行一次“异或”,结果放入parity。
这样采样9次后,如果parity的最终值是0,就说明奇偶校验正确;如果不是0,就说明读取数据失败,返回错误信息,要求发送者重发。
篇三:
sim卡体系结构
sim卡体系结构
第一节sim卡系统描述1
第二节拓扑结构1
第三节物理接口2
3.1幅面2
3.2内部结构2
第四节电源3
第五节接口协议4
5.1交流协议4
5.2安全特性4
5.3稳定性5
5.4差错控制5
第六节系统配置5
6.1命令集5
6.2预激活sim卡6
第七节数据流模型7
7.1sim卡数据的一般构成7
7.2sim卡的数据结构7
7.2sim卡中存储的信息表7
第八节sim卡设备9
第九节sim卡硬件和软件9
第十节扩展体系结构9
第一节sim卡系统描述
sim卡(subscriberidentitymodule)即用户身份模块,除某些特殊情况(例如紧急呼叫),在没有sim卡时,gsm用户不能接入gsm服务。
该模块可以说是gsm用户功能实体,它包含了所有的用户数据,特别是鉴别用户过程和与用户有关的信息。
sim卡应符合iso7816标准,该标准确定了机电特性和微电路卡功能,常被称为“跳蚤”卡。
在phase2+中gsm建议定义了一个控制底板,sim卡能将其联于手机。
人们说sim卡为“前激活”。
sim卡通过与网络发送的短消息相结合,提供了一些重要的能力,即确定了对每个运营者的特殊服务。
第二节总线拓朴结构
无
第三节物理接口
3.1幅面
人们通过尺寸区别两种形式的sim卡:
大的id-1型sim卡和小的plug-in型sim卡
·id-1型sim卡,其尺寸与信用卡一样。
它符合规范ios7810和7811,嵌入和取出这种卡比plug-in型sim卡要快。
·plug-in型sim卡,其尺寸小。
这种卡是手机常用的形式。
它在手机中的嵌入和取出不如id-1型sim卡那么简单。
“规范”中规定了基站可同时接受id-1型和plug-in型两种sim卡。
对手机来说,id-1型sim卡在呼叫期是嵌入的,那么它只用到呼叫结束。
如果id-1型sim卡被取出,则plug-in型sim卡可接入使用。
最后,在呼叫期间如果取出id-1型sim卡,呼叫则自动中断。
3.2内部结构
【】sim卡是围绕着处理器组织的。
它包括了几种存储器44
·Rom(Readonlymemory),典型容量为16k字节,含有卡的开发系统,算法a3和a8(也可能a38)是专有使用;
·eepRom(electricalyerasableprogrammableReadonly),储存多少电话号码取决于卡的eepRom的容量,典型容量为8k字节,它包含了全部gsm规范定义域和与专有使用有关的数据;
·Ram(Randomaccessmemory),其容量还可以减小,典型值是数百字节,它包含与专有使用有关的数据。
使用电可编程只读存储器eepRom的sim卡能保存手机关机时所存储的信息,并在必要时提取这些信息。
使用者只要保存好sim卡,即使更换手机仍可按同样身份使用。
·sim卡是带有微处理器的芯片卡,内有5个模块,每个模块对应一个功能:
cpu(8位)、程序存储器Rom(6-16kbit)、工作存储器Ram(128-256kbit)、数据存储器eepRom(2-8kbit)和串行通信单元,这5个模块集成在一块集成电路中。
sim卡在与手机连接时,最少需要5个连接线:
*电源(Vcc)
*时钟(clk)
*数据i/q口(data)
*复位(Rst)
*接地端(gnd)
·电源开关时,sim卡电气性能为:
当开启电源期间,按以下次序激活各触点:
Rst低电平状态;Vcc加电;i/o口处于接收状态;Vpp加电;提供稳定的时钟信号。
当关闭电源时,按如下次序工作:
Rst低电平状态;clk低电平状态;Vpp去电;i/o口低电平状态;Vcc掉电。
第四节电源
供电电压Vcc
当sim卡处在idle状态时,所消耗的电流不能超过200μa(条件:
1mhz、25°c),
Rest(Rst)
手机在操作sim卡时候Rst电压范围如下表:
一个卡有8个电接点,其中只有5个用于gsmphase2阶段(对于iso卡有6个用于phase1)。
sim卡由手机供电,电压范围位4.5至5V。
在正常工作状态耗电约10ma,在守候状态下总耗电不会超过200ma(带1mhz时钟)。
为了减少耗电,新开发的卡用3V供电。
最终5V卡被淘汰。
时钟信号是由手机提供的;频率在1mhz至5mhz之间,典型值时3.579545mhz。
一个接点可以在终端和sim卡之间交换数据,速率时时钟频率的1/372即典型值位9.6kb/s。
在phase2+中,速率将大大提高,在初始化期间可以选择。
插脚可以通过手机使sim卡初始化。
在输入输出插角上,手机可以同时发送卡的结构。
手机和卡遵循一定的会话协议交流消息,不同的协议事实上对于卡来说是标准化了,多种特性和字符相混杂是比较少见和复杂的,方向是模块化。
第五节总线协议
5.1交流协议
手机和sim卡交流数据遵循iso7816-3规范的“t=0”协议,它定义了一批sim卡。
这是一个简单的协议,它采用了带错误检测的字符异步发送,在出错时,借助于偶数位并立即重复。
会话总是发生在手机初始化时。
最后发出命令,sim卡回复这些命令。
一条命令占开头5个字节,
·指令级别cla确定了应用类型(a0值在gsm中是十六进制);
·域ins给出指令;
·域p1和p2,必要时用来确定指令参数;
·域p3,给出长度、命令长度,或待回复长度。
数据域可能在命令中表示。
回复包含在尾部两个字节sw1和sw2(statusword)中,它指示命令的成败。
如果命令不包括它们的话,也可能在数据域前面。
码sw1一般值在90和9F之间(十六进制,90意味着正结算),或60和6F之间,后者指出应用中的问题。
在拒绝执行命令的情况下,码sw2一般确定原因(例如chV未复
原)。
最靠左的字节总是首先发送。
用“t=0”交流协议时,在两个方向上用一个回复命令是不行的。
为了避免这个缺陷,定义了一个特别的命令egtResponse。
终端首先发出带接入数据的命令;卡通过sw1和sw2运行,sw1取值9F,sw2给出要发送的数据长度,然后终端发出命令getResponse,但无数据,从而使卡能发出其数据。
5.2安全特性
sim卡内有一定数量的安全字符。
作为“跳蚤”卡,它具有一个密钥集,用以保障不同介入者的个性安全(制造商、运营者)。
sim卡还有密钥和gsm专用的验证算法,它用了4至8个数字密码,称之为chV1和chV2。
chV1码(cardholderVerififccation1)用于用户身份。
它常常在gsm的phase1中使用,以个人身份码pin(personalidentitynumber)来表示。
一个有缺陷的码在服务预订期内由供应商负责。
这个码可由使用者修改,使用者可以决定使用或者不使用chV1功能。
在chV1免激活功能不用的情况下,这个码在每次插入sim卡或每次加电时要为用户申请。
chV2码(在phase1中称为pin2)指出了身份的附加部分,例如运营公司方面的信息。
如果网络运营者需要的话,他就可以使用chV2码。
这个码具有chV1码相同的特征,但不能免激活。
在chV1和chV2之间不存在任何等级关系。
使用chV1只授予了关于这个码的功能,而不授予关于chV2的功能,反之亦然。
当使用者引入了一定次数的错码时,chV(chV1或chV2)被阻塞。
阻塞就是把sim卡置于禁止手机有任何激活的状态。
只有通过chV解阻塞密钥才可能解除chV的阻塞。
chV1和chV2解阻塞密钥有8个数字,在phase1中称为个人身份码解锁密钥puk(pinunblockingkey),在phase2中称为解锁chV。
如果有一个错码进入,将给用户一个指示。
在10次失败后,解阻塞密钥在回路内封锁,即使连续试验,手机也处于关机状态。
这样卡就完全无用了。
5.3稳定性
无
5.4差错控制
在收到atR(answertoReset)指令后,那些不遵循协议的信号,比如atR强制信号或所传输的字节太少,手机都将会执行复位,除非在手机接收到至少连续三个错误的atR指令后,手机才不会拒绝同sim卡通信。
第六节系统配置
命令集
1.数据接入指令
好几个命令建立了sim卡的开发系统:
·select,它允许选择标有字头的文件,然后sim卡在收到getResponse中指出所选文件的状态(它可能是一个目录);
·status,用它可以获得选用的通用文件的状态,这个中性命令为手机用来周期性查询激活前的sim卡,以便知道sim卡是否要发出某个命令;
·ReadbinaRy和ReadRecoRd,由sim卡分别激励文件中记录的字节组发送;
·updatebinaRy和updateRecoRd,分别修改字节或通用文件中的记录;
·seek,搜索所选通用文件中的某字节序列(仅对于不透明文件);
·incRease,可以周期性给初始文件加一些记录。
2.与安全有关的指令
好几个命令可以管理不同的通行字:
·VeRiFychV,chV1/2的检验(检验用户号码chV1/运营者号码chV2);
·changechV,修改chV1/2;
·disablechV,去激活chV1;
·enablechV,重新激活chV1;
·unblockchV,释放chV1/2。
有以下几个指令管理着附加安全功能:
·inValidate,取消某类文件,这类文件对Read命令而言已不值一读了;
·Rehabilitate,恢复一个文件;
·RungsmalgoRithm,执行算法a3。
3.与会话有关的指令
“t=0”协议是十分有限的,命令总是由终端引入的,而且不能双向交流数据。
为了避免这些缺陷,定义和使用了好几条指令,特别针对激活前的sim卡:
·getResponse,询问包含有接入参数的前一命令的结果。
这个命令是在9Fxx完整回复后被使用,例如在select、incRease、seek和RungsmalgoRithm;
·enVelope,在激活前的sim卡中转移sim卡应用数据(见12.5节);
·Fetch,询问sim卡,以便它转移sim应用命令;
·teRmin