基于Android智能终端的虚拟SIM卡软件实现

摘要:为了满足移动用户境外出行时的上网需求,设计实现了一种基于Android智能终端的虚拟SIM卡软件,支持用户通过终端下载漫游地SIM卡信息,并且可以通过使用下载的卡参数鉴权入网,以接近漫游地当地水平的价格为用户提供数据上网服务。首先介绍了AndroidTelephony架构,分析了各层的通信交互方式。针对虚拟卡可能出现的安全问题,基于ARMTrustZone技术实现虚拟卡参数的安全管理。测试结果表明,可以通过终端应用实现产品订购、订单激活,通过虚拟SIM卡可以使用上网业务,上网资费低于运营商资费。

0引言

1平台架构

虚拟SIM卡平台架构如图1所示,平台由三部分组成:支持虚拟SIM卡技术的终端、用户管理中心和SIM云端服务提供商。

(1)虚拟SIM卡终端:支持虚拟SIM技术,能从云端下载虚拟SIM卡参数,可用虚拟SIM卡参数接入相应的网络。

(2)用户管理中心:目的是与终端虚拟SIMAPP进行交互,提供用户管理,开启或终止用户使用虚拟SIM卡参数。

(3)虚拟SIM卡云端服务供应商:提供运营商参数IMSI、Ki等网络鉴权所必须的虚拟卡参数。本方案与二六三移动通信有限公司合作,开发支持虚拟卡技术的终端。

2终端软件架构与设计

2.1AndroidTelephony框架结构

2.2终端软件架构

虚拟SIM卡终端架构如图2所示,其软件架构与AndroidTelephony整体分层结构保持一致,包括应用层、框架层、无线通信接口层。

传统SIM卡是插在Modem中的,终端与SIM卡的交互必须要经过Modem。而虚拟卡相当于在模块侧虚拟了两个卡槽,虚拟卡槽和物理卡槽的连接是互斥的。当虚拟卡激活时,表示当前模块连接的是Softslot,此时模块无法上报物理卡槽slot信息。当无虚拟卡或者虚拟卡去激活时,模块连接到物理的slot上,此时可以通过接口获取物理slot的信息。当发生了物理卡和虚拟卡切换时,相当于发生了一次热插拔,模块将会将原有的卡信清除,并上报新的卡信息。

2.3流程设计

虚拟SIM卡流程设计如图3所示。

2.4虚拟SIM卡安全框架设计

本系统基于ARMTrustZone[3]技术实现虚拟卡用户数据的安全传输与保存。目前主流的安全防范措施包括SoC设计外置硬件安全模块、SoC设计内置硬件安全模块、软件虚拟化技术以及ARMTrustZone技术,TrustZone是保护系统安全的比较好的解决方案。把VirtualSIM运行在TEE环境里面,以确保SIM数据的安全存储和运行安全。系统框架如图4所示,其中主要包含REE、TEE、硬件平台。

REE指的是普通执行环境,也就是常说的Android或者iOS操作系统,其中运行普通应用,本系统基于Android4.4系统进行开发。TEE指的是可信执行环境,其中运行可信程序,执行安全操作,为REE提供安全服务。硬件平台指的是支持ARMTrustZone技术的芯片。

虚拟卡安全的实现主要涉及图中灰色部分,下面描述各部分详细的功能。

(1)运行在REE中的VirtualSIM应用(CA)

虚拟卡应用运行在普通执行环境中,以下简称CA。CA是对安全要求较高的一类应用,通过CA,用户可以与虚拟卡进行交互,实现业务购买、业务激活以及业务关闭等操作。

(2)TEEClientAPI

TEEClientAPI是运行于REE中的CA与运行于TEE中的TA之间进行通信的接口。通过该标准接口实现TEE环境的初始化。CA通过接口调用建立CA与TA之间的联系,实现安全服务的调用。

(3)TrustZone驱动

TrustZone驱动位于Linux内核,是一个虚拟的TrustZone硬件驱动程序。CA调用TEEClientAPI时,TEEClientAPI会调用TrustZone驱动,由TrustZone驱动生成smc指令,进入Monitor模式,完成系统切换。

(4)Monitor

Monitor用于控制系统的安全状态,通过NS位修改来达到TEE与REE之间的相互切换,以及在换过程中保存和恢复TEE和REE的状态。

(5)TrustedAPP(TA)

系统设计将VirtualSIM运行于TEE环境中,这部分可信应用为运行在REE环境中的CA提供相应的安全服务。这些安全服务包括数据的访问安全、数据存储安全以及数据的传输安全。

