AC规则-1

news2025/3/1 11:13:54

本文主要参考规范 GPD_Secure Element Access Control_vxxx.pdf

OMA 架构

 

基本定义

GP(GlobalPlatform)定义了一套允许各应用提供方独立且安全地管理其在SE上的应用的安全框架,而AC(Access Control),顾名思义,是对外部应用进行SE上应用访问权限控制的一套安全机制。

其中,SE全称为Secure Element,安全单元,是一类用以提供安全能力,如加解密运算,完整性校验,并能安全存储敏感数据的元件的总称,SE可以是终端内嵌的SE,即emmbedded SE(eSE),也可以是UICC(如USIM),智能SD卡等。

举个例子,一个银行或交通应用可以分成多个部分部署在各个环境中,比如可以将用户界面相关的,对运算资源需求较大的部分部署到REE(Rich Execution Environment)中,而将较为敏感的,对安全性要求较高的运算或校验环节(如指纹的校验)部署到TEE(Trusted Execution Environment)中,而将安全性要求更高的,或者涉及加解密运算等操作的元素,如私钥等,存放到SE上的对应应用中。

应用的各个部分分散在不同环境中,通过各自开放的API进行访问,其中,REE跟TEE可以对应到用户设备上,REE即为我们日常接触的手机终端的操作系统OS,如Android或Windows Phone environment等,TEE的定义也能在OS的文档中找到相关的定义,REE和TEE上的应用统称为设备应用,这些应用可以通过一些API,如Open Mobile API或GP TEE SE API实现对SE上应用的访问,SE可以是终端内置的eSE,也可以是UICC或SD卡。

在GP体系下,为避免外部应用未经授权即访问SE上的资源,防止拒绝服务攻击(denial of services attacks),GP定义了一套安全访问机制,即,AC规则,该规则由SE进行保存与维护,外部应用在调用访问SE的API时,由此时API中的相关部件模块去获取这套规则,并判断是否被允许访问特定的资源或者应用。

AC架构

GlobalPlatform Device Technology Secure Element Access Control中定义了多套AC架构,涉及AC规则的存储,获取与管理,但这些架构都有一个共同点:access rule data,即AC规则被保存在SE中并由设备地Access Control Enforcer(访问控制器)来获取,并由Access Control Enforcer来执行这套权限控制规则。

典型的AC架构,AC规则数据由SE上专门的应用,Access Rule Application Master(ARA-M)进行管理,AC数据由该应用索引并返回给终端的Access Control Enforcer,当AC数据有所冲突或重复时,也由该应用进行冲突处理,并按优先级列出实际有效的AC规则,并返回给Access Control Enforcer。

这种情况下,ARA-M一般直接放置在SE的ISD(Issuer Security Domain,发行方安全域/主安全域)下,AC规则可以存储在SE中的任意位置,ARA-M负责索引并处理来自Access Control Enforcer的请求,ARA-M应用必须是唯一的。对应的AC架构如下图所示。

 

规范还定义了另一种形式的AC架构,这种架构引入了Access Rule Application Client(ARA-C)应用,一个ARA-C应用可以关联到一个应用提供商的安全域(即Application Provider Security Domain, APSD),并管理APSD下的应用的AC规则,当Access Control Enforcer需要获取SE的AC时,仍旧访问ARA-M,并由ARA-M去ARA-C或SE的其他存储位置获取AC并完成整合及返回。对应的AC架构如下图所示。

 

AC数据能保存在SE的不同位置,如主安全域中的ARA-M或辅助安全域中,对于SE中的UICC,AC数据还能保存在文件中,这类文件称为Access Rule File(ARF),即AC规则文件,Access Control Enforcer可以访问ARA-M来获取AC,也可以直接从ARF中读取。对应的AC架构如下图所示。

这些架构的共同点是,终端设备对AC规则的访问均通过ARA-M进行,区别仅是AC规则存储位置的不同,GP定义了多套AC架构,也意在适应不同SE的不同需求。

但ARA-M其实也不是必须的,AC规则数据可以只有卡上文件系统的ARF部分进行存储与维护,终端设备直接读取文件以获取AC规则。其架构如下图所示。

目前运营商的卡(即USIM),其AC既有由ARA-M进行管理的,也有直接通过ARF进行管理的。

示例

 

附录 F

UICC 迁移方案

