当前位置: 首页 > news >正文

高端企业门户网站建设服务公司做视频网站要注意什么

高端企业门户网站建设服务公司,做视频网站要注意什么,西安网站设计师,农村网站建设的意义架构 Android Keystore API 和底层 Keymaster HAL 提供了一套基本的但足以满足需求的加密基元#xff0c;以便使用访问受控且由硬件支持的密钥实现相关协议。 Keymaster HAL 是由原始设备制造商 (OEM) 提供的动态加载库#xff0c;密钥库服务使用它来提供由硬件支持的加密服…架构 Android Keystore API 和底层 Keymaster HAL 提供了一套基本的但足以满足需求的加密基元以便使用访问受控且由硬件支持的密钥实现相关协议。 Keymaster HAL 是由原始设备制造商 (OEM) 提供的动态加载库密钥库服务使用它来提供由硬件支持的加密服务。为了确保安全性HAL 实现不会在用户空间乃至内核空间中执行任何敏感操作。敏感操作会被分配给通过某个内核接口连接的安全处理器。 最终的架构如下所示 源码分析 源码分析基于Android 9.0 ####AndroidKeyStore服务提供者 应用层调用时provider必须指明为AndroidKeyStore否则默使用的是BC库。 Android KeyStore 是Java 安全框架的一个提供者的实现类名为AndroidKeyStoreProvider.java。 此类中定义了一些引擎类的实现: AndroidKeyStoreSpi 存储服务AndroidKeyStoreKeyPairGeneratorSpi$EC ECC密钥对生成AndroidKeyStoreKeyPairGeneratorSpi$RSA RSA密钥对生成 等等这部分的代码在 /frameworks/base/keystore/java/android/security/keystore/ 这些引擎类的实现内部有一个android.security.KeyStore对象。此对象是一个binder代理。通过binder通信转到系统服务的KeyStoreSerivce。 KeyStoreService服务 服务代码在/system/security/keystore/key_store_service.cpp KeyStoreService 内部持有一个KeyStore对象 代码在/system/security/keystore/KeyStore.cpp KeyStore对象内部持有一个device,此device是KeymasterDevices此对象是三个Keymaster的数组分别对应软实现、TEE实现和SE实现。如果是TEE实现的话keymaster hal 应该就是CA程序。 当系统启动时会加载keymaster hal的实现并把他注册到硬件的servicemanager 中。 keymaster hal keymaster hal的注册这里是安卓模拟器goldfish中的服务注册示例。 Cross Reference: /device/generic/goldfish/keymaster/strongbox/service.cpp int main() {::android::hardware::configureRpcThreadpool(1, true /* willJoinThreadpool */);using android::hardware::keymaster::V4_0::SecurityLevel;using ::keymaster::V4_0::ng::CreateKeymasterDevice;/** Create two software keymaster devices claiming different security levels for testing* purposes. They do not have the certificates of real TEE or Strongbox keymaster devices.*/auto keymaster CreateKeymasterDevice(SecurityLevel::TRUSTED_ENVIRONMENT);auto status keymaster-registerAsService(default);if (status ! android::OK) {LOG(FATAL) Could not register default service for Keymaster 4.0 ( status );}auto strongbox CreateKeymasterDevice(SecurityLevel::STRONGBOX);status strongbox-registerAsService(strongbox);if (status ! android::OK) {LOG(FATAL) Could not register strongbox service for Keymaster 4.0 ( status );}android::hardware::joinRpcThreadpool();return -1; // Should never get here. }keymaster枚举 Cross Reference: /system/security/keystore/keystore_main.cpp KeymasterDevices enumerateKeymasterDevices(IServiceManager* serviceManager) {KeymasterDevices result;serviceManager-listByInterface(Wrapper::WrappedIKeymasterDevice::descriptor, [](const hidl_vechidl_string names) {}) }通过枚举获取keymaster的实现。构造keystore对象。 keymaster hal实现最终通过调用安全环境实现密钥生成、加密解密、签名验签。 keymaster 实现的接口定义如下。厂商只要按照规范要求实现此接口即可。 Cross Reference: /hardware/interfaces/keymaster/3.0/IKeymasterDevice.hal Cross Reference: /hardware/interfaces/keymaster/4.0/IKeymasterDevice.hal Android Keystore 机制总结 Android Keystore 提供安全的密钥管理和加密操作其核心机制涉及多进程协作和跨空间调用。以下是关键组件及其交互流程 重要类与组件 类/组件所在进程运行空间描述android.security.KeyStore应用进程如App进程用户空间应用层API提供密钥生成、存储等接口。开发者通过此类访问Keystore功能。KeyStoreServicekeystore进程用户空间系统服务处理应用请求管理密钥生命周期通过Binder与客户端通信。KeymasterHAL (HIDL接口)厂商HAL进程如vendor.some.process用户空间硬件抽象层接口由厂商实现执行加密操作如密钥生成、签名。内核驱动如/dev/keymaster内核内核空间与硬件安全模块HSM/TEE/StrongBox通信处理安全环境内的敏感操作。 调用流程与通信机制 应用层调用 进程: 应用进程 → keystore 机制: Binder IPC 应用通过 android.security.KeyStore 发起请求如生成密钥。调用通过 Binder 传递至 KeyStoreService运行在 keystore。 系统服务处理 进程: keystore → 厂商HAL进程机制: HIDL/AIDL IPC KeyStoreService 将请求转换为 Keymaster 操作如调用 generateKey。通过 HIDL 接口如 IKeymasterDevice与厂商的 KeymasterHAL 实现通信。 硬件抽象层执行 进程: 厂商HAL进程 → 内核机制: 系统调用ioctl KeymasterHAL 通过 ioctl 调用内核驱动如 /dev/keymaster。驱动将操作转发至安全环境如 TEE 或 StrongBox。 安全环境操作 空间: 内核 → TEE/HSM机制: SMC指令或安全监控调用 内核驱动通过安全机制如 ARM TrustZone 的 SMC触发安全环境内的操作。密钥在安全环境内生成/使用不会暴露到非安全内存。 关键点总结 用户空间与内核空间协作敏感操作如密钥生成最终由安全环境TEE/HSM处理确保密钥不泄露至普通内存。跨进程通信 Binder用于应用与系统服务的高效通信。HIDL/AIDL解耦系统服务与厂商实现支持向前兼容。 安全边界内核驱动作为用户空间与安全环境的桥梁通过严格权限控制保障隔离性。 [应用进程] --Binder-- [keystore进程] --HIDL-- [KeymasterHAL进程] --ioctl-- [内核驱动] -- [TEE/HSM]↑ | || (android.security.KeyStore) | (KeyStoreService) | (厂商实现)用户空间 用户空间 用户空间 内核空间应用代码示例 try {final String KEY_ALIAS myKeyAliasx;KeyStore keyStore;keyStore KeyStore.getInstance(AndroidKeyStore);keyStore.load(null);// 检查密钥是否已存在如果不存在则生成新的密钥对if (!keyStore.containsAlias(KEY_ALIAS)) {//生成密钥KeyGenParameterSpec spec new KeyGenParameterSpec.Builder(KEY_ALIAS,KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY).setDigests(KeyProperties.DIGEST_SHA256).setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PSS).setKeySize(2048).build();KeyPairGenerator keyPairGenerator KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA, AndroidKeyStore);keyPairGenerator.initialize(spec);KeyPair keyPair keyPairGenerator.generateKeyPair();}KeyStore.PrivateKeyEntry privateKeyEntry (KeyStore.PrivateKeyEntry) keyStore.getEntry(KEY_ALIAS, null);PrivateKey privateKey privateKeyEntry.getPrivateKey();KeyFactory factory KeyFactory.getInstance(privateKey.getAlgorithm(), AndroidKeyStore);KeyInfo keyInfo;//获取密钥信息keyInfo factory.getKeySpec(privateKey, KeyInfo.class);if (Build.VERSION.SDK_INT Build.VERSION_CODES.S) {int securityLevel keyInfo.getSecurityLevel();if (securityLevel KeyProperties.SECURITY_LEVEL_TRUSTED_ENVIRONMENT) {System.out.println(key is in trusted environment);} else if (securityLevel KeyProperties.SECURITY_LEVEL_STRONGBOX) {System.out.println(key is in strongbox);} else {System.out.println(key is in software);}} else {boolean insideSecureHardware keyInfo.isInsideSecureHardware();System.out.println(insideSecureHardware insideSecureHardware);}// 签名Signature signature Signature.getInstance(SHA256withRSA/PSS);signature.initSign(privateKey);signature.update(adgfdfd.getBytes(UTF-8));byte[] sign signature.sign();} catch (Exception e) {e.printStackTrace();}
http://www.w-s-a.com/news/886267/