(6)TEEInternalAPI

TEEInternalAPI也叫TEE内部API,它提供程序开发者用于快速开发TA的一组API。安全芯片标准定义组织GlobalPlatform定义了TEEInternalAPI为TA的开发提供的标准化的接口。

(7)安全文件系统(SFS)

SFS提供的安全文件系统基于ARMTrustZone技术,运行在安全可执行环境中。其主要功能是为普通区域存储用于加密虚拟卡数据的RSA公钥、为隔离区提供对加密后的虚拟卡数据的安全存储。使用SFS可以保护敏感的系统硬件或校准数据免受意外或恶意攻击,以及保护用户敏感数据被盗用。

3虚拟SIM卡数据安全实现

3.1卡参数安全下载实现

在移动通信系统中,实体SIM卡的主要功能是进行用户身份认证以及通信过程加密。文献[4]指出用于身份认证的鉴权密钥不会通过空口进行传输。但是,虚拟SIM卡的根密钥、IMSI等核心数据会在运营商网络和终端之间传输,这些传输的参数在传输的路径中存在被攻击的可能性。并且,下载的虚拟卡参数在终端处理时也会在应用、RIL、Modem之间传输,也有可能从终端获取卡参数,从而造成虚拟卡数据泄露或者失效,损害消费者利益。因此,虚拟卡参数的安全下载是需要解决的一大问题。本方案采用RSA[5](Rivest,Shamir,Adleman)公钥加密算法加密虚拟SIM卡参数。RSA2048公钥加密算法是一种比较典型的非对称加密算法,也是理论上相较于其他非对称加密算法比较成熟、使用比较广泛的一种算法[6]。TrustZone可以提供一个与普通环境(Android)隔离的安全执行环境,在隔离环境中专门处理安全任务。在执行安全操作时通过smc指令进入安全世界,执行安全操作,保证信息的安全。TrustZone提供一个安全的框架,在该框架下,嵌入式设备能够抵御它将遇到的许多的特定攻击[7],避免了攻击者获取敏感信息。其加密流程如图5所示。

TZ生成公私钥对,提供给AP侧RSA加密公钥,应用通过getRsaKey()方法获取加密公钥,应用将获取的加密公钥发给服务器,服务器将卡数据中的Ki和OPc用公钥加密返回给应用,用于后续的激活。终端和服务器都有一套基于RSA非对称加密算法机制,通过对用户数据的加密下载,从而确保虚拟SIM卡数据的安全。最后,通过调用operateSotfSim()携带IMSI信息来激活相应的虚拟卡。

3.2卡参数安全保存实现

为了防止非法从终端获取到虚拟卡参数,本方案将虚拟卡参数加密存储在安全文件系统(SecureFileSystem,SFS)。通过RSA公钥加密下载的虚拟卡数据在执行存储阶段跳转到安全执行环境中进行,保证用户信息存储的安全。通过这种方式存储用户数据,不用针对存储数据专门设计安全存储硬件,一方面减少了芯片面积和功耗,另一方面也降低了产品的开发成本[9]。

3.3虚拟SIM鉴权实现

4测试结果

4.1测试用例

启用虚拟卡会占用一个物理卡槽。默认情况下会占用空卡槽,如果没插卡或者插入两张物理卡,则需要用户手动设置占用哪个卡槽激活虚拟卡。经测试,测试结果满足预期要求,终端能够通过虚拟卡接入网络。

4.2资费对比

通过对比发现虚拟卡提供的漫游资费水平明显低于中国移动、中国电信提供的国际漫游资费,给消费者带来方便的数据漫游服务的同时也降低了漫游资费。

5结论

参考文献

[1]傅剑峰,蒋静,李方,等.降低国际漫游费的方法及可行性研究[J].移动通信,2015,39(24):71-76.

[2]杨青平.深入理解AndroidTelephony原理剖析与最佳实践[M].北京:机械工业出版社,2013.

[3]郑显义,李文,孟丹.TrustZone技术的分析与研究[J].计算机学报,2016,39(9):1912-1928.

[5]陈健.几种常用数据加密算法的比较[J].福建商业高等专科学校学报,2003(5):45-47.

[6]石井,吴哲,谭璐,等.RSA数据加密算法的分析与改进[J].济南大学学报(自然科学版),2013,27(3):283-286.

[7]魏兰.基于ARMTrustZone的安全存储研究与实现[D].成都:电子科技大学,2015.

