android - 多个设备中的自签名 SSL 证书 - 这足够安全吗?

标签 android security ssl mobile tls1.2

我们正在尝试设计一个解决方案,让我们拥有多个智能设备,并且我们可以通过多部手机控制每个智能设备。我们将生成一个自签名 SSL 服务器证书并将其嵌入所有智能设备中。我们将在所有手机中包含 SSL 客户端证书。现在为了将手机连接到智能设备,手机需要获得一个ID(可以通过扫描智能设备上的二维码获得 - 这只是为了确保手机在智能设备附近) .

智能设备:

  • 嵌入自签名服务器证书。原因:不依赖 互联网连接
  • 维护 WiFi 热点(不保证互联网连接 总是)
  • 维护已连接电话的列表(每部电话 由手机扫描的 QR 码 ID 识别)

手机应用:

  • 实现证书固定并对客户端证书进行硬编码

  • 连接到 Wifi 热点

  • 与智能设备建立 SSL 连接。

  • 为了第一次注册,它会扫描二维码,然后 随后的连接它发送 QR 代码 ID 以提供其 身份。


能否请您检查一下上述架构并找出其中的任何缺陷?
因为我们在所有智能设备中安装相同的服务器证书,并且在所有手机中安装相同的客户端证书,有没有办法以某种方式破解智能设备?
如果在智能设备和手机之间建立了 SSL 连接,另一台设备(在同一网络上并具有相同的证书)是否能够劫持智能设备和第一部手机之间发送的数据包?
建立安全链接后,我们将通过 SSL 套接字以纯文本格式发送 QR 码 ID。我们是否需要再次加密,或者 SSL 链接是否足够安全?

最佳答案

提出这个问题的一个更好的网站是 security.stackexchange.com。但简而言之:

  • 您在所有设备上使用相同的证书进行身份验证
  • 这意味着所有设备都有相同的私钥
  • 这意味着攻击者拥有并破解单个设备就足以获得所有设备的私钥
  • 这意味着有了这个私钥,攻击者现在可以成为与所有其他设备通信的中间人。攻击者也可能会创建自己的伪造设备,这些设备可能会成功攻击客户端,因为客户端只需要使用此证书的行为良好的设备。

Is this secure enough?

我怀疑。有关如何更好地做到这一点的方法,我建议查看 security.stackexchange.com 上的相关问题,如果您没有找到相关问题,请在那里寻求有关更好设计的建议。

关于android - 多个设备中的自签名 SSL 证书 - 这足够安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636629/

相关文章:

android - Kotlin 是否 100% 支持 Ormlite? (数据类)

ios - iOS 10.3 中证书透明度的 Cordova SSL 错误

php - 我应该使用 PDO 来清理我的 Sql 查询还是 "mysql_real_escape_string"就足够了?

authentication - CA 更新后的客户端证书

ssl - ODataService 类型提供程序错误 : (401) Unauthorized

javascript - Juniper SSL VPN 中的 Angular Web 应用程序路由

java - WebView 无法正确显示网站

android - 如何使用 Activity 类以外的 onActivityResult 方法

java - longBitsToDouble,不进行舍入,是否可以

security - 验证刷新 token 和发布新的不记名 token 的工作流程是什么?