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

news2024/11/14 21:23:14

随着电子支付的兴起,越来越多的支付方式出现在我们的生活中。其中就有基于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.coloradmin.cn/o/1312859.html

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

相关文章

Backtrader 文档学习-Quickstart

Backtrader 文档学习-Quickstart 0. 前言 backtrader,功能十分完善,有完整的使用文档,安装相对简单(直接pip安装即可)。 优点是运行速度快,支持pandas的矢量运算;支持参数自动寻优运算&#x…

【Qt QML入门】Button

Button表示一个推按钮控件,用户可以按下或单击它。 import QtQuick import QtQuick.Window import QtQuick.ControlsWindow {id: winwidth: 800height: 600visible: truetitle: qsTr("Hello World")Button {id: btnwidth: 200height: 100anchors.centerIn…

Spring+SpringMVC+SpringBoot

Spring bean bean基础配置 bean别名配置 注意事项: 获取bean无论是通过id还是name获取。如果无法获取到,将抛出异常NoSuchBeanDefinitionException bean的作用范围配置 适合交给容器进行管理的bean 表现层对象、业务层对象、数据层对象、工具对象 不…

【数学知识】LCP42: 玩具套圈

作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的基础知识点 优化后,就不需要二分了。 二分查找算法合集 题目 「力扣挑战赛」场地外,小力组织了一个套玩具的游戏。所有的玩具摆在平地上,toys…

开源BI 平台AJ-Report —— 筑梦之路

AJ-Report: AJ-Report是一个完全开源,拖拽编辑的可视化设计工具。三步快速完成大屏:配置数据源---->写SQL配置数据集---->拖拽生成大屏。让管理层随时随地掌控业务动态,让每个决策都有数据支撑。

[渗透测试学习] Sau - HackTheBox

首先是信息搜集,nmap扫一下 nmap -sV -sC -p- -v 10.10.11.224 发现存在两个端口,55555端口有http服务,访问一下 获得线索request-baskets版本为1.2.1,搜索发现存在漏洞 那么我们试试构造ssrf,create的时候bp抓包 构…

【教程】源代码加密、防泄密软件

​ 什么是代码混淆? 代码混淆 是一种将应用程序二进制文件转换为功能上等价,但人类难于阅读和理解的行为。在编译 Dart 代码时,混淆会隐藏函数和类的名称,并用其他符号替代每个符号,从而使攻击者难以进行逆向工程。 …

PyQt6 QFrame分割线控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

Vue3-20-组件-父组件给子组件传值

情景说明 当父组件使用子组件的时候, 我们可能会需要将某些父组件的变量值 传递 给 子组件,在子组件中进行使用。此时就有一个 【父组件】传值给【子组件】的动作。 这就是本文我们要讨论的问题。主要问题有两个 : 1、【子组件】 如何接收值…

Zoho Desk与Zendesk详细对比:热门在线客服系统之争

企业需要一款功能强大且丰富的客服系统产品为其解决客户服务的难题。对于了解过Zendesk的企业来讲,可能会考虑到还有哪些产品可供选择,便于对比选择出更合适的产品。这篇文章就为大家展现了一款和Zendesk功能相似的产品——Zoho Desk,在功能、…

辅助电源交流220V转5V200mA输出,不需要变压器

辅助电源交流220V转5V200mA输出,不需要变压器。 在当今智能家居、小家电等电子产品日益普及的时代,对辅助电源的需求也越来越大。一款高效、低成本、小巧封装的辅助电源芯片成为众多产品的迫切需求。今天,我们将为您介绍一款交流220V转5V200m…

CDN初学习

目录 1、CDN是什么 2、CDN管理中心 3、CDN 的工作原理 4、如何保证CDN的内容缓存和分发的可靠性? 5、cdn的应用场景 6、使用CDN服务时,需要注意哪些问题? 1、CDN是什么 CDN是Content Delivery Network的缩写,也被称为内容分…

接口测试 — 4.Requests库GET、Post请求

Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求。 (不带参数的GET请求请看上一篇文章的练习) 1、Requests库待参数的GET请求 使用Get方法带参数请求时,是params参数字典,而不是data参数字典。data参数字典…

【Pytorch】Transposed Convolution

文章目录 1 卷积2 反/逆卷积3 MaxUnpool / ConvTranspose4 encoder-decoder5 可视化 学习参考来自: 详解逆卷积操作–Up-sampling with Transposed Convolution PyTorch使用记录 https://github.com/naokishibuya/deep-learning/blob/master/python/transposed_co…

DDD、SOA、微服务和微内核

DDD、SOA、微服务和微内核,看到经常有人把这几个概念拿出来一起讲。事实上,DDD和其他三个不是一个维度的东西。 DDD其实特别好理解,DDD就是领域来驱动设计嘛,是一种设计思想。很容易又和OOA、OOD和OOP来比较了。这个回头再说。 SO…

世微 AP9166 DC-DC降压IC 18V 2A同步降压转换器

600KHz,18V,2A同步降压转换器 概述 AP9166是一款完全集成的效率2A同步整流降压转换器。AP9166运行在宽输出电流上以高效率 负载范围。此设备提供两个操作模式、PWM控制和PFM模式切换控制,允许更宽范围的高效率 负载AP9166至少需要现成标准的…

JVM的内存分区以及垃圾收集

1.JVM的内存分区 1.1方法区 方法区(永久代)主要用来存储已在虚拟机加载的类的信息、常量、静态变量以及即时编译器编译后的代码信息。该区域是被线程共享的。 1.2虚拟机栈 虚拟机栈也就是我们平时说的栈内存,它是为java方法服务的。每个方法在执行的…

mysql踩坑

关于安装 1报错:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client具体代码如下: import mysql from "mysql"//连接数据库 const dbmysql.createPool({h…

计算机视觉技术在智慧城市建设中的应用

计算机视觉技术在智慧城市建设中的应用 随着城市化进程的不断推进,更多的人们选择在城市生活、工作和娱乐。面对快速增长的人口和日益复杂的城市环境,很多城市开始探索智慧城市的建设。智慧城市的核心就是将现代信息技术应用于城市管理中,以…

gitlab下载,离线安装

目录 1.下载 2.安装 3.配置 4.启动 5.登录 参考: 1.下载 根据服务器操作系统版本,下载对应的RPM包。 gitlab官网: The DevSecOps Platform | GitLab rpm包官网下载地址: gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像地…