SIM卡结构及上电流程详解

news2024/12/23 5:51:48

SIM卡结构及上电流程详解

  • 1. sim卡概述
    • 1.1 什么是SIM卡
    • 1.2 Sim卡的作用
  • 2. Sim卡的主要功能
    • 2.1存储数据
    • 2.2 PIN码保护
    • 2.3 用户身份鉴权
    • 2.4 Sim卡中的保密算法及密钥
    • 2.5 SIM卡的类型
    • 2.6 Sim卡物理接口
    • 2.7 SIM卡内部结构
    • 2.8 SIM卡文件结构
    • 2.9 常用的文件操作
      • 2.9.1 常用的有如下操作
      • 2.9.2 PIN/PUK系列的命令:
      • 2.9.3 STK相关的命令:详细描述见STK主题文章
  • 3. sim卡初始化流程
  • 4. SIM卡常用协议

1. sim卡概述

1.1 什么是SIM卡

SIM卡是(Subscriber Identity Module客户识别模块)的缩写,也成为用户身份识别卡,移动无线终端必须安装上此卡才能使用。SIM卡是整个GSM系统中唯一确认用户身份的设备,它是向网络标明用户合法身份的重要工具。

1.2 Sim卡的作用

  • SIM卡是完全由运营商掌握的用户端设备,通过对SIM卡的控制,实现对终端功能的控制。
  • SIM卡是手机终端功能的增强和补充,提升手机终端业务能力,降低在业务推广上的终端设备投入成本;
  • SIM卡可以通过预置或OTA方式部署应用,满足日益增长的行业应用需求;

2. Sim卡的主要功能

2.1存储数据

SIM卡存储的数据可分为四类:

  • 固定数据----这类数据在ME(Mobile Equipment)被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI)、鉴权密钥(KI)等;
  • 临时数据----指的是网络相关的的临时数据,如位置区域识别码(LAI)、移动用户暂时识别码(TMSI)、禁止接入的公共电话网代码等;
  • 业务代码----如个人识别码(PIN)、解锁码(PUK)、计费费率等;
  • 电话号码、短消息等用户记录。

2.2 PIN码保护

SIM卡本身是通过PIN码来保护的,PIN是一个4~8位的个人密码,只有当用户输入正确的PIN码时,SIM卡才能被启用,移动终端才能对SIM卡进行存取,也只有PIN认证通过后,用户才能上网通话。

2.3 用户身份鉴权

确认用户身份是否合法,鉴权过程是在是在网络和SIM卡之间进行的,而鉴权时间一般是在移动终端登记入网和呼叫时。鉴权开始时,网络产生一个128比特的随机数RAND,经无线电控制信道传送到移动台, SIM卡依据卡中的密钥Ki和算法A3,对接收到的RAND计算出应答信号SRES,并将结果发回网络端。而网络端在鉴权中心查明该用户的密钥Ki,用同样的RAND和算法A3算出SRES,并与收到的SRES进行比较,如一致,鉴权通过。

2.4 Sim卡中的保密算法及密钥

SIM卡中最敏感的数据是保密算法A3、A8、密钥Ki、PIN、PUK和Kc。A3、A8算法是在生产SIM卡时写入的,无法读出。PIN码可由用户在手机上自己设定,PUK码由运营者持有,Kc是在加密过程中由Ki导出的。

2.5 SIM卡的类型

在这里插入图片描述

  • mini SIM:25mm×15mm,有的文档将这种卡称为标准卡。
  • micro SIM:15mm×12mm。
  • nano SIM:12mm×9mm。
  • 虚拟SIM:直接在手机或者其他移动设备中集成SIM卡功能,卡成为了手机芯片模块的一部分。使用虚拟SIM的设备,必定是运营商定制设备,或者设备供应商和运营商签订了协议。

2.6 Sim卡物理接口

在这里插入图片描述

  • Vcc:电源输入
  • RESET:复位信号
  • CLK:时钟输入信号
  • GND:接地
  • VPP:编程电压,现在已经基本不用
  • I/O:数据输入输出

2.7 SIM卡内部结构

在这里插入图片描述

  • CPU:处理器单元
  • RAM:用于存放临时数据
  • ROM:用于存放系统程序,用户不可修改
  • EEPROM:用于号码、短信等数据,可擦写的程序等

2.8 SIM卡文件结构

在这里插入图片描述
详细卡文件请参考:3GPP 31102 4.7

  • MF(Master File):主文件,理解为根目录。MF文件的ID为3F00
  • DF(Dedicated File):专用文件,理解为文件夹。常见的DF有:
  • DF-GSM:ID为7F20
  • DF-TELECOM:ID为7F10
  • ADF:Application DF,ID为7FFF
  • EF(Elementary File):基本文件,存储数据用的文件。基本文件又分为3类
  • 透明EF:透明结构的 EF 由一个字节序列组成。简单理解为只有一条记录的文件
    在这里插入图片描述
  • 线性固定EF:线性固定 EF 文件由一个记录长度固定的记录序列组成。第一个记录记录号是 1。 简单理解为记录多条记录的文件。
  • 在这里插入图片描述
  • 循环EF:循环文件用于以时间顺序存储的记录,当所有的记录空间都占用时,新的存储数据将覆盖最旧的信息。 如果线型固定EF的记录是一个数组的话,循环EF的记录就是一
    个循环链表。

