|
从误打误撞进入到软件测试行业,从事SIM相关方面的测试,经过一年的时间,回过头总结一下SIM卡相关的知识和大家共享与探讨。
*****************
首先说一下SIM、PIM、UIM、R-UIM
SIM GSM用户识别模块(GSM Subscriber Identify Module)用于GSM移动台中的存储与用户安全相关信息和GSM操作参数的IC卡
PIM PHS用户识别模块(PHS Subscriber Identify Module)用于PHS移动台的存储与用户安全相关信息和PHS操作参数的IC卡
UIM 用户标识模块(User Identify Module)用于CDMA移动台中的存储与用户安全相关信息和CDMA操作参数的IC卡
R-UIM 可移动用户标识模块(Removable User Identify Module)用于CDMA移动台中的与用户安全相关的IC卡
以上都归类为电信类智能卡,为接触式智能卡(因为含有接触式的金属触点),不管是SIM,PIM,UIM以及R-UIM均基于ISO-7816标准。其中Part 3 & 4 为电信类智能卡的核心内容也是最基础的内容。对于SIM、PIM、UIM、R-UIM还要符合相关移动网络的规范。例如,SIM符合GSM11.11,GSM11.14等。
在上海较多使用的交通卡则为非接触式智能卡,同样要符合ISO7816的相关规范;
银行业使用的磁条卡不属于智能卡,只能算是一个记录数据的一个载体,如果相应的数据读取设备可以很容易的读出磁卡以明文记录的数据信息(题外话,现在自助银行的在进入时都要求刷卡,为了安全起见,大家只要刷带有磁条的卡即可,比如百货或者超市的会员卡);在国外银行业中较为常见的带金属触点的接触式银行卡则为智能卡,这类卡的安全性较高,伪卡率较低。
PS: ISO 7816 各个部分所规定的内容如下:
Part 1 – Physical characteristics
Part 2 – Dimension and location of the contacts
Part 3 – Electronic signals and transmission protocols
Part 4 – Inter-industry commands
Part 5 – Numbering system and registrations procedure for application identifiers
Part 6 – Data elements for interchange
Part 7 – Inter-industry commands for Structured Card Query Language (SCQL)
Part 8 – Security related inter-industry commands
Part 9 – Additional inter-industry commands and security attributes
其次,还要讲到在电信类智能卡内构建的相关应用
对应不同的网络模式可分为如下几类:
STK GSM应用工具箱 SIM ToolsKit
PTK PHS应用工具箱 PHS ToolsKit
UTK UIM应用工具箱 UIM ToolsKit
而对电信类智能卡的测试,目前多为对相关应用的测试,也就是对STK、PTK、UTK的测试,因为文件结构的测试最为基本,一般也太可能出现错误。这样的测试出发点也是同网络运营商的目的与要求相一致的。其主要原因是, 移动网络运营商作为卡片的发出者和所有者,最大限度的控制自己客户,对网络内容提供商有更大的话语权,从而创造更大的利润空间,吸引更多的客户。由于不同卡片容量的限制,也就决定了不同的卡片上的应用存放的数目的不一样。随着卡片容量的逐渐增大,从早期的8K、16K到现在32k、64k、128K、256k甚至欧洲已近出现的128M(1G Bit)超大容量SIM卡,卡内有更多的空间留给运营商按需内置更多的应用服务,也给用户提供了更多的存储空间。
对于电信类智能卡的测试,个人认为应该从文件系统与内置应用两个方面来出发和考虑。
文件系统的测试:
首先,大概说明一下卡内文件系统的结构:
MF 3F00 (Root),Dedicated File(DF) and Elementary File(EF) under Master File(MF), Elementary File under DF.
|-----------DF_Telcom(7F10) ,must have
|-----------------EF 6F3A, store ADN(abbreviated Dailling Number)
|-----------------EF ……
|-----------DF_GSM(7F20),must have in GSM
|-----------------EF 6F39
|-----------------EF ……
|-----------DF_CDMA(7F25),must have in CDMA
|-----------------EF ……
|-----------------EF ……
|-----------DF_WIB(2700),must have in WIB which defined by SmartTrust
|-----------------EF 6F18, store Menu contents
|-----------------EF ……
|-----------EF……,some Files under Root
EF有三种类型,即Transparent EF\Linear-Fix EF\Cyclic EF。形象的说明一下三类文件。Transparent EF,卡内的文件最常用的格式,以Hex Binary的形式存储内容;Linear-Fix EF,如电话号码,短信;Cyclic EF,如通话记录等。
对这三类文件操作的测试要Read\Update\Increase\Invalidate\Rehabilitte几个方面进行,其中只有Cyclic EF才有Increase的操作。而每个操作都有一个操作权限的问题,即只有满足权限才能进行操作。权限又分为CHV1\CHV2\ADM1\……\ADM10\Never。对文件系统测试时,通过GSM11.11中的基本APDU指令对文件操作,如读文件、更新文件、有效、无效;将文件内容填充满,文件内容为空;更新Cyclic EF时,Cyclic EF 的记录顺序是否正确等。总的来说, 对文件系统方面的测试主要依据GSM11.11规范中的说明进行测试,一般文件系统的测试比较枯燥,但也是最基本的。如果文件系统出现了bug,可以说是最低级的。除了相关规范中的规定了卡中必有的文件以外,开发人员也可以根据具体的应用添加符合应用的文件存储类型、长度、名字、操作权限,这个也是测试环节中不能忽视的测试点。
PS: GSM 11.11, GSM11.14可以在www.3gpp.org免费获得
对于内置应用的测试,应用的测试也就是对卡内ToolsKit的测试。
如果我们使用的中国移动的SIM内的“全球通服务” 、“我的动感地带”、“轻松由我神州行”、“移动梦网”,使用的中国联通的SIM内的“联通在信”等。最常见的就是中国移动的SIM卡在开机的时候根据不同的品牌(全球通\动感地带\神州行)出现地个性化的问候语。
说到内置应用,就要说到卡片的供应商,卡片的生产不是有移动网络运营商生产的,而是运营商将所需的应用即应用的要求的实现结构与结果,各个供应商则根据运营商的要求使用自己公司开发体系实现,但最后都要满足在同一个运营商的平台上实现应用。
在应用的开发上有的需要根据运营商的要求对传输的数据进行加密与解密,有的需要对数据的组合和拆分,不管开发在实现上使用何种方法,测试都要测试到数据加解密时的算法、数据、密钥是否符合运营商的要求与规范,数据的拆分与组合是否正确。由于数据是按照一个Envelope来传输,每个Envelope由Byte组成,而每一个Byte 的8个bit可能都有不同含义, 这就要求测试人员在测试的时候仔细阅读规范,不仅从应用结构的上测试,还要对应用的数据结构进行测试,完善测试用例。
上面我总结了一些对于电信类智能卡的测试,以上说的可能有些泛泛,是我做SIM相关测试的一个总结,我想也可以看作是对智能卡测试的通用方法,希望和其他做智能卡类的测试同行多交流。
[ 本帖最后由 RobinYu 于 2006-9-3 23:35 编辑 ] |
|