在本规范发布之前,GSMA 发布了一份文件 ([GSMA]),其中对 UICC 上的应用程序的访问由一组基本文件定义。 此解决方案与第 7 章中定义的 ARF 相同。GSMA 表示,长期解决方案将基于此 GlobalPlatform 规范。 为了保证与根据 [GSMA] 发布的 UICC 仅与 ARF 的兼容性,该规范强制要求访问控制执行器必须支持 UICC 回退到 ARF。 可以预期 UICC 的以下过渡场景: • 仅使用 ARF 部署的 UICC 可以通过无线加载和安装 ARA 小程序升级到本规范中的解决方案。 • UICC 发行者可能决定安装(在生产中或无线)能够评估ARF 规则的ARA-M 小程序。 这将允许使用(仅)RFM 来管理其 UICC 的网络运营商继续这样做并将其规则提供给 ARF 文件系统。 • 另一个 UICC 发行者可能决定安装(在生产中或无线)无法评估 ARF 规则的 ARA-M 小程序,将所有规则从 ARF 迁移到 ARA-M,并完全删除 ARF 。 

 

附件 G

访问规则解释

表 G-1 定义了在使用 GET DATA [All] 检索规则时,访问控制执行器应如何解释 ARA 访问规则策略

表 G-2 定义了当从 ARF 或具有 ARF 读取能力的 ARA-M 检索规则时,访问控制执行器应如何解释 ARF 访问规则策略。

注意:当多个规则应用于同一访问请求时,聚合和冲突解决应由访问控制执行器执行,使用第 3.4.1 节中定义的算法。 但是,该算法不考虑缺失的属性。 仅当规则冲突解决或组合的结果中缺少属性时,才应按表 G-1(从 ARA-M 读取的规则)或表 G-2(从 ARF 读取的规则)中定义的规则进行解释。

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

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

相关文章

pyinstaller 打包 ! pyinstaller 打包路径问题!wordcloud打包缺失stopwords文件

wordcloud打包缺失stopwords文件 错误描述 Unhandled exception in script Failed to execute scriptmain due to unhandled exception: (Errno 2] No such file or directory: C:\Users\VADMINI\appDatallLocal\Templ\2\ME186322\wordcloud\stopwords解决办法 找到安装word…

实验室基础操作

一:FZmotion。 1:查看相机是否加入成功。 2:添加蒙版。 3:选择标定杆类型。500mm 4:标定。 5:数据传输。 二:MotionBuilder。 1:所使用插件。 2:fzmotion插件安装。 Mo…

chatgpt赋能Python-python_errno22

Python的errno22错误——引起问题的原因及解决方法 如果你使用过Python编程语言进行过开发,你可能会像其他开发者一样遭遇过errno22错误。这种错误通常会导致程序崩溃或者无法正常运行。在这篇文章里,我们将深入了解errno22错误的原因,并提供…

【数据结构】C--顺序表1.0版本(本文非常适合小白观看,已尽力详解,以及图解也是尽量列举)

目录 0.前言 什么是数据结构? 1.逻辑结构: 1.1线性结构: 1.2非线性结构: (1)集合 (2)树形结构 (3)图形结构或者网状结构 2.存储结构 一.线性表 二.顺序表 顺序表与数组的关系:(非常容易混淆) 1.静态顺序表:使用定长数组存储元素 2.动态顺序表…

MySQL中auto_increment有什么作用?(IT枫斗者)

MySQL中auto_increment有什么作用? 问题来源 很多时候,MySQL语句中会出现【auto_increment】这个词汇,大多数时候,表都是自动生成的,刚开始学习MySQL数据库时会学习到,后来,渐渐地可能会忘记&…

Windows安装VirtualBox教程(图文版)

VirtualBox是一款免费的虚拟化软件,可以在一台计算机上运行多个操作系统。它可以在Windows、Linux、Mac OS X和Solaris等操作系统上运行。VirtualBox支持多种虚拟硬件设备,包括网络适配器、USB控制器、显卡等。用户可以通过VirtualBox创建一个虚拟的计算…

同个前端页面,在手机端和PC端打开,访问到的资源有可能不是同一个

记录项目遇到的问题,问题表现为: 1、用手机端和PC端打开同一个前端页面,通讯到达的后端服务却不是同一个 排查: 1、确认手机端和PC端打开后,实际访问的前端资源并不是同一个 2、手机端配置的socket端口有误&#x…

图片模块封装:Glide高级使用+使用设计模式图片框架封装+Bitmap尺寸压缩和质量压缩+Bitmap加载大图长图