相关文章:

  • 网站建设维护和网页设计做网站都需要服务器吗
  • 成都网站设计报告书系统平台
  • 怎样进行网站推广wordpress微博图床
  • 做一个平台 网站服务器搭建网架公司股价
  • 链家在线网站是哪个公司做的一个虚拟主机做2个网站
  • 网站开发实训报告模板学校网站建设计划
  • 免费手机网站制作方法什么事网站开发
  • 我们的爱情网站制作阿里云wordpress配置
  • 电脑网站页面怎么调大小唐山网站建设技术外包
  • 科威网络做网站怎么样wordpress分页样式
  • 泰安公司网站建设自助建站程序
  • 网站建设工程设计图建网站怎样往网站传视频
  • 做网站月入企业网站建设运营
  • 网站建设中的ftp地址公众号微官网
  • 手机wap网站开发与设计app开发公司电话
  • 网站页脚代码大沥网站开发
  • 重庆网站制作公司 广州天成网络技术有限公司
  • 佛山网站改版wordpress 是否有后门
  • 如何承接网站建设外包wordpress产品布局
  • 洛阳建站洛阳市网站建设视觉设计专业
  • 婚恋网站建设分析网站建设硬件需求
  • 北京做网站电话wordpress如何换图片
  • 电影网站做cpa深圳信息网
  • 单县网站建设优化大师电脑版官网
  • 番禺区住房和建设局物业网站浦东新区网站设计
  • 外贸网站外包WordPress仿牌
  • 如何设计网站logohtml5开发
  • 金坛建设银行总行网站网站开发费用如何记账
  • 贵阳企业网站设计制作湛江知名网站建设电话
  • 网站建设安全性高清效果图网站