我的NPI项目之Android 安全系列 -- Google Wallet and Secure Element(SE)

随着电子支付的兴起,越来越多的支付方式出现在我们的生活中。其中就有基于NFC的“碰一碰”的支付,支付宝的“扫一扫”支付,我们还知道有Google Pay(Wallet), Apple Pay(Wallet)。作为Android BSP的开发者,我比较关心的是Google Pay。

因为项目处于调研阶段,对PRS我基本上是进行了逐字逐句的学习。其中有一条就是要支持secure element。并要求要使能Android14的Strongbox功能。同时,需要支持透过NFC的Apple Value Added Servied 简称VAS功能。

一开始以为就是为了支持VAS才引进的secure element,于是进行了必要性研究。VAS究竟要不要SE?一场有意思的旅程就此开始:

Apple VAS (Value-added services) is a proprietary NFC protocol that can be used for sending data from a mobile device to an NFC terminal.

首先VAS是一个苹果开发的通信协议,这个协议是基于NFC的。透过这个协议,能够从一台手机发送数据到另外一个NFC终端上。这个终端,可以是一个读卡器,一个有NFC功能的手机(作为reader)。

而巧了,我就是要负责开发这个手机终端的人。

现在的情况就是,如果要支持Apple VAS,我们需要NFC能够支持Apple的ECP协议,通常VAS的协议依赖ECP,但是ECP协议确可以独立运行。这里先不做细究。后面有机会再详细的说明,因为这里涉及到Apple的一些信息。

那么NFC厂家是需要实现Apple的ECP协议的,然后才能和Apple 手机上的Apple Wallet进行通信。例如,NXP的某些NFC芯片支持ECP,有的则不支持。举个例子:PN7220不支持,PN7221却支持的。这个是NFC的选型需要注意的事项。

和NXP的工程师电话沟通后知道,ECP1.0和ECP2.0的最大差异是帧的payload不同,ECP1.0支持最大为5Bytes,ECP2.0支持到12Bytes。最为Reader的终端完全不需要使用SE,至少ECP不需要。

那么关于SE,为什么必要呢?

Google Wallet需要使用SE进行敏感信息的存储,所以最初的时候,手机中如果要Google Wallet能够工作的话,得有一颗SE。听说现在有种新的基于云的SE,这部分后面我们在讨论。

那么,这个SE可以是直接包裹在NFC芯片中,或者SIM卡中或者SD卡中,也可以指独立的一颗IC,例如ST33Jxxx。

关于Google Wallet如何使用Secure element,从“digitaltrends”截取一段优美的解释如下:

大概就是这样喽,一颗计算机芯片,这个说法还是头一次见。

后面,我也需要在自己的平台上集成一颗SE,拭目以待。

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

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

相关文章

Processon的使用以及流程图的绘制

目录 一、ProcessOn 1.2 官方网站 门诊流程图 会议OA流程图 药库采购入库流程图 ​住院流程图 二、Axure自定义元件库 2.1 新建元件库 2.2 自定义元件 2.3 添加元件库 一、ProcessOn ProcessOn是一款在线的流程图、思维导图、组织结构图、网络拓扑图等多种图表类型…

2020年第九届数学建模国际赛小美赛A题自由泳解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 A题 自由泳 原题再现: 在所有常见的游泳泳姿中,哪一种最快?哪个冲程推力最大?在自由泳项目中,游泳者可以选择他们的泳姿,他们通常选择前面的爬行。然而,游泳…

Java基础面试题小结

基础面试题 Java语言简介 Java是1995年由sun公司推出的一门高级语言,该语言具备如下特点: 简单易学,相较于C语言和C,没有指针的概念,所以操作和使用是会相对容易一些。平台无关性,即Java程序可以通过Java虚拟机在不…

MongoDB 与 Python 的交互

文章目录 第1关:MongoDB 与 Python 的交互 第1关:MongoDB 与 Python 的交互 编程要求 根据提示,在右侧编辑器 Begin-End 处补充代码,完成右侧程序。 测试说明 点击评测,平台会对你编写的代码进行测试。 import pymo…

tomcat优化

目录 一.tomcat的优化 二.nginxtomcat负载均衡、动静分离 三.nginx的反向代理类型 四.nginx的调度算法(调度策略、负载均衡模式) 五.nginx反向代理如何实现会话保持 一.tomcat的优化 tomcat的优化分为:系统优化,配置文件参数…

GoLong的学习之路,进阶,微服务之序列化协议,Protocol Buffers V3

这章是接上一章,使用RPC包,序列化中没有详细去讲,因为这一块需要看的和学习的地方很多。并且这一块是RPC中可以说是最重要的一块,也是性能的重要影响因子。今天这篇主要会讲其使用方式。 文章目录 Protocol Buffers V3 背景以及概…

RHEL7.5编译openssl1.1.1w源码包到rpm包