[8]仇剑书,康建雄,严斌峰.eSIM安全性分析及实现方案研究[J].互联网天地,2016(11):5-9.

[9]陈书义,闻英友,赵宏.基于可信计算的移动平台设计方案[J].东北大学学报(自然科学版),2008,29(8):1096-1099.

[10]李从容.SIM卡及其最新应用[J].现代通信,2003,8(12):13-14.

[11]3GPPTS35.206v14.0.03Gsecurity;specificationoftheMILENAGEalgorithm:anexamplealgorithmsetforthe3GPPauthenticationandkeygenerationfunctionsfl,fl*,f2,f3,f4,f5andf5*;Document2:AlgorithmSpecification[S].2017.

[12]王海天,宋帆.虚拟SIM卡发展影响及取证新挑战[J].中国新通信,2016(21):66.

THE END
1.手机怎么连接到外国互联网,手机能上外国网吗所以都设置好的,要是你想知道你回中国怎么上网的话就要报你的型号,你不说肯定很难帮你的啦!应该不用刷外国的软件。按照当地运营商提供的参数设置一下。因为你买的是国内的手机,参数是国内的。去了外国肯定不能用。设置过来就好了。具体去哪个国家,现在去国外如果是短期旅行度假或者是出差的话建议租一个出国wifi...http://www.cn360cn.com/f7620208.htm
2.小米使用外国手机卡上网的过程实践一、背景介绍 2014年7月,入手一台红米NOTE2,我认为性价比很高,买小米还是很聪明的,呵呵,先自己夸自己一下,8月出国去委内瑞拉进行劳务输出。 二、问题提出 到了委内瑞拉将当地的DIGITEL卡放入卡1,国内的联通卡放入卡2(联通卡没有开启国际业务,实际上就是个储存位置),接打电话和收发短信都没有问题,WiFi也很灵敏,...https://www.xiaomi.cn/post/2952380
3.GlocalMe官方电脑版GlocalMe3.23.00 版本:3.23.00 软件授权:共享软件 软件大小:18.57 M 软件语言:简体中文 应用平台:Android 更新时间:2024-09-12 基本简介 GlocalMe - 和上网漫游费说再见!随时随地轻松上网,为出国差旅的人士提供境外上网解决方案。 华军软件园提供GlocalMeapp官方版下载地址,有需要的用户可免费下载使用! https://soft.onlinedown.net/soft/10119618.htm
4.清如许云游宝北京通信信息有限公司开发环境:AndroidStudio 项目描述:云游宝App是一款全球上网服务软件,为出境用户提供全新的选择,提供出国套餐国际电话等服务, 一卡多 号,告 别出国高额漫游费。 责任描述:项目日常迭代开发,参与产品需求分析 重点难点问题的处理,解决线上bug 配合客服人员解决用户在使用A pp过程 中发现的问题 ...https://www.yuanjisong.com/consultant/247235
1.国内如何能上国际网,国际上网怎么使用方法端午节小长假将至,可能会有更多人选择出国旅行,哪怕不出国,港澳游也是不错的选择。那么,异地手机如何正常打电话上网呢?realmex手机自带国际上网功能,比更换当地电话卡省事,比国际漫游便宜,只要在手机上开通此功能即可。下面小编为大家提供realmex开通国际上网功能的详细操作步骤。**选择并购买套餐**:在国际上网页面,...https://urenkz.com/43792.html
2.Android国际版无法在国内联网mob64ca12e27f25的技术博客Android国际版无法在国内联网的原因分析及解决方案 随着智能手机的日益普及,Android系统的国际版本成为了全球用户的选择。然而,部分用户在进入中国境内后,却发现国际版Android手机无法正常联网。本文将从多个角度分析这一现象的成因,并提供一些可能的解决方案。 https://blog.51cto.com/u_16213373/12569708
3.android手机如何连接国际网络?android手机如何连接国际网络?收音机 小米 小米 网络收音机 查看全部6条评论回答 写回答 li719lin 在连接国际网络时,需要确保您的手机已经启用了国际漫游功能。然后,您可以在手机设置中找到网络设置选项,并选择合适的网络连接方式。如果您使用的是Wi-Fi连接,可以尝试重新启动路由器或调整其设置以获得更好的连接...https://wap.zol.com.cn/ask/details_18935767_4408475_3.html
4.安卓手机怎么连接海外线路?(如何连接海外线路)安卓手机怎么连接海外线路?(如何连接海外线路) 大家好,今天小编关注到一个比较有意思的话题,就是关于如何连接海外线路的问题,于是小编就整理了3个相关介绍的解答,让我们一起看看吧。 安卓手机怎么连接海外线路? 苹果手机怎么连接印尼网络? 用游戏加速器可以浏览国外的网站吗?https://www.shiwaiyun.com/article/post/53999.html
5.许昌学院信息化系统使用指南(教师版)1关校园网使用方法及上网认证 1.1有线网的使用及认证方法(包含客户端及网页认证) 1.1.1客户端认证 1.1.2网页认证 2无线网的使用及认证 2.1关于校园无线网的说明 2.2无线网的使用及认证方法 3上网认证过程中出现认证错误代码的解决方法 4办公室中有多台电脑上网需求的解决方法 ...https://wlzx.xcu.edu.cn/info/1025/2091.htm
6.可证明安全性(精雅篇)深圳社保证明可上网打印 篇4 http://.cn2011年04月14日 14:08深圳晚报 深圳晚报记者周倩报道 “市民在子女入学、购买住房等需要用到社保缴费证明时,不用奔波各个社保窗口办理,只需登录http//e.szsi.gov.cn就可打印带有‘深圳市社会保险基金管理局社保费缴纳清单证明章’和标识的参保证明。”昨日,市社会保险基金...https://www.360wenmi.com/f/cnkey5yu3366.html
7.我带孩子学英语:英语小达人训练手册不出国学好英语在线免费阅读...关注“不出国学好英语”,免费获取海量资源 扫码小助手DiegoMcGao,进“不出国学好英语家长训练营” Diego继承了老爸的笨嘴拙舌,但这并不妨碍Diego抛弃老爸的聋哑英语,不出国就能学好英语。如果你的孩子从小伶牙俐齿,经过你的科学规划和训练,超越Diego一定毫无悬念。 你说自己英语不好?不是让你教孩子英语!诸葛亮手...https://fanqienovel.com/reader/7111574153404091404
8.亿点连接安卓版下载亿点连接app下载v4.1出国必备网络链接软件!《亿点连接》这款软件不仅能让你享受便捷的出国网络流量购买服务,还能让你在这里链接海量热点让你可以轻松上网!感觉不错的话就赶快下载软件使用吧! 软件详情 亿点连接app是一款WIFI共享应用,亿点连接app为用户提供便捷的免费wifi连接服务,海量热点,轻松连接,让用户体验便捷快速的上网服务。 https://app.3dmgame.com/android/43856.html
9.无忧行APP使用指南苹果Android海外通行量的活性化有这些不同无忧银行海外流量套餐全年6-8折优惠,差价在告别支付宝中途赚,价格优惠。出国旅游时,可以不用换号上网,100分钟免费通话,甚至可以免费接收自己号码的来电和短信,在海外旅游用户中非常受欢迎。 那么,出国时如何使用无忧网呢? 很简单,出国前买流量,到达国外旅游目的地时激活手机上的流量。下面是购买-激活流量包的详细过程...http://www.ppyk.net/post-16919.html
10.出国带出去的黑莓手机可以在土耳其正常使用吗?家居资讯1,可以2,上网要重新设置,选项,高级选项,TCP里APN不能填CMWAP或者CMNET了,要填土耳其当地的APN,你问当地运营商就可以3,按绿色拨号键,黑莓键,选项,常规选项,智能拨号不能是+86了,你改未知或者土耳其当地区号都可以土耳其https://m.easdo.com/news/show-1215799.html
11.华为4Gwifi路由器泰国三大运营商上网卡APN设置泰国旅游使用happy卡,设置华为4Gwifi热点共享上网教程。网上只有手机的,我这个是4G无线路由,其他品牌也可以这样设置 全球定位系统各国运营商APN接入点名称 浏览:126 全球定位系统各国运营商APN接入点名称,对于进行无线开发的工程师需要了解各国apn接入点 Unity 5 for Android Essentials ...https://download.csdn.net/download/bg4sop/9794043
12.穿梭加速器Android版官网看国内视频听国内音乐玩国内游戏海外云办公 UNCCTV5 解锁通 通行中国 嗖嗖加速器 旋风加速器 闪电加速器 APP回国 PAC解锁 DNS解锁 小猴翻翻 CNCN2 大香蕉网络 翻回VPN VPN翻回国 VPN回国 穿梭 快帆 Fast CN OBSVPN 快帆VPN Unblock CN ...http://android.chuansuoacc.mobi/