前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android系统如何得知硬件安全能力?

Android系统如何得知硬件安全能力?

作者头像
安智客
发布2018-07-30 14:59:28
1.4K0
发布2018-07-30 14:59:28
举报
文章被收录于专栏:安智客

借助系统芯片 (SoC) 中提供的可信执行环境,Android 设备可以为 Android 操作系统、平台服务甚至是第三方应用提供由硬件支持的强大安全服务。

之前如果Android系统中的应用需要使用TEE进行存储、加解密、TUI等等,都是通过Framework-->JNI-->HAL层(CA)-->接口库-->TA流程进行的。随着Android8.0及其后续版本的演化,比如Android本身的keystore机制,将keymaster在TEE中硬件实现。流程首先是keystore服务-->HAL层的服务-->HAL层(CA)-->接口库-->TA。

各部分代码如下:

1,\hardware\interfaces\keymaster\3.0中定义了HAL层的服务机制,适合Android8.0新的架构。

2,HAL层keymaster CA,实现获取硬件TEE支持信息接口函数getHardwareFeatures。

3,keymaster TA实现。

Android系统越来会开放其硬件安全能力,并且系统HAL层增加了获取硬件TEE支持信息接口函数,如下:

getHardwareFeatures() generates(bool isSecure, bool supportsEllipticCurve, bool supportsSymmetricCryptography,bool supportsAttestation, bool supportsAllDigests, string keymasterName,string keymasterAuthorName);

getHardwareFeatures 方法向客户端披露了底层安全硬件的一些重要特征。该方法不需要任何参数,且返回四个布尔值值:

  • 如果密钥始终存储在安全硬件(TEE 等)中,则 isSecuretrue
  • 如果硬件支持采用 NIST 曲线(P-224、P-256、P-384 和 P-521)的椭圆曲线加密,则 supportsEllipticCurvetrue
  • 如果硬件支持对称加密(包括 AES 和 HMAC),则 supportsSymmetricCryptographytrue
  • 如果硬件支持生成使用注入安全环境中的密钥进行签名的 Keymaster 公钥认证证书,则 supportsAttestationtrue

该方法仅可能返回以下错误代码:ErrorCode:OKErrorCode::KEYMASTER_NOT_CONFIGURED 或指示无法与安全硬件通信的错误代码之一。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安智客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档