•使用可用的平台功能•充当加密抽象层•为客户端应用程序提供了一个统一的标准化接口@GloBalplatform:
[1] Intel:Intel软件后卫(Intel SGX),https://www.intel.com/content/www/us/en/products/ docs/accelerator-eengerator-eengerator-eengines/offect-guard-extensions。html。[2] AMD:AMD安全加密虚拟化(SEV),https://www.amd.com/ja/developer/sev.html。[3] ARM:Cortex-A用Trustzone,https://www.arm.com/ja/technologies/trustzone-for-cortex-a。[4] Keystone:用于架构T恤的开放框架,https://keystone-enclave.org/。[5]值得信赖的固件:op-tee,https:// www。trusted firmware.org/projects/op-tee。[6]开放式:open-tee,https://open-tee.github.io/。[7] Google:可信赖的T恤 - Android开源项目,https://source.android.com/docs/security/features/features/trusty?hl = ja。[8] Cerdeira,D.,Martins,J.,Santos,N。和Pinto,s。:区域:第31届USENIX Security Security Enmposium,PP。2261–2279(2022)。[9] GlobalPlatform:GlobalPlatform主页,https:// globalplatform.org/。[10] GlobalPlatform:GlobalPlatform技术TEE核心API规范版本1.3.1(2021)。[11] GlobalPlatform:GlobalPlatform设备技术TEE客户API规范版本1.0(2010)。[12] Menetrey,J。,Pasin,M.,Felber,P。和Schiavoni,V。:WATZ:可信赖的WebAssembly运行时环境,具有Trustzone的远程证明,第2022 IEEE 42届国际分布式计算系统的国际会议(2022222)。[13] op-tee:optee OS在4.0.0,https://github.com/ op-tee/optee/optee OS/tree/4.0.0。[14]运算:受信任的应用程序,https:// optee。readthedocs.io/en/latest/building/trusted应用程序。html。[15] QEMU:QEMU-通用和开源机器模拟器和虚拟机,https://www.qemu.org/。[16] Arnautov,S.,Trach,B.,Gregor,F.,Knauth,T.,Martin,A.,Priebe,C.,Lind,J.,Muthukumaran,D. Intel SGX,第12 USENIX操作系统设计和实施研讨会,pp。689–703(2016)。[17] Tsai,C.,Porter,D。E.和Vij,M。:石墨烯-SGX:用于SGX上未修改应用程序的实用库OS,2017年USENIX年度技术会议,pp。645–658(2017)。[18] Shen,Y.,Tian,H.,Chen,Y.,Chen,K.,Wang,R.,Xu,Y.[19] Wasix:Wasix- Wasi的超集,https:// wasix。org/。[20] Ramesh,A.,Huang,T.,Titzer,B。L.和Rowe,A。:停止隐藏锋利的刀:WebAssembly Linux interface,arxiv.org e-Print Archive,arXiv:2312.03858v1(2023)。
1简介1 1.1 pysim-shell。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1 1.1.1视频演示。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2 1.1.2运行Pysim-shell。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2 1.1.3用法示例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4 1.1.4高级主题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 1.1.5 CMD2基础知识。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 1.1.6 pysim命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 1.1.7 ISO7816命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。17 1.1.8 TS 102 221命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。21 1.1.9线性固定EF命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。23 1.1.10透明的EF命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。25 1.1.11 ber-tlv ef命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。27 1.1.12 USIM命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28 1.1.13特定文件命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。29 1.1.14 UICC管理命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。30 1.1.15 ARA-M命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。33 1.1.16 GlobalPlatform命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。35 1.1.17 EUICC ISD-R命令。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。40 1.1.18 CMD2可设置参数。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。47 1.2 Pysim-trace。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 48 1.2.1演示。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。47 1.2 Pysim-trace。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48 1.2.1演示。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48 1.2.2运行Pysim-Trace。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 48 1.2.3 Pysim-Trace命令行参考。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 48 1.2.4约束。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。48 1.2.2运行Pysim-Trace。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48 1.2.3 Pysim-Trace命令行参考。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 48 1.2.4约束。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。48 1.2.3 Pysim-Trace命令行参考。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。48 1.2.4约束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>48 1.3旧工具。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>49 1.3.1 Pysim-Prog。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>49 1.3.2。 Pysim-Reads。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。。。。。。。。。。。。。。。。。。。。。。。。。。。。52 1.4 Pysim库。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。54 1.4.1 PYSIM文件系统抽象。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 54 1.4.2 Pysim命令摘要。 。 。 。 。54 1.4.1 PYSIM文件系统抽象。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。54 1.4.2 Pysim命令摘要。 。 。 。 。54 1.4.2 Pysim命令摘要。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。65 1.4.3 Pysim运输。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 71 1.4.4 PYSIM实用程序功能。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 75 1.4.5 PYSIM例外。 。 。 。 。 。 。 。 。65 1.4.3 Pysim运输。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。71 1.4.4 PYSIM实用程序功能。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。75 1.4.5 PYSIM例外。。。。。。。。。。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>78 1.4.6 Pysim Card_handler。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 79 1.4.7 Pysim Card_key_provisbid。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 79 1.5 OSMO-SMDPP。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div>78 1.4.6 Pysim Card_handler。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>79 1.4.7 Pysim Card_key_provisbid。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 79 1.5 OSMO-SMDPP。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div> 。 div>79 1.4.7 Pysim Card_key_provisbid。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>79 1.5 OSMO-SMDPP。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>81 1.5.1运行OSMO-SMDPP。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>81 1.6 SIM-REST服务器。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>83 1.6.1 REST API调用。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>。 div>83 div>
不幸的是,我们的研究表明,此API标准容易出现设计弱点。这种弱点的表现形式导致TEE的现实世界用户空间应用程序中的关键类型连接错误,称为受信任的应用程序(TAS)。在其核心上,设计弱点由打开的设计组成,留下可选类型的检查,以获取不受信任的数据以进行开发。API并未要求此易于忘记的检查,该检查在大多数情况下会导致任意阅读和写作原始原始图。为了检测这些类型连接错误的实例,我们设计并实施了GPCheck,这是一个静态的二进制肛门系统,能够审查真实世界TAS。我们采用GPCHECK来分析14,777个TA在广泛使用的T台上部署,以调查问题的流行。我们侦察已知的错误,这些错误拟合了这种模式并发现野外问题的未知实例。总共确定了9个已知的错误,发现了10个默默固定错误的实例,并使用我们的GPCHECK原型发现了14个关键的0天弱点。我们的发现会影响数十亿用户目前正在使用的移动设备。我们负责任地披露了这些发现,已经收到了12,000美元作为Bug Bounty,并被分配了四个CVE。我们14个关键的0天漏洞中的十个仍处于负责任的披露过程中。最后,我们提出了GP内部核心API规范的扩展,以实施一种故障安全机制,以消除潜在的设计弱点。我们在Optee上实施并成功地证明了我们的缓解措施,这是一个开放源TEE实现。我们与GlobalPlatform共享了我们的发现,并建议缓解我们的规范以确保未来的TEE实施。
不幸的是,我们的研究表明,此API标准容易出现设计弱点。这种弱点的表现形式导致TEE的现实世界用户空间应用程序中的关键类型连接错误,称为受信任的应用程序(TAS)。在其核心上,设计弱点由打开的设计组成,留下可选类型的检查,以获取不受信任的数据以进行开发。API并未要求此易于忘记的检查,该检查在大多数情况下会导致任意阅读和写作原始原始图。为了检测这些类型连接错误的实例,我们设计并实施了GPCheck,这是一个静态的二进制肛门系统,能够审查真实世界TAS。我们采用GPCHECK来分析14,777个TA在广泛使用的T台上部署,以调查问题的流行。我们侦察已知的错误,这些错误拟合了这种模式并发现野外问题的未知实例。总共确定了9个已知的错误,发现了10个默默固定错误的实例,并使用我们的GPCHECK原型发现了14个关键的0天弱点。我们的发现会影响数十亿用户目前正在使用的移动设备。我们负责任地披露了这些发现,已经收到了12,000美元作为Bug Bounty,并被分配了四个CVE。我们14个关键的0天漏洞中的十个仍处于负责任的披露过程中。最后,我们提出了GP内部核心API规范的扩展,以实施一种故障安全机制,以消除潜在的设计弱点。我们在Optee上实施并成功地证明了我们的缓解措施,这是一个开放源TEE实现。我们与GlobalPlatform共享了我们的发现,并建议缓解我们的规范以确保未来的TEE实施。