如何确定加密加速是否可用?

时间:2018-03-13 17:53:41

标签: android cryptography android-keystore

除非加速硬件密钥库(如三星的S8),否则在Android上使用硬件支持的密钥库的速度很慢。有an Android API来检测Key是否存储在安全硬件中,当它从API级别23开始被放入Android KeyStore时,但是我错过了要检测的API如果密钥库是硬件加速的。有这样的事吗?

基本原理:如果用户拥有(快速)软件密钥库或加速硬件支持的密钥库,则可以提示用户选择更长的密钥长度(例如,对于RSA密钥为4096),而在非加速,慢速硬件上支持密钥库的密钥大小更合适。

1 个答案:

答案 0 :(得分:1)

Android Compatibility Definition Document (CDD) for Android 8.1Fingerprint Sensor [C-1-6] 到'必须'有一个Trusted Execution Environment (TEE)

CDD中对Keys and Credentials的其他引用意味着存在硬件支持的安全元素,但并不一定意味着加密性能是硬件加速的。

请注意,在较早的Android CDD 6.0 - Keys and Credentials中,除非有指纹传感器,否则强烈建议使用TEE。

请注意,由于全磁盘加密等功能似乎使用预定义的密钥长度,因此我不确定您的长密钥长度创建映射的特定用例是否可以保护存储功能。