【问题标题】:SSL MITM and java appletSSL MITM 和 java 小程序
【发布时间】:2013-07-30 07:23:05
【问题描述】:

我目前正在开展一个项目,该项目涉及在客户端(浏览器)上构建数字堡垒,以减轻对 SSL 的 PKI 基础设施的中间人攻击。尽管它们有多种可能对 SSL 连接进行中间人攻击,但我的目的是关注 PKI 基础架构的问题,同时还要考虑系统的性能。

在做了一些研究之后,我认为我打算完成以下任务

  1. 通过检查证书的有效期并检查证书的序列号是否存在于 CRL 列表中来确定证书的有效期
  2. 为证书检查禁用 MD5
  3. 确保客户端(浏览器)连接的服务器是真正的服务器。这可以通过 URL 还是通过简单地通过 DNS 查找来实现?因为我认为 URL 和 DNS 在某种程度上也不是安全的。我正在考虑这个网络服务器指纹识别的事情,但我仍然需要一个存储库来检查。我还能用什么??
  4. 证书指纹。它们是否有任何受信任的证书哈希或指纹存储库,我可以查找证书的指纹??。

我还需要检查什么来阻止中间人攻击??

我打算使用嵌入在浏览器中的 java Applet 来处理这个任务,所以我知道如果没有网站的登录页面就不可能连接到 Web 服务器。问题是如何使用我的 Applet 嵌入式页面与服务器建立测试连接只是为了获取服务器的证书,或者更好的是是否可以使用网站的登录页面进行连接并在服务器发送证书后终止 SSL 握手因此,Applet 只需进入证书存储区检索证书并分析证书以防止中间人攻击。

正如我所说,我想使用 java 构建解决方案,因为人们普遍推测 java applet 比 javascripts 更快。并且浏览器扩展主要依赖于平台,这不是 java Applets 的情况。这可以作为绩效标准吗??

【问题讨论】:

    标签: ssl applet


    【解决方案1】:

    通过检查证书的有效期并检查证书的序列号是否存在于CRL列表中来确定证书的有效期

    浏览器已经这样做了。

    为证书检查禁用 MD5

    为什么?如果证书有 MD5 哈希,您必须检查它。删除它如何减轻 MITM 攻击!这没有意义。

    确保客户端(浏览器)连接的服务器是真正的服务器。

    浏览器已经这样做了。它内置于 HTTPS 协议中。

    这可以通过 URL 还是通过简单地通过 DNS 查找来实现?因为我认为 URL 和 DNS 在某种程度上也不是安全的。

    不,不,不,不。

    我正在考虑这个网络服务器指纹识别的事情,但我仍然需要一个存储库来检查。我还能用什么?

    你的问题一开始就没有意义。

    证书指纹。它们是否有任何受信任的证书哈希或指纹存储库,我可以查找证书的指纹?。

    呃,MD5 哈希值,如果你正忙着试图绕过并且数字签名已经完成了它。

    在浏览器中使用小程序来保护浏览器的建议也没有意义。我认为你已经收到了一个没有问题的,很多矛盾的,在某些情况下毫无意义的要求,以及很多关于如何实施它的糟糕建议。

    【讨论】:

    • 为什么?如果证书有 MD5 哈希,您必须检查它。删除它如何减轻 MITM 攻击!这没有意义。对 MD5 的冲突攻击允许攻击者生成完全相同的哈希值,然后他们可以将其附加到具有不同域名的证书上。换句话说,攻击者可以冒充根 CA 并开始颁发证书。我只希望为证书检查启用 SHA2。
    • 浏览器已经这样做了。它内置于 HTTPS 协议中。如果这是正确的,那么为什么 SSL 网络钓鱼攻击是可能的。如果我可以欺骗用户点击看起来像“barclay.co.uk”而不是“barclays.co.uk”的 URL,那么我已经破坏了系统,因为用户会认为他实际上是在连接到服务器所以需要知道您要连接的服务器至关重要。众所周知,DNS 和 URL 无法确定服务器的身份,这就是我考虑对 Web 服务器进行指纹识别以为其创建唯一身份的原因。
    • 建议在浏览器中使用小程序来保护浏览器也没有任何意义。我认为你已经收到了一个没有问题的、很多矛盾的、在某些情况下毫无意义的要求,以及很多关于如何实施它的坏建议。小程序不会保护浏览器,它会在收到证书时检查所有列出的任务。由于性能原因,我正在尝试使用Aplet。所以,我在问使用小程序是否是一个很好的解决方案,它是否比使用扩展更快。
    • (1) 你不需要引用我已经说过的话。 (2) SSL网络钓鱼攻击是可能的,因为用户没有检查他所连接的网站是否不是他所期望的。这是人的问题,不是技术问题,也不是你可以用软件解决的问题。 (3) 您的问题中没有提到“对 Web 服务器进行指纹识别”。 (4) 如果它不起作用,性能是 100% 无关的。您无法衡量无效解决方案的性能。
    • 我对我提出问题的方式感到非常抱歉,这可能是因为我是初学者,所以它含糊不清。您知道,当浏览器尝试在 SSL 握手中通过 SSL 与服务器通信时,我会从服务器获得由证书颁发机构担保的证书。这意味着要存在安全通信,我完全信任我的 CA 来确保安全通信。众所周知,这些 CA 是不可信的,因此我需要在客户端进行额外检查,以确认它是否是实际证书以及来自服务器的真实身份。这就是我打算做的事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2010-10-03
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多