Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何通过HTTPS保护数据免受MITM攻击?_Security_Api_Ssl_Https - Fatal编程技术网

Security 如何通过HTTPS保护数据免受MITM攻击?

Security 如何通过HTTPS保护数据免受MITM攻击?,security,api,ssl,https,Security,Api,Ssl,Https,我正在开发企业API,它可用于企业服务,其中MITM可能会产生可怕的后果 我们决定使用HTTPs而不是HTTP,但在谷歌搜索之后,我明白仅仅使用SSL是不够的 据我所知,使用SSL时存在两个主要漏洞: 1) 现在有很多CA提供商公司,因此没有人受到MITM攻击的保护,黑客使用普通证书(我发现一些文章,其中说VeriSign有秘密部门,为MITM提供秘密服务,当时VeriSign是世界上唯一的CA) 2) 使用ARP缓存时,大多数MITM攻击都是可能的 因此,我暂时只能看到一个解决方案,但不确定它

我正在开发企业API,它可用于企业服务,其中MITM可能会产生可怕的后果

我们决定使用HTTPs而不是HTTP,但在谷歌搜索之后,我明白仅仅使用SSL是不够的

据我所知,使用SSL时存在两个主要漏洞: 1) 现在有很多CA提供商公司,因此没有人受到MITM攻击的保护,黑客使用普通证书(我发现一些文章,其中说VeriSign有秘密部门,为MITM提供秘密服务,当时VeriSign是世界上唯一的CA) 2) 使用ARP缓存时,大多数MITM攻击都是可能的

因此,我暂时只能看到一个解决方案,但不确定它是否是最佳做法: 由于API是内部的,我可以使用以下内容: 1) 用对称加密算法加密数据 2) 限制能够使用API的IP(如在应用程序中,如在服务器防火墙中)

这够了吗?也许还有其他最佳实践可以实现真正安全的连接,这将使MITM变得不可能

如果这个解决方案(SSL+对称加密算法)还可以,您能为这类问题提供最合适的加密算法吗

提前感谢,, 我很乐意接受任何帮助/建议

UPD:VPN(由frenchie提出建议)不适用于这种情况


UPD2:公开私钥(类似RSA)是可能的(thx 2 Craigy),但在服务器端非常昂贵。

如果您想防御,那么使用对称密钥加密可以防止数据被第三方泄露,这是正确的。但是,您将面临密钥分发问题,这也是非对称密钥加密吸引人的原因之一

为了在您的网络上使用非对称密钥加密的同时抵御MITM攻击,您可以设置自己的。您将设置并管理一个并禁用所有其他的,这样就没有人可以假装是其他人,从而防止MITM攻击。如果CA被破坏,那么MITM攻击将再次成为可能

为了确保我们的观点一致,这些建议是独立于实现的。第一个建议你可以用任何一个

对于第二个建议,您需要一个更复杂的系统,称为不对称或。这些都是建立在这样的算法之上的

是一种协议,使用公钥加密进行密钥交换,使用对称加密发送消息

我们决定用HTTPs代替HTTP,但在谷歌搜索之后,我 理解仅SSL是不够的

我不确定你在谷歌上搜索到了什么,但是SSL/TLS,如果使用正确,可以保护你免受MITM攻击

如果此解决方案(SSL+对称加密算法)正常,则可以 请为这种类型的加密提供最合适的加密算法 问题

SSL/TLS中的加密已经使用对称加密完成。只有身份验证是通过非对称加密完成的

据我所知,使用SSL时存在两个主要漏洞: 1) 现在有很多CA提供商公司,所以没有人受到保护 来自MITM攻击,破解者使用普通证书(i 找到一些文章,据说VeriSign有秘密 当VeriSign为MITM提供秘密服务时 是全球唯一的CA)2)大多数MITM攻击都有可能 使用ARP缓存中毒

保护免受MITM攻击正是证书的目的。客户端全权负责(a)检查预期使用的HTTPS,以及(b)检查服务器证书的有效性

第一点可能很明显,但这是像sslstrip这样的工具所做的攻击:它们是阻止用户访问HTTPS页面的MITM降级攻击。作为一个用户,请确保您处于HTTPS页面上,而该页面应为HTTPS。在公司环境中,告诉您的用户他们必须检查他们是否通过HTTPS访问您的服务器:只有他们知道(除非您也想使用客户端证书身份验证)

第二点(证书验证)也取决于客户机,尽管大部分验证是在浏览器中自动完成的。用户有责任不忽略浏览器警告。其余的证书验证往往通过预安装的CA证书(如Verisign)完成

如果发生了MITM攻击(可能是通过ARP中毒),则用户应获得不正确的证书,并且不应继续。正确的HTTPS验证应该允许您拥有安全连接或根本没有连接

您提到的漏洞与证书验证(PKI模型)有关。实际上,验证服务器证书是否正确取决于浏览器信任的CA证书。原则上,任何受信任的CA都可以为任何服务器颁发证书,因此该模型是列表中最薄弱的CA。如果一个受信任的CAs为一个站点颁发假证书并将其提供给另一方,这就相当于让一个护照办公室颁发一个真正的“假”护照。这是相当棘手的对抗,但有办法绕过它

  • 您可以依赖诸如的扩展,它监视证书更改,即使两者都是可信的。此类警告应提示用户调查证书更改是否合法(由您的公司进行)

  • 更彻底地说,您可以部署自己的CA,从用户浏览器中删除所有受信任的CA证书,并只安装自己的CA证书。在这种情况下,用户将只能安全地连接到具有CA颁发的证书的计算机。这可能是一个问题(如果浏览器使用OS证书存储库,则包括软件更新)

  • <