在这里插入图片描述
注意:线性固定EF和循环EF最多只能存放255条记录
根据上面的描述,可以看得出来,要精确的定位到一个EF文件,完整的文件路径应该是:
MFID + DFID + EFID。
举例:DF-TELECOM下面的EF-SMS(保存短消息的SIM卡文件,ID为6F3C),完整路径就是“3F007F106F3C”。

2.9 常用的文件操作

2.9.1 常用的有如下操作

• SELECT:选择文件
• STATUS:查询当前目录的信息
• READ BINARY:读取透明EF内容
• UPDATE BINARY:更新透明EF内容
• READ RECORD:读取线性固定EF或者循环EF的记录
• UPDATE RECORD:更新线性固定EF或者循环EF的记录

2.9.2 PIN/PUK系列的命令:

• VERIFY CHV:验证PIN码
• CHANGE CHV:修改PIN码
• DISABLE CHV:关闭PIN码验证
• ENABLE CHV:打开PIN码验证
• UNBLOCK CHV:解锁

2.9.3 STK相关的命令:详细描述见STK主题文章

• TERMINAL PROFILE:告知SIM卡手机对STK的支持能力。初始化SIM卡的过程中发给SIM卡。
• FETCH:手机从SIM卡获取命令
• TERMINAL RESPONSE:手机返回SIM卡执行主动式命令的结果
• ENVELOPE:手机发送数据或者事件给SIM卡。

3. sim卡初始化流程

在这里插入图片描述
如上图所示,SIM 卡激活后(用指定的高低电平顺序给SIM卡的几个管脚上电,在ISO/IEC7816-3定义), ME 选择专有文件 DF-GSM,并查询语种文件EF-LP(language preferred)。如果语种文件不可得,或者 EF 中的语言不被支持,那么 ME 选择一种缺省语言。然后 ME 进行 CHV1 验证过程。如果 CHV1 验证过程执行成功, ME 接着执行 SIM 卡 PHASE 请求过程。如果 ME 检测到一个 PHASE 1 SIM 卡,它将忽略接.与 FDN(Fixed Dialing Number,固定拨号) 有关的过程,并进入GSM启动操作。

:现在的SIM卡基本上都是Phase 2的

对于 PHASE 2 SIM 卡,只有在以下二个条件之一满足时,才能启动 GSM 操作:

  1. 如果EFIMSI和EFLOCL为失效,GSM操作立即启动;
  2. 如果EFIMSI 和 EFLOCI 已失效,ME 激活这二个 EF。

如果 FDN 功能满足以下3种情况,则GSM流程启动,否则GSM操作不应该启动

  1. FDN 在 SIM 卡中被分配并激活,并且FDN 被置为“ ENABLED”;
  2. FDN 在 SIM 卡中被分配并激活,并且 FDN 被置为“ DISABLED”;
  3. FDN 未被分配或未被激活;

然后, ME 执行下述GSM启动操作,包括:

  1. ADMINISTRATIVE 信息请求
  2. SIM 卡服务表请求
  3. IMSI 请求
  4. 存取控制请求
  5. HPLMN 搜索周期请求
  6. PLMN选择请求
  7. 位置信息请求
  8. 密钥请求Draft prETS 300 608:1996.08 HCCL GSM 11.11 Version4.18.0
  9. BCCH 信息请求
  10. 禁止 PLMN 请求

SIM 卡初始化成功完成以后, MS 准备 GSM 会话。

4. SIM卡常用协议

SIM卡相关协议都在以下3个协议系列中:

  • 11系列:GSM only (before Rel-4)
  • 51系列:GSM only (Rel-4 and later)
  • 31系列:3G and beyond / GSM (R99 and later)

日常工作中经常用到的有:

  • SIM/USIM:11.11 / 51.011 / 31.102
  • STK:11.14 / 51.015 / 31.111
  • SIM/USIM测试协议:51.010 / 31.121
  • STK测试协议:51.010-4 / 31.124

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1252235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基础(第九期):Java中的集合 ArrayList 集合的增删改查 Java实现学生信息管理系统

