Android - 如果公钥泄露,SSL 与公钥固定是否安全?

问题描述 投票:0回答:1

我正在研究在 Android 中实现 SSL 固定的不同方法。 在公钥固定的情况下,大多数指南告诉我们在应用程序中对公钥进行硬编码。 如果攻击者通过对应用程序 APK 进行逆向工程找到公钥,将会发生什么情况。 他能用它进行任何攻击吗?

android ssl man-in-the-middle public-key-pinning
1个回答
0
投票

TLDR:没有。因为公钥(顾名思义)不是秘密。

在公钥加密方案(在 TLS 握手期间使用)中,公钥旨在公开共享。引用维基百科

在公钥加密系统中,任何拥有公钥的人都可以加密消息,产生密文,但只有知道相应私钥的人才能解密密文以获得原始消息。

事实上,在 TLS 握手期间,服务器将其证书(包括其公钥)以明文形式发送给客户端。 “固定”的全部要点是将这个公钥(您作为互联网服务的开发人员和/或提供商提前知道)硬编码到您的应用程序中,以便可以在所述握手期间直接进行比较。

它只是一个强化建议而不是强制步骤的原因是,向上遍历 CAs 链直到到达根 CA 之一的“正常方法”通常被认为是足够安全的。公钥锁定所缓解的攻击向量类型需要大量资源才能实现(例如,通过获得中间 CA 的控制权),这超出了大多数威胁行为者的能力。

© www.soinside.com 2019 - 2024. All rights reserved.