Android Key/Trust Store研究+ssl证书密钥

前言:软件搞环境涉及到了中间件thal trustzone certificate key,翻译过来是thal信任区域证书密钥 ,不明白这是什么,学习一下

ssl证书密钥

SSL密钥是SSL加密通信中的重要组成部分。SSL证书通过加密算法生成,用于保护网络通信的安全性和私密性。密钥是一种密码学算法中的关键元素,用于加密和解密敏感信息。在SSL通信过程中,使用可信的证书导入和加载密钥,确保数据加密和解密的安全性。

SSL证书密钥采用公钥加密算法,这意味着加密和解密使用的是不同的密钥。公钥用于数据加密,而私钥用于数据解密。公钥可以公开分发,而私钥必须严格保密,仅用于解密。这种非对称加密方式保证了通信的安全性,即使公钥被泄露,也无法破解私钥。

SSL证书密钥的生成过程非常复杂且具有极高的安全性。一般情况下,证书申请者需要向颁发机构提供相关的身份证明材料。颁发机构根据这些材料生成证书,并在证书中包含公钥和其他相关信息。私钥则在生成证书时由证书申请者保管,确保只有合法的用户能够访问私钥。

SSL证书密钥的重要性不言而喻。它不仅可以确保数据传输过程中的安全性,还可以用于验证服务器的身份。当客户端与服务器建立SSL连接时,服务器会向客户端发送证书。客户端通过验证证书中的公钥和其他信息来判断服务器的真实性和合法性。只有验证通过的服务器才能与客户端进行安全的数据交换。

正因为SSL证书密钥的重要性,任何有意破坏网络安全的恶意行为都会试图获取密钥。因此,保护好密钥的安全性成为了网络安全的重要任务之一。合理的密钥管理措施可以有效避免密钥泄露和私钥被盗用的风险。同时,定期更换证书和密钥也是一种增加安全性的有效方式,以防止已被破解的证书或密钥被滥用。

总之,SSL证书密钥是确保网络通信安全和私密性的关键要素。它采用公钥加密算法,保护数据传输过程中的安全性,并用于验证服务器的身份。密钥的生成过程复杂且安全,需要合理的密钥管理措施来保护其安全性。通过合理使用和保护SSL证书密钥,可以确保网络通信的安全和可靠性

先做个扫盲科普:

ARM TrustZone是什么?

ARM TrustZone是一种硬件和软件的安全解决方案,用于提供更高级别的系统安全性。它是由ARM公司开发的一项技术,旨在通过将处理器资源划分为两个不同的安全域,即安全世界(Secure World)和普通世界(Normal World),实现敏感数据和关键代码的隔离和保护。

在TrustZone中,处理器运行在两个不同的状态下:安全状态和非安全状态。安全状态下的代码和数据受到严格的保护,只能被受信任的应用程序或操作系统访问。非安全状态下的代码和数据可以被普通应用程序和操作系统访问。

TrustZone提供了以下功能:

  • 安全启动:验证引导加载程序和操作系统的完整性,确保系统启动的可靠性。
  • 安全分区:将系统资源划分为安全域和普通域,确保敏感数据和关键代码的隔离和保护。
  • 安全通信:提供安全的通信机制,确保安全域和普通域之间的通信不受恶意攻击影响。
  • 安全监控:监测系统状态和行为,检测潜在的安全威胁,并采取相应的安全防护措施。

TrustZone技术被广泛应用于移动设备、物联网设备和其他需要高级安全性的系统中,以保护用户的隐私和敏感数据。

Android Key/Trust Store研究

Android Key/Trust Store是系统全局的Key/Trust Store。虽然Android符合JCE/JSSE规范,但是Android平台的实现和一般PC机上的实现有很大不同。

我们先来看KeyStore的架构,
在这里插入图片描述

  • 一个APP有两种方式和Android Keystore交互。一种是利用JCE的KeyStore接口,并强制使用“AndroidKeyStore“作为Provider的名字。这样,JCE就会创建AndroidKeyStore对象。当然,这个对象也就是个代理,它会创建另外一个KeyStore对象。这个KeyStore就是android.security.KeyStore。虽然名字一样,但是包名却不同,这个是android特有的。
  • 另外一条路是使用Android提供的KeyChain API。KeyChain我觉得从“Key和CertificatesChain的意思”来理解KeyChain的命名可能会更加全面点。KeyChain会和一个叫KeyChainService的服务交互。这个KeyChainService又是运行在“keychain“进程里的。keychain进程里也会创建android.security.KeyStore对象。
  • 再来看android.security.KeyStore(以后简称AS Store,而JCE里的,我们则简称JSStore)。好吧,binder无处不在。AS(AndroidSecurity) Store其实也是一个代理,它会通过binder和一个native的进程“keystore“交互。而keystore又会和硬件中的SEE(Security Element Enviroment)设备交互(ARM平台几乎就是Trust Zone了)。高通平中,SEE设备被叫做QSEE。keystore进程会加载一个名叫“libQSEEComAPI.so”的文件。

