Android P 加密程序变更

在 3 月 8 日,我们发布了 Android P 的首个开发者预览版,看到开发者们非常积极地响应,在此感谢大家及时反馈的建议和问题,小编已经将大家的反馈收集并提交给 Google 相关技术工程师。期待与你们有更多的互动,一起创建更加美好、健康的 Android 生态。

本文将给大家做个特别说明,由于我们计划对 Android P 中的加密功能进行一些反向不兼容的改动,其改动内容在开发者预览版中也有体现。

提供程序变更

从 Android P 开始,对于 AndroidOpenSSL (也称为 Conscrypt) 提供程序所重复的、来自于 BC 提供程序的部分功能,我们计划将予以弃用。

此改动仅会影响在调用 getInstance() 方法时明确指定 BC 提供程序的应用程序。

需要说明的一点是,我们此举的目的不是因为对 BC 提供程序的实施安全存在疑虑,而是因为重复功能会造成额外的成本和风险,却无法带来太多益处。

如果您在 getInstance() 调用中不会指定提供程序,则无需做出任何改动。

如果您按名称或实例指定提供程序 - 例如,Cipher.getInstance("AES/CBC/PKCS7PADDING", "BC") 或 Cipher.getInstance("AES/CBC/PKCS7PADDING", Security.getProvider("BC")) - 则 Android P 的行为将取决于您应用的目标 API 级别。

对于目标级别早于 P 的应用,调用会返回 BC 实施方法,并在应用日志中记录警告。对于目标级别为 Android P 或之后版本的应用,调用会抛出 NoSuchAlgorithmException。

为了解决此问题,您需要停止指定提供程序,并使用默认实施方法。

在后续的 Android 版本中,我们计划完全移除 BC 提供程序的弃用功能。在移除后,所有请求 BC 提供程序的调用 (不论按名称还是实例) 都会抛出 NoSuchAlgorithmException。

移除 Crypto 提供程序

在先前的帖子中,我们曾宣布自 Android Nougat 开始弃用 Crypto 提供程序。

此后,以 API 23 (Marshmallow) 或更早级别为目标的应用程序请求 Crypto 提供程序会成功,但以 API 24 (Nougat) 或之后级别为目标的应用程序请求则会失败。

在 Android P 中,我们计划完全移除 Crypto 提供程序。在移除后,所有对 SecureRandom.getInstance("SHA1PRNG", "Crypto") 的调用都会抛出 NoSuchProviderException。

请大家对自己的应用进行相应更新。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

自动化测试如何解决验证码的问题

对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使...

29280
来自专栏安智客

Keystore的技术演进之路

Android提供的keystore功能发展历程伴随着Android版本不断演进。 ? 从 Android 6.0 之前的版本中,Android已有一个非常简单...

49250
来自专栏ascii0x03的安全笔记

使用mitmproxy嗅探双向认证ssl链接——嗅探AWS IoT SDK的mqtts

亚马逊AWS IoT使用MQTTS(在TLS上的MQTT)来提供物联网设备与云平台直接的通信功能。出于安全考虑,建议给每个设备配备了证书来认证,同时,设备也要安...

42950
来自专栏FreeBuf

针对近期“博全球眼球的OAuth漏洞”的分析与防范建议

据Cnet报道,新加坡南洋理工大学一位名叫Wang Jing的博士生,发现了OAuth和OpenID开源登录工具的“隐蔽重定向”漏洞(Covert Redire...

220100
来自专栏idealclover的填坑日常

从零开始折腾博客(5):全站从http升级到https

HTTPS=HTTP+SSL,简单讲是HTTP的安全版,即HTTP下加入SSL层。相比HTTP,HTTPS提供了内容加密,身份认证,数据完整性的功能,可以有效地...

27830
来自专栏性能与架构

模拟利用Redis入侵系统

昨天的文章写了系统被黑过程,原因是redis安全配置没做好,让黑客轻松通过redis设置了ssh免密码登陆,从而成功入侵 对这个攻击过程有点好奇,就查了下相关...

38270
来自专栏云计算教程系列

如何在Ubuntu 14.04上为SSH设置多重身份验证

一个认证因素是单件的使用信息,以证明你有权要执行的操作,如登录到系统中。的认证信道是认证系统提供了一个因子给用户或要求用户回答的方式。密码和安全令牌是身份验证因...

13500
来自专栏java达人

JWT VS Session

作者:Prosper Otemuyiwa 译者:java达人 来源:https://ponyfoo.com/articles/json-web-tokens-...

47560
来自专栏FreeBuf

OLEOutlook利用:一封邮件绕过所有企业安全防控

在本文中,我会向大家展示如何通过Email将一个可执行文件嵌入到公司网络。伪装成一份Word文档,绕过防火墙,目前该问题还没有任何补丁发布! ? 今天早些时候,...

211100
来自专栏SpringBoot 核心技术

OAuth 2和JWT - 如何设计安全的API?

65420

扫码关注云+社区

领取腾讯云代金券