图片模块封装:Glide高级使用使用设计模式图片封装Bitmap尺寸压缩和质量压缩Bitmap加载大图长图 一.如何更换图片框架二.Glide配置1.依赖:2.缓存配置:3.网络配置:glide默认使用httpUrlConnection完成网络请求,可以改成o…

Python学习笔记——《吴恩达Machine Learning》逻辑回归例程

文章目录 逻辑回归和线性回归的区别?正则化逻辑回归逻辑回归中的梯度下降: 模型预测案例解决二分类问题:不同的 λ \lambda λ会产生不同的分类结果: 逻辑回归和线性回归的区别? 逻辑回归可以理解为线性回归的一个plus版&#xf…

架构-软件工程模块-3

系统测试 #mermaid-svg-cpVF4noxB0estLWd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cpVF4noxB0estLWd .error-icon{fill:#552222;}#mermaid-svg-cpVF4noxB0estLWd .error-text{fill:#552222;stroke:#552222;}#…

【Python】判断语句 ③ ( if elif else 语句 | 语法简介 | 代码示例 )

文章目录 一、 if elif else 语句语法二、 代码示例 一、 if elif else 语句语法 在开发场景中 , 经常用到 多条件判定 , 初次判定 , 先进行 条件 1 判定 , 如果 条件 1 满足 则执行 条件 1 对应动作 , 如果 条件 1 不满足 , 则 判定 条件 2 是否满足 , 如果 条件 2 满足 则 …

linux操作系统【进阶完整版】

文章目录 基础命令tailvimsystemctl 用户和组/权限su/sudo创建删除ls -lchmodchown 实用操作快捷键软件安装软链接时区与时间date修改时区 ip、主机名网络传输请求端口 进程管理主机状态监控系统资源占用磁盘信息监控网络状态监控 环境变量上传和下载压缩和解压tarzip/unzip 安…

一、尚医通上传医院接口

文章目录 一、上传医院接口1、集成mongodb1.1添加依赖1.2添加配置 2、添加医院基础类2.1 添加model2.2 添加Repository2.3 添加service接口及实现类2.4 添加controller 3、上传医院3.1 接口数据分析3.2 添加service接口3.3 添加repository接口3.4 添加controller接口3.5 添加帮…

chatgpt赋能Python-python_errno2

Python errno2: 深入了解错误代码并解决问题 当你在使用 Python 进行编程时,不可避免地会遇到一些错误。这些错误通常会被分配一个错误代码,也称为errno。errno2是Python中的一个特定错误代码类型。在本文中,我们将深入了解errno2及其在Pyth…

chatgpt赋能Python-python_errno

Python errno: 什么是errno和它在Python中的应用 在Python编程中,errno是一个非常重要的概念,用于表示系统调用或库函数调用返回的错误代码。在本文中,我们将深入探讨errno是什么,如何在Python中使用它,以及一些常见的…

第3章 TensorFlow进阶

文章目录 第3章 TensorFlow进阶3.1 TensorFlow 的计算模型3.1.1 计算图的工作原理3.1.2 在不同计算图上定义和使用张量进行计算3.2.1 在 GPU 上执行简单的算术运算 3.2 TensorFlow 的嵌入层3.3 TensorFlow 的多层3.4 TensorFlow 实现损失函数3.4.1 softmax 损失函数3.4.1 稀疏矩…

Linux【工具 02】OpenStreetMap数据处理工具OSMCTools下载安装使用举例(osmconvert命令说明)如何获取区域边界说明

OSMCTools安装使用实例 1.Tools2.官网安装步骤3.实际安装步骤3.1 环境3.2 步骤 4.工具使用实例 OpenStreetMap的下载地址:Geofabrik Download Server。 OSMCTools的GitHub地址:https://github.com/ramunasd/osmctools Windows操作系统,可以…

chatgpt赋能Python-python_erf

Python Erf函数 什么是Erf函数? Erf函数也被称为误差函数,是统计学中的一种概率函数,它表示一个随机变量在平均值附近的偏差程度。Erf函数在解决科学问题中非常有用,尤其是在概率论、统计学、物理学等领域。 在Python中如何使用…

【自然语言处理】 - 作业1: Word2Vec及TransE实现

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

Java中的equals和hashCode

目录 equals hashCode equals和hashCode之间的关系 总结 equals equals方法是Object类中用于检测两个对象是否相同的方法,Object类中实现的是两个对象引用是否相同的方法,看以下Object类中代码: public boolean equals(Object obj) {ret…