为什么要搞这么复杂?

  • KeyChain其实简化了使用。通过前面的例子大家可以看到,JCE其实用起来是很麻烦的,而且还要考虑各种Provider的情况。而且,通过KeyChain API能使用系统级别的KeyStore,而且还有对应的权限管理。比如,不是某个APP都能使用特定alias的Key和Chain的。有一些需要用户确认。
  • 而更重要的功能是把硬件key managment功能融合到AS Keystore里来了。这在普通的JCE中是没有的。硬件级别的KM听起来(实际上也是)应该是够安全的了:)

关于SEE和TrustZone,见下面的图:
在这里插入图片描述TrustZone示意图

简单点看,ARM芯片上其实跑了两个系统,一个是Android系统,另外一个是安全的系统。Android系统借助指定的API才能和安全系统交互。

参考资料:
1、https://www.wenjiangs.com/doc/pouvrxeviq7b
2、http://research.microsoft.com/en-us/um/people/alecw/asplos-2014.pdf
3、http://www.ti.com.cn/cn/lit/wp/spry228/spry228.pdf
4、http://cache.freescale.com/files/32bit/doc/white_paper/QORIQSECBOOTWP.pdf

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

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

相关文章

Oracle 11g RAC部署笔记

搭了三次才搭好,要记录一下。 1. Oracle 11g RAC部署的相关步骤以及需要的包,可以参考这里。 Oracle 11g RAC部署_12006142的技术博客_51CTO博客Oracle 11g RAC部署,Oracle11gRAC部署操作环境:CentOS7.4Oracle11.2.0.4一、主机网…

解决老版本Oracle VirtualBox 此应用无法在此设备上运行问题

问题现象 安装华为eNSP模拟器的时候,对应的Oracle VirtualBox-5.2.26安装的时候提示兼容性问题,无法进行安装,具体版本信息如下: 软件对应版本备注Windows 11专业工作站版22H222621eNSP1.3.00.100 V100R003C00 SPC100终结正式版…

利用优化算法提高爬虫任务调度效率

目录 一、任务调度优化的重要性 二、选择合适的优化算法 三、建立任务调度模型 四、设计适应性函数 五、算法实施和调优 六、性能评估和优化结果分析 代码示例 总结 随着网络信息的爆炸式增长,网络爬虫在信息获取和数据挖掘等领域的应用越来越广泛。然而&am…

Arduino程序设计(十一)8×8 共阳极LED点阵显示(74HC595)

