Android 9.0 SecureElementService 初始化流程分析

news/2024/11/7 17:54:05/

1. 相关名词解释

NFC

Near Field Communication,近场通信,一种基于13.56 MHz 的短距离通信技术。

NFCC

NFC Controller,NFC 控制器,负责 NFC 无线信号的调制解调

SE

Secure Element,安全芯片,拥有独立的内存、ROM、CPU,可以认为是一种微型计算机。

eSE

Embedded Secure Element,焊在主板上的安全芯片,与主CPU独立

applet

SE 中的应用程序

TEE

Trusted Execution Environment,可信执行环境,存在于主 CPU 中的一块安全运行环境

REE

Rich Execution Environment,富执行环境,普通 Android 运行环境,区别于 TEE

I2C

一种总线, 连接 REE 和 NFCC 之间

SPI

Serial Protocol Interface,一种总线,用于连接 TEE 和 eSE

APDU

特指发送给 SE 的指令

TSM

Trusted Service Management,可信服务管理,接收来自客户端的关于管理 SE 内容的请求,包括在 SE 安装、个人化、删除 applet 等操作,生成相应的 APDU

CAP

特指 applet 的安装文件,类似 PC 上的 jar 包

AID

Application Id,SE 中对象的标识符,类似 java 语言中的类名。

OMA

Open Mobile API,由 simalliance 组织定义的一套访问 SE 的接口

JCOP

Java Card Open Platform,泛指 SE 中的 Java 操作系统

2. ESE 简要介绍

什么是SE?

安全元件(Secure Element)简称SE,通常以芯片形式提供。为防止外部恶意解析攻击,保护数据安全,在芯片中具有加密/解密逻辑电路。SE是一个CPU卡,可以运行智能卡应用程序。SE可封装成各种形式,常见的有智能卡和嵌入式安全模块(eSE)等。

什么是ESE?

嵌入式安全元件(embedded Secure Element)简称ESE,焊在主板上的安全芯片,与主CPU独立。eSE能实现银行卡的作用,可在手机中模拟实现一张或多张智能卡,简单的说,就是可以将按GP(GlobalPlatform)卡片规范编写的Java卡应用程序Applet运行在手机的eSE环境中,实现一机替代多张传统物理卡片,每个Applet由唯一的AID标识符来识别,可以是银行卡、储值卡、公交卡等。

ESE与SE的关系?

ESE是SE的一种实现形式,一般由手机制造厂商在手机出厂前集成在手机内部。

还有两种常见的实现为:一种是UICC 通用集成电路卡,就是我们平时所使用的手机SIM卡;另外一种是Micro SD SD存储卡的形式存在,通过插入SD卡槽集成到手机上。由独立的SE制造商制造和销售。

ESE与NFC的关系?

嵌入式安全模块(eSE)是针对NFC终端产品开发的产品,采用了满足CCEAL5+安全等级要求的智能安全芯片, 内置安全操作系统,满足终端的安全密钥存储、数据加密服务等需求。可广泛应用于金融、移动支付、城市交通、医疗、零售等领域,既能保护线上支付的安全,又能配合NFC作为线下支付的钱包使用。

ESE与TEE(Trusted Execution Environment)的关系?

SE千般好,但受限于硬件隔离,独立的计算和存储资源,导致SE的计算性能差、数据传输速度慢,限制了SE的应用场景。而当今移动互联网发展迅速,迫切需要一个更好的安全生态。因此TEE应运而生。TEE OS是一个硬件安全执行环境,提供了代码和数据的安全防护、外置设备的安全访问等功能,可以安装和卸载执行其中的安全应用TATEE Application)。跟SE相比,是一个相对不那么安全,但运行速度更快、功能更丰富的安全环境。如Android手机中的指纹访问,起指纹存储和校验就在运行速度更快的TEE OS中完成。

3. ESE 框架介绍

    2.1  Android app 到 SE applet调用流程整体框架

