GSM 的加密系统里面大致涉及三种算法,A3,A5,A8,这些并不特定指代什么算法,只是给出算法的输入和输出规范,以及对算法的要求,GSM 对于每种算法各有一个范例实现,理论上并没有限制大家使用哪种算法。但是世界上的设备商和运营商都是很懒得沟通的,看到既然有了范例实现,就都拿来用了,于是全世界的 SIM 卡被XX了都一样拷法。
说到这里就不能不简单介绍一下 SIM 卡, SIM 卡是一种智能卡片,里面有个非常简单的 CPU 和一点 NVRAM,可以存储和读出数据,还可以进行一些运算。卡里面有很多内容,不过我只介绍和加密相关的。每张 SIM 卡里面一般都存着一个全球唯一的标志号,叫做 IMSI,这个是用来唯一标识你 SIM 卡的,手机在开机时候会从卡里面读出这个号发给移动网络,移动那里有一个很大的数据库,描述了 IMSI 和手机号的对应关系,于是网络就知道你的手机号是多少了(如果你手机卡[/B]丢了去补,新补来的卡 IMSI 和原有的不同,而移动数据库那里将你原来的手机号指向新的 IMSI,旧的卡就再也不能用了)除了 IMSI ,还有 16 个字节的密钥数据,这个数据是无法通过 SIM 卡的接口读出的,通常称为 Ki, Ki 在移动网络那边也保存了一份。
在手机登录移动网络的时候,移动网络会产生一个 16 字节的随机数据(通常称为 RAND)发给手机,手机将这个数据发给 SIM 卡, SIM 卡用自己的密钥 Ki 和 RAND 做运算以后,生成一个 4 字节的应答(SRES)发回给手机,并转发给移动网络,与此同时,移动网络也进行了相同算法的运算,移动网络会比较一下这两个结果是否相同,相同就表明这个卡是我发出来的,允许其登录。这个验证算法在 GSM 规范里面叫做 A3,m = 128 bit, k = 128 bit, c=32 bit,很显然,这个算法要求已知 m 和 k 可以很简单的算出 c ,但是已知 m 和 c 却很难算出 k 。A3 算法是做在 SIM 卡里面的,因此如果运营商想更换加密算法,他只要发行自己的 SIM 卡,让自己的基站和 SIM 卡都使用相同的算法就可以了,手机完全不用换。
在移动网络发送 RAND 过来的时候,手机还会让 SIM 卡对 RAND 和 Ki 计算出另一个密钥以供全程通信加密使用,这个密钥的长度是 64 bits, 通常叫做 Kc, 生成 Kc 的算法是 A8 ,因为 A3 和 A8 接受的输入完全相同,所以实现者偷了个懒,用一个算法同时生成 SRES 和 Kc 。
在通信过程中的加密就是用 Kc 了,这个算法叫做 A5 ,因为 A5 的加密量很巨大,而且 SIM 卡的速度很慢,因此所有通信过程中的加密都是在手机上面完成的,这样一来,除非天下所有 GSM 手机都至少支持一种相同的 A5 算法,否则就没法漫游了,这时候运营商和设备商的懒惰又体现出来了,全世界目前只有一种通用的 A5 算法,没有其他的,这个算法就是和 Kc 的 8 字节序列进行简单的循环 XOR,再和报文序号做个减法。
上面只是简单的介绍 GSM 的加密通信过程,实际上 GSM 的操作比这个还要复杂一些,比如除了第一次登录时候用真正的 IMSI ,之后都是用商定的临时标识 TMSI ,不过这个不是今天讨论的重点。
下面就来说说为啥手机卡[/B]可以被复制。
从前面的介绍里面我们知道,要完成一次登录过程,IMSI 和 Ki 是必不可少的,A3 算法也需要知道,这其中, IMSI 是直接可读的,但是 A3 算法和存在你的卡里面的数据,都是不知道的,手机只是简单的把 RAND 给 SIM 卡, SIM 卡把算好的数据返回。实际设备中使用的 A3 算法被作为高级商业机密保护起来。但是世界上没有不透风的墙,在 1998 还是 1999 年的时候,有人从哪里偷到了几页纸的相关文档,然后把这文档输入了电脑。后来这个文档落到了加州伯克力几个教授手里面。这个文档里面缺少一些东西,而且还有写错的地方,这几个牛教授们拿一个 SIM 卡比对了一阵子,把缺的补上了,错的也给修正了,于是这个算法就成为了世人皆知的秘密。这个算法又被叫做 Comp128 ,他同时生成 SRES 和 Kc ,代码在这个文件里面。
http://kangkang.org/wordpress/wp-content/uploads/2006/06/a3a8.txt
光有了算法还是不能够得到在 SIM 卡里面保存的 Ki, 理论上面是可以把 SIM 卡拆了,然后把芯片接到特殊设备上面来读出 Ki ,但是这个听起来就像用小刀在硬盘上面刻操作系统一样不靠谱。于是很多有志之士就开始了对 Comp128 算法的攻击,在一开始大家想到的肯定是穷举,不过这个 GSM 的设计者也想到了,SIM 卡里面有个逻辑是一共只能查询 2^16 次左右,之后卡会自杀,让XX者啥都得不到。因此研究者们试图在可以接受的次数之内通过构造特定明文和分析输出秘文来分析出 Ki 的值,结果还真被大家发现出来了一些。在下面这个 pdf 里面有一些相关的内容介绍,IBM 的一个小组甚至用 6 次查询就可以彻底解出 Ki,当然现在外面卖的那种拷卡器肯定没有这么牛,但是看表现似乎都可以在几分钟之内XX 。
http://kangkang.org/wordpress/wp ... Brumley-comp128.pdf
随着时间的推移,针对 Comp128 的XX算法越来越成熟,商用的卡复制设备也越来越多,运营商们终于坐不住了。很多运营商都开始发行 Comp128 v2 加密算法的卡了。这其中就包括中国移动,我看了一下论坛上面的帖子,大部分都是在反映 05 年的新卡基本都没法用 simscan 之类软件读出 Ki 。Comp128 v2 算法是 GSM 协会在 v1 被攻破以后,迅速在 v1 上面修改得来的结果,据说比较好的解决了 v1 算法中的弱点,当然,这个算法像 v1 一样,还是不公布于众。。而且到现在也没有人公布出来。这样一来,基本就没法解了。现在网上面很多拷卡设备厂商说的正在研发 v2 解码,我觉得基本是扯淡,这个既要有足够内线,能从设备商那里盗。窃到 v2 的算法库或者从其他位置盗。窃到文档,还要有足够数学实力,能够找出算法漏洞。就凭这些作坊企业那还差得远点。
分享到:
相关推荐
### GSM SIM卡 A3/A8鉴权加密算法详解 #### 引言 在移动通信领域,全球移动通信系统(GSM)是最早被广泛采用的标准之一。为了保障用户隐私和网络安全性,GSM采用了多种安全机制,其中A3和A8算法作为鉴权和加密的...
此规范详细定义了SIM卡的逻辑信道、命令结构、加密算法以及错误处理机制。SIM卡在接收到网络的指令后,会根据这些规定解析并执行相应的操作,如鉴权、注册、数据传输等。 SIM卡的鉴权过程是GSM网络安全的重要环节,...
SIM卡,全称为Subscriber Identity Module,是全球移动通信系统(GSM)中的一种关键组件,用于存储用户身份信息、密钥以及与网络服务相关的数据。3GPP TS 11.11是针对SIM卡与移动设备(ME)接口的技术规范,主要定义...
SIM卡的保密性主要依赖于A3和A8加密算法,它们在SIM卡制造时写入,用于鉴权过程。鉴权时,网络和SIM卡使用相同的算法计算鉴权密钥(Kc),如果结果匹配,鉴权成功。此外,PIN码用于验证用户身份,连续输入错误的PIN码...
此外,GSM11.11还规定了SIM卡的密钥管理和安全算法,以防止非法访问和复制SIM卡。 11.11.pdf和11.14.pdf可能包含了这两个规范的官方文档,这些文档通常会详细解释规范的各项条款,包括定义、操作流程、错误处理以及...
SIM卡采用高级加密技术,使得用户数据、鉴权算法和密钥安全地存储在卡片中,为用户提供安全的通信环境。SIM卡的使用使得用户可以在任何兼容的GSM手机上使用自己的账户,方便地进行通话和数据通信,而费用将记在SIM卡...
8. **安全性**:SIM卡内含加密算法,用于保护用户的隐私和通信安全,如SIM卡内的国际移动用户识别码(IMSI)和鉴权密钥(Ki)。 9. **功能**:SIM卡支持鉴权、加密、短信存储、电话簿等功能,为用户提供无缝的移动通信...
1. 数据加密:SIM卡内置的加密算法确保通信过程中的数据安全。 2. 可升级性:通过空中下载技术(Over-the-Air, OTA),SIM卡可以远程更新软件,添加或修改服务。 3. 用户认证:SIM卡内的唯一标识(IMSI)和密钥用于...
首先,我们来看GSM11.11,这是关于SIM卡基础技术的规范。它详细规定了SIM卡的物理特性、电气接口、操作命令集以及数据存储结构。其中,物理特性包括卡片尺寸、接触点布局等;电气接口则定义了SIM卡与手机之间的通信...
关于SIM卡的具体总线拓扑结构,文档中未提供详细信息。通常情况下,SIM卡采用简单的串行通信方式与手机交互,这意味着它可能遵循一种线性或环形的简单拓扑结构来确保数据的有效传输。 #### 三、物理接口 ##### 3.1...
GSM加密系统的安全性依赖于A3、A5和A8算法,虽然每个算法都有标准实现,但由于设备商和运营商的惰性,全球大多数设备都使用了相同的示例实现,这也导致了破解方法的统一。尽管如此,由于技术限制和SIM卡自身的保护...
SIM卡存储用户的身份信息和加密密钥,确保了用户的唯一性和安全性。鉴权过程通过A3、A8算法计算临时密钥Ki,防止非法用户接入网络。 GSM系统还支持短消息服务(SMS),使得文本信息可以在移动设备间传递。短信的...
2. **拦截和解码**:在空中接口的通信可能被截获,尤其是如果使用了较弱的加密算法。 3. **SIM卡木马**:恶意软件可以感染SIM卡,从而窃取个人信息或进行未经授权的操作。 4. **物理攻击**:SIM卡可能遭受物理损坏或...
- **加密技术**:使用加密算法保护通信内容。 - **数据完整性校验**:确保数据在传输过程中的完整性。 综上所述,SIM卡不仅是移动通信网络中的重要组成部分,也是实现用户身份认证、数据保护等关键功能的基础。通过...
SIM卡,全称为Subscriber Identity Module,是GSM(全球系统移动通信)网络中不可或缺的一部分,主要功能在于存储用户数据和确保通信的安全性。SIM卡采用了ISO/IEC 7816标准的接触式IC卡设计,有ID-1 SIM(大卡)和...
comp128加密算法A3A8演示。A3A8算法是GSM网络用于认证及通讯加密的算法,若你想了解手机SIM卡的Crack原理,可了解下该加密算法。 附件为MFC编写,VC6.0调试通过。
**SIM-ME接口规范+GSM11.11** 是一份由欧洲电信标准化机构(ETSI)制定的技术文档,主要规定了全球移动通信系统(GSM)中的个人身份鉴别模块(SIM卡)与移动设备之间的接口标准。这份规范对于确保SIM卡与不同制造商...
- **安全机制**:阐述了SIM卡如何通过加密算法和密钥管理机制来保护用户隐私及网络安全。 - **测试方法**:提供了一套完整的测试方案,用于验证SIM卡和移动设备是否符合本规范的要求。 #### 4. 技术特点与优势 - *...
1. **通话功能的基础**:在GSM网络中,没有SIM卡的手机无法进行正常的通话和数据传输。 2. **隐私保护**:SIM卡上的PIN码等安全措施可以有效防止手机被盗用或窃听。 3. **用户身份验证**:SIM卡中存储的IMSI等信息...
首先,SIM卡是在GSM通信系统中应用的核心组件,由欧洲电信标准化组织设计,旨在提供更加安全和方便的通信服务。在早期模拟通信系统中,用户数据缺乏保护,容易受到窃听和假冒的威胁。GSM系统通过引入SIM卡技术,大幅...