openssl1.1.1w下载地址 https://www.openssl.org/source/ 安装依赖包 yum -y install curl which make gcc perl perl-WWW-Curl rpm-build wget http://mirrors.aliyun.com/centos-vault/7.5.1804/os/x86_64/Packages/perl-WWW-Curl-4.15-13.el7.x86_64.rpm rpm -ivh pe…

JVM之堆学习

一、Java虚拟机内存结构图 二、堆的介绍 1. 前面学习的程序计数器,虚拟机栈和本地方法栈都是线程私有的,堆是线程共享的; 2. 通过 new 关键字,创建的对象都会使用堆内存,其特点是: 它是线程共享的&#x…

【每日一题】【面试经典150 | 动态规划】爬楼梯

Tag 【动态规划】【数组】 题目来源 70. 爬楼梯 题目解读 有过刷题「动态规划」刷题经验的读者都知道,爬楼梯问题是一种最典型也是最简单的动态规划问题了。 题目描述为:你每次可以爬 1 或者 2 个台阶,问爬上 n 阶有多少种方式。 解题思路…

智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于探路者算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.探路者算法4.实验参数设定5.算法结果6.参考文…

开源书籍—鸢尾花书:从加减乘除到机器学习系列 | 开源专题 No.50

Visualize-ML/Book1_Python-For-Beginners Stars: 2.4k License: NOASSERTION 《编程不难》是一本名为鸢尾花书的开源项目,它从基础的加减乘除开始,逐步引导读者进入机器学习领域。该项目提供了 PDF 草稿和 Jupyter 笔记,并经过至少两轮修改…

LED恒流调节器FP7125,应用LED街道照明、调光电源、汽车大灯、T5T8日光灯

目录 一、FP7125概述 二、FP7125功能 三、应用领域 近年来,随着人们环保意识的不断增强,LED照明产品逐渐成为照明行业的主流。而作为LED照明产品中的重要配件,LED恒流调节器FP7125的出现为LED照明带来了全新的发展机遇。 一、FP7125概述 FP…

OBS实时字幕(第三第四种方法)

我的视频地址 https://www.bilibili.com/video/BV1uN411V7uG基于wispper的obs实时字幕插件,中文支持不太好,需要加载模型 github.com/occ-ai/obs-localvocal推荐使用这个 下面参考B站 www.bilibili.com/video/BV11u411G7Vt Curses:为OBS、V…

【NSX-T】7. 搭建NSX-T环境 —— 部署和配置 Edge Cluster

目录 7. 部署和配置 Edge Cluster7.1 配置 Edge 节点(1)Name and Description(2)Credentials(3)Configure Deployment(4)Configure Node Settings(5)Configur…

压缩软件电脑版哪个好?

压缩软件是我们存储文件、清理电脑、向他人发送文件经常用到的工具,下面就从头到尾操作一遍各个软件压缩步骤,根据需求选择好啦。可以放心的是,这四款软件都经过了安全测试,能够保证文件的安全性,并且能够兼容多种操作…

qt-C++笔记之模拟实现一个linux终端窗口

qt-C笔记之模拟实现一个linux终端窗口 code review! 文章目录 qt-C笔记之模拟实现一个linux终端窗口一.运行二.main.cpp三.不足&#xff0c;待改进点 一.运行 二.main.cpp 代码 #include <QApplication> #include <QPlainTextEdit> #include <QLineEdit>…

微服务技术 RabbitMQ SpringAMQP P61-P76

B站学习视频https://www.bilibili.com/video/BV1LQ4y127n4?p61&vd_source8665d6da33d4e2277ca40f03210fe53a 文档资料: 链接&#xff1a;https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码&#xff1a;d03r 一 初始MQ 1. 同步通讯 2. 异步通讯 3. MQ常…

arm-linux设备fsck命令移植

arm-linux设备fsck命令移植 文章目录 **arm-linux设备fsck命令移植**1、下载e2fsprogs-源码2、解压3、进入源码目录4、配置编译环境&#xff1a;使用以下命令配置交叉编译环境5、测试 1、下载e2fsprogs-源码 首先要确定自己的文件系统格式&#xff0c;IG2000的文件系统是ext4&…

Leetcode每日一题(分割回文串Ⅰ)

分割回文串Ⅰ import java.util.ArrayList; import java.util.List;class Solution {private List<List<String>> ans new ArrayList<>();boolean f[][] new boolean[1010][1010];//i到j的字符是否为回文串public static void main(String[] args) {Sys…

设计模式——策略模式(Strategy Pattern)

概述 策略模式又叫政策模式&#xff0c;是一种对象行为型模式。它是将定义的算法家族分别封装起来&#xff0c;让它们之间可以互相替换&#xff0c;从而让算法的变化不会影响到使用算法的用户。策略模式的主要目的是将算法的定义与使用分开&#xff0c;也就是将算法的行为和环…