88 共阳极LED点阵显示 前言一、74HC595点阵模块1、74HC595介绍2、74HC595工作原理3、1088BS介绍4、74HC595点阵模块 二、点阵显示实验1、点阵显示初探2、点阵显示进阶3、点阵显示高阶3.1 点阵显示汉字(方法1)3.2 点阵显示汉字(方法2&#xff…

conda的安装和使用

参考资料: https://www.bilibili.com/read/cv8956636/?spm_id_from333.999.0.0 https://www.bilibili.com/video/BV1Mv411x775/?spm_id_from333.999.0.0&vd_source98d31d5c9db8c0021988f2c2c25a9620 目录 conda是啥以及作用conda的安装conda的启动conda的配置…

2023华为杯D题——基于Kaya模型的碳排放达峰实证研究

一、前言 化石能源是推动现代经济增长的重要生产要素,经济生产活动与碳排放活动密切相关。充分认识经济增长与碳排放之间的关系对转变生产方式,确定碳达峰、碳中和路径极为必要。本研究在对经济增长与碳排放关系现有研究梳理的基础上,系统地分…

【二叉树魔法:链式结构与递归的纠缠】

本章重点 二叉树的链式存储二叉树链式结构的实现二叉树的遍历二叉树的节点个数以及高度二叉树的创建和销毁二叉树的优先遍历和广度优先遍历二叉树基础oj练习 1.二叉树的链式存储 二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑…

23. 图论 - 图的由来和构成

文章目录 图的由来图的构成Hi, 你好。我是茶桁。 从第一节课上到现在,我基本上把和人工智能相关的一些数学知识都教给大家了,终于来到我们人工智能数学的最后一个部分了,让我们从今天开始进入「图论」。 图论其实是一个比较有趣的领域,因为微积分其实更多的是对应连续型的…

iOS——KVC(键值编码)

键值编码(KVC) KVC(Key Value Coding)是一种允许以字符串形式间接操作对象属性的方式。 最基本的KVC是由NSKeyValueCoding协议提供支持,最基本的操作属性如下: setValue: 属性值 forKey: 属性名&#xff…

微信小程序之项目基本结构、页面的基础及宿主环境

文章目录 前言一、基本组成结构基本组成小程序页面的组成部分JSON配置文件作用 二、页面基础pagesWXML和HTML的区别WXSS和CSS的区别小程序中js文件分类 三、小程序宿主环境总结 前言 微信小程序的项目基本结构、页面的基础及宿主环境 一、基本组成结构 基本组成 新建一个微信…

迁移 MySQL 数据到 OceanBase 集群

使用 mysqldump 将 mysql的表结构和数据同步到 OceanBase 的MySQL 租户中 Mysql数据库导出 mysqldump -h127.0.0.1 -P3306 -uroot –p --single-transaction --hex-blob --routines --events --triggers --set-gtid-purgedOFF --databases teller >teller.sql mysql> …

网络编程day05(IO多路复用)

今日任务&#xff1a; TCP多路复用的客户端、服务端&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> …

网络隔离下实现的文件传输,现有的方式真的安全吗?

在当今的信息化时代&#xff0c;网络安全已经成为了各个企业和机构不可忽视的问题。为了保护内部数据和系统不受外部网络的攻击和泄露&#xff0c;一些涉及国家安全、商业机密、个人隐私等敏感信息的企业和机构&#xff0c;通常会对内外网进行隔离&#xff0c;即建立一个独立的…

Xilinx FPGA 7系列 GTX/GTH Transceivers (4) Aurora 8b10b 递增数收发验证

第一节:Xilinx FPGA 7系列 GTX/GTH Transceivers (1)–了解了GTX硬件的基础知识 第二节:IBERT GTX --通过Ibert IP测试链路通信 第三节:aurora 8b10b single lane 4byte–学习官方历程 递增数验证 自行编写data_gen和data_check 验证aurora 8b10b SFP 1.25G 收发正确。 组…

CentOS在应用程序菜单中创建快捷方式

背景&#xff1a; 在CentOS系统中&#xff0c;安装一些应用软件的时候&#xff0c;我们可能会自定义安装路径&#xff1b;这样在安装完应用程序后&#xff0c;在“Application”下&#xff0c;可能找不到对应的快捷键&#xff1b;这是就需要手动去创建跨界方式。 应用&#xf…

CNN(九):Inception v3算法实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 1 理论基础 Inception v3论文 Inception v3由谷歌研究员Christian Szegedy等人在2015年的论文《Rethinking the Inception Architecture f…

ubuntu samba文件共享服务器搭建

目的&#xff1a; 为了实现Android源码在ubuntu的编译&#xff0c;在windows上进行源码的修改和验证&#xff0c;需要在ubuntu系统上搭建共享文件夹&#xff0c;这里将ubuntu的/home/用户/路径下的所有内容共享&#xff0c;方法如下 ubuntu端&#xff1a; 一、samba安装 sud…

【暴力DP】CF1409 F

Problem - F - Codeforces 题意&#xff1a; 思路&#xff1a; 首先有个很明显的结论是&#xff1a;替换的字符一定是那两个字符之一 那么替换成哪个字符贡献更大不确定&#xff0c;因此考虑DP 因为有操作次数限制&#xff0c;直接把操作放进状态里 为了计算贡献&#xff…

机器学习第十一课--K-Means聚类

一.聚类的概念 K-Means算法是最经典的聚类算法&#xff0c;几乎所有的聚类分析场景&#xff0c;你都可以使用K-Means&#xff0c;而且在营销场景上&#xff0c;它就是"King"&#xff0c;所以不管从事数据分析师甚至是AI工程师&#xff0c;不知道K-Means是”不可原谅…

spring:实现初始化动态bean|获取对象型数组配置文件

0. 引言 近期因为要完成实现中间件的工具包组件&#xff0c;其中涉及要读取对象型的数组配置文件&#xff0c;并且还要将其加载为bean&#xff0c;因为使用了spring 4.3.25.RELEASE版本&#xff0c;很多springboot的相关特性无法支持&#xff0c;因此特此记录&#xff0c;以方…