【问题标题】:Self signed SSL certificate in multiple devices - Is this secure enough?多个设备中的自签名 SSL 证书 - 这是否足够安全?
【发布时间】:2016-11-16 15:59:48
【问题描述】:

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

智能设备:

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

手机应用:

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

  • 连接到 Wifi 热点

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

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


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

【问题讨论】:

  • 我们通过 SSL 套接字以纯文本格式发送二维码 ID。 ...呵呵,但任何应用程序都可以读取它(我的意思是扫描二维码,仅此而已)...那有什么意义呢?因为二维码看起来很漂亮?
  • 每部手机的二维码都是唯一的,只有在手机想要连接智能设备时才会显示。此外,为了成功注册,手机必须与智能设备在同一个 WiFi 网络中

标签: android security ssl mobile tls1.2


【解决方案1】:

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

  • 您在所有设备中使用相同的证书进行身份验证
  • 这意味着所有设备都拥有相同的私钥
  • 这意味着攻击者只需拥有并破解一台设备即可获取所有设备的私钥
  • 这意味着使用此私钥,攻击者现在可以成为与所有其他设备通信的中间人。攻击者还可能创建自己的假设备,这些设备可能会成功攻击客户端,因为客户端只期望使用此证书的行为良好的设备。

这足够安全吗?

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

【讨论】:

    【解决方案2】:

    我假设您的智能设备由某个 IP 地址来区分。

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

    我猜你想说你是在电话应用程序中硬编码服务器证书。 您不应该使用 SSL3。根据行业标准,重点关注 TLS 1.1、1.2。 尽管我想指出,这种架构还不够安全。由于所有智能设备都使用相同的证书,如果证书泄露,每个设备都会受到 MiM 攻击。

    我们需要再次加密还是 SSL 链接足够安全?

    您不需要加密 QR id,因为它们正在通过安全通道。

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 2016-10-30
      • 2017-12-19
      • 2015-09-13
      • 2012-11-13
      • 1970-01-01
      相关资源
      最近更新 更多