⚠️Java基础专栏 文章目录 ⚠ Java基础最后一期(第九期)到此结束 Java中的集合一、什么是集合二、ArrayList2.1 ArrayList介绍2.2ArrayList使用2.3 ArrayList添加add()方法add(index,E element&#xff0…

《微信小程序开发从入门到实战》学习二十九

3.4 开发参与投票页面 3.4.4 使用label组件扩大单击区域 radio组件的单击区域很小,只有文字左侧的圆圈可以点击,实际使用者一般会期望点击文字也可以选中选项,用label组件包含radio组件,就可以实现点击文字也可以选项。 label组…

基于WSL2+Docker+VScode搭建机器学习(深度学习)开发环境

基于WSL2DockerVScode搭建机器学习(深度学习)开发环境 内容概述:由于最近配发了新的工作电脑但不想装双系统,因此通过本博文来记录基于Windows子系统WSLDocker搭建机器学习与深度学习开发环境的流程步骤,同时记录该过程中所遇到的相关问题及解…

上新!2023年汉字小达人市级比赛在线模拟题增加2个刷题试卷

各位小学三年级到五年级的上海学霸孩子们,刚刚结束了上海小学生古诗文大会的复赛,就紧锣密鼓地全身心投入到上海小学生汉字小达人的市级比赛的备赛中了。 为了助各位孩子一臂之力,我把在线模拟题进行了更新,新增了两个可以刷题的试…

安卓用SQLite数据库存储数据

什么是SQLite? SQLite是安卓中的轻量级内置数据库,不需要设置用户名和密码就可以使用。资源占用较少,运算速度也比较快。 SQLite支持:null(空)、integer(整形)、real(小…

深度学习第二天:RNN循环神经网络

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 文章目录 介绍 记忆功能对比展现 任务描述 导入库 处理数据 前馈神经网络 循环神经网络 编译与训练模型 模型预测 可能的问题 梯度消失 梯…

开源称重系统-有源代码

最近发现网上有个不错的开源称重软件,界面做的非常漂亮,收藏一下;还有硬件对接:耀华A9仪表、海康威视监控,IC卡读卡器,控制器对接都有,是个不错的软件,非常感谢作者分享;…

Day45:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

文章目录 300.最长递增子序列思路代码实现 674. 最长连续递增序列思路代码实现 718. 最长重复子数组思路代码实现 300.最长递增子序列 题目链接 思路 单个字符都是一个长为1的子序列,直接初始化dp为1。先固定一个元素位置i,判断0-i范围内到i的最长子序…

十六、互斥量

互斥量的目的就是为了实现互斥访问。 1、概述 (1)举例说明: 怎么独享厕所?自己开门上锁,完事了自己开锁。 你当然可以进去后,让别人帮你把门:但是,命运就掌握在别人手上了。 …

分享一篇很久以前的文档-VMware Vsphere菜鸟篇

PS:由于内容是很久以前做的记录,在整理过程中发现了一些问题,简单修改后分享给大家。首先ESXI节点和win7均运行在VMware Workstation上面,属于是最底层,而新创建的CentOS则是嵌套后创建的操作系统,这点希望…

得物面试:MySQL为何需要4M来双写?为什么redo不双写?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格,遇到很多很重要的面试题: MySQL为何需要4M来双写?为什么redo不双写&…

count=0语句的位置

简洁一点的代码: 像count0这种语句要注意放好位置,尤其是在循环里。

2017年3月24日 Go生态洞察:HTTP/2服务器推送技术深度解析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

操作无法完成错误0x0000709的解决办法,解决0x0000709错误

操作无法完成错误0x0000709是一种常见的Windows错误。这篇文章将带大家了解错误的原因,并提供一些解决该问题的方法,希望能够帮助大家解决0x0000709错误问题。 操作系统错误是我们在使用电脑时经常遇到的问题之一。其中之一就是操作无法完成错误0x000070…

ethernet II 的故事

以太帧有很多种类型。不同类型的帧具有不同的格式和MTU值。但在同种物理媒体上都可同时存在。 以太网第二版或者称之为Ethernet II 帧,DIX帧,是最常见的帧类型。并通常直接被IP协议使用。 格式 当数据帧到达网卡时,网卡要先去掉前导码&#…

安卓系统修图软件(一)

平时我们会不时在朋友圈发自己的自拍照,或者是风景图等,许多小伙伴们此时会对照片进行一定的修理,比如添加滤镜等操作。在电脑上用ps修图比较繁琐,日常中大可不必用这把宰牛刀;而手机自带的编辑器,或者是QQ…

位图及有关海量数据处理

bitset 1.给40亿个不重复的无符号整数,没排过序,给一个无符号整数,如何快速判断一个数是否在这40亿个中 ①.如果用排序加二分查找,40亿个数需要16g内存,内存开不出这么大连续空间 ②.每个值映射一个比特位,…

【Linux】进程间通信——system V共享内存、共享内存的概念、共享内存函数、system V消息队列、信号量

文章目录 进程间通信1.system V共享内存1.1共享内存原理1.2共享内存数据结构1.3共享内存函数 2.system V消息队列2.1消息队列原理 3.system V信号量3.1信号量原理3.2进程互斥 4.共享内存的使用示例 进程间通信 1.system V共享内存 1.1共享内存原理 共享内存区是最快的IPC形式…

图形编辑器开发:缩放和旋转控制点

大家好,我是前端西瓜哥。好久没写图形编辑器开发的文章了。 今天来讲讲控制点。它是图形编辑器的不可缺少的基础功能。 控制点是吸附在图形上的一些小矩形和圆形点击区域,在控制点上拖拽鼠标,能够实时对被选中进行属性的更新。 比如使用旋…

python_接口自动化测试框架

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…