带有NFC功能的Android设备大多都支持NFC卡仿真,在Android设备中加入eSE安全芯片也就是为了给模拟卡提供更高级别的安全保障;另外移动运营商提供的SIM卡中大多也有集成支持安全元件;且在Android4.4版本开始引入了另一种HCE(基于主机的卡仿真)安全元素,这允许Android通过应用程序模拟卡并直接与NFC读卡器对话。

当用户使用安全元件提供NFC卡仿真时,手机中的NFC控制器将来自读卡器的所有数据直接路由到安全元件SE中,SE本身执行与NFC终端读卡器通信,并且交易中根本不涉及Android应用程序。事务完成后,Android应用程序可以直接查询安全元素以获取事务状态并通知用户,app可以通过OMAPI发送APDU指令来与SE中的Applet通信交互。

当用户使用HCE模拟NFC卡时,数据将路由到直接运行Android应用程序的主机CPU。相比SE卡仿真,使用HCE需要在手机屏幕亮起时才能进行刷卡操作,因为当设备的屏幕关闭时HCE服务是不起作用的。

    2.2 OMAPI的整体框架及接口定义

早在Android2.3.4中就已经引入了访问内置SE的API,但这些API在SDK中一直是隐藏状态的,而且使用需求系统级权限,这就意味着只有手机制造商才能发布使用SE的应用程序,限制了SE应用程序的发展。

在Android 9中Google将GlobalPlatform OpenMobile API的实现添加至平台中,统一了SE的相关访问接口。在支持的设备上,应用可以使用OMAPI API访问安全元素(SE),以启用智能卡支付等安全服务。硬件抽象层(HAL)提供了必要的API,用于枚举多种可用的Secure Elements(如eSE,UICC等)。

    2.3 Transport API的框架

具体关系类图如下:

 

4. ESE初始化流程

 


http://www.ppmy.cn/news/547913.html

相关文章

AndroidQ(十)Android Q功能和API

Android Q 功能和 API Android Q 为用户和开发者引入了强大的新功能。本文重点介绍面向开发者的新功能。 要了解新版 API,请阅读 API 差异报告或访问 Android API 参考。为醒目起见,将突出显示新版 API。此外,请务必查阅 Android Q 行为变更…

带4g无线的高性能服务器,全网通还是4G?做一个智能4G的全网通简直完美!

原标题:全网通还是4G?做一个智能4G的全网通简直完美! 在2G/3G时代,语音和数据业务分别承载在两张不同的核心网上,控制语音相关的叫电路域(CS域:Circuit Switch),控制数据业务相关的叫分组域(PS域…

揭秘!一个无线电黑客的玩具

在简云定眼中,空气里飘扬的不是北京的雾霾,而是醉人的无线电信号。 为了捕捉一串汽车钥匙开锁发出的无线信号,他需要一套“行头”。于是,他用了两个月的时间,绘制了一套电路图,在面包板上做电路测试&#x…

iOS 14 的新功能及评价

1. 主屏幕上的小组件 👍 重新设计的小组件可让您一览更多信息,现在还可添加到主屏幕。您可以按喜好选取不同大小和排列方式。还可以添加智能叠放,它会基于您的位置、活动或时间等因素显示不同小组件。 将小组件添加到 iPhone 主屏幕 “今天…

Android4.0 SDK新功能详解

Android 4.0 平台API等级:14 Android 4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。在下面我们将讨论的所有新特性和API中,因为它将 Android 3.x 版本中广泛使用的API和全息图像主题带给了小屏幕设备,因…

NFC技术Card Emulation模式在A ndroid系统中的应用

简介:近地场通讯(Near FieldCommunica&…

nfc 近场通信

参考链接: http://luhuajcdd.iteye.com/blog/1172488 http://developer.android.com/guide/topics/nfc/nfc.html 【NFC在android中的应用API】 Android 2.3 NFC简介 NFC (Near Field Communications) 是一套短距离的无线通信,通常…

android 4.4新功能介绍(Kitkat)

重要的行为变更 如果您之前发布过 Android 应用,请注意您的应用可能受到 Android 4.4 变化的影响。 如果您的应用从外部存储空间读取... 您的应用在 Android 4.4 上运行时无法读取外部存储空间上的共享文件,除非您的应用具有 READ_EXTERNAL_STORAGE 权…