- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设受信任的根 CA 受到威胁/被迫生成欺诈性 SSL 证书。此类证书能够实现什么,特别是关于 MITM 类型的攻击?
例如,以 Facebook 为例,如果我去那里,我会得到 (1) 一把挂锁,(2) 一张由 DigiCert 签名的证书,以及 (3) 我可以检查 SHA 指纹匹配某个值 81:AB:etc。
我的假设是,如果 DigiCert 是受感染的 CA,那么可以生成匹配 1、2 和 3 的假证书,对吗? SSL 安全模型中是否还有其他任何东西可以使伪造证书与实际颁发给 Facebook 的真实 SSL 证书区分开来?或者任何其他允许基于此证书检测 MITM 类型攻击的东西?
我的第二个假设是,如果 DigiCert 以外的 CA 是受感染的 CA,那么可以生成假证书,但上面不会写“DigiCert”,并且在 SHA key 方面不匹配?这是正确的,还是有可能(纯粹从技术角度来看)根 CA 创建一个证书来冒充另一个根 CA?如果是这样,是否还有其他方法可以检测连接是否已使用此假证书加密?另一个 CA 是否可以创建一个显然具有相同 SHA key 的证书?
这个问题的灵感来自英国即将出台的“窥探者宪章”,该宪章将赋予当局多项监视数字通信的权力。关键是这种权力在加密方面可能会有多大用处,因为有人谈论使用“黑匣子”执行深度数据包检查来收集提供商(例如 Facebook)可能不会选择与英国政府共享的信息。我的猜测是这样的技术是不可能的(当然不是我希望的 DPI!)但是我不太清楚伪造证书和 MITM 攻击的可能性。我猜如果只是出于政治原因,假设精通技术的客户可以检测到假证书,就不会尝试这样做。
最佳答案
如果攻击者可以强制合法的根 CA 生成欺诈性的 TLS/SSL 证书,他们就可以使用这些证书来冒充该用户。这就是为什么 Superfish 问题如此重要。根 CA 没有受到损害,而是他们在将它们出售给客户之前将自己的根 CA 添加到一堆机器中。这使他们能够在用户不知情的情况下对所有流量进行中间人攻击。
还有一些特殊的保护措施可以防止这种情况发生。
其中一种保护措施是 HTTP 公钥固定 (HPKP)。您可以插入一个 header ,指定您的网站公钥和其中一个根 CA 的公钥。浏览器将存储此列表,并将终止与此不匹配的任何连接。因此,如果您尝试中间人攻击我与 Facebook 的连接(如果他们使用 HPKP),我的浏览器将抛出错误并且不允许请求通过。
通过在 HPKP 中指定根 CA,它表示只有该根 CA 才能签署您的证书。如果您在 HPKP 中指定了 DigiCert,您的浏览器将不会接受由 Comodo 签署的证书。
在胖客户端或移动应用程序中,您可以执行类似的操作,称为证书固定。基本上在开发应用程序时,您可以指定服务器需要返回什么证书。如果未指定该证书,请求将失败。您还可以指定证书必须由特定根 CA 签名。
还有一种称为在线证书状态协议(protocol) (OSCP) 的协议(protocol)。浏览器将向根 CA 发出额外请求以验证证书的状态。这将检查它是否被撤销。这取决于您对 rootCA 的破坏程度。如果您的伪造证书未通过 OSCP 验证,浏览器有望通知用户。
我不确定您所说的拥有正确的 SHA key 是什么意思。 SHA1 和 SHA2 是散列算法,没有 key 。证书通常有两个使用 SHA 算法的东西。首先,它们将包含证书签名。这通常是证书内容的 SHA2,然后由根 CA 签名。该证书还包含一个指纹,它是整个证书的 SHA。更改证书的任何内容都会更改它的指纹。但是,您需要另一种通信方式才能知道预期的指纹是什么。
关于security - 受损的根 CA 是否可以模拟任何 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30926922/
我在 Cloudflare 的域名服务器上有一个域名 example.com。该域指向我的专用服务器的 IP 地址,该服务器运行 CentOS/WHM/cPanel。该站点可访问 - 一切都很好。 我
我正在努力将 SSL 支持添加到我们现有的应用程序中,并已开始考虑向后兼容性。 与我读过的其他帖子不同的一个特殊情况是服务器可能不一定使用 SSL 代码更新。所以我将有一个 SSL 客户端连接到一个对
我有几个 https://*.rest-service.mydomain.com。随着服务数量的增加,我觉得管理 SSL 证书的成本很高。我为 *.mydomain.com 购买了通配符证书。 新添加
我的客户要求我在他的网站上做反向 ssl。但我是这个学期的新手。谁能帮我解决这个问题。 请描述或引用如何做。 最佳答案 查看 this wiki article . In the case of se
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 去年关闭。 Improve this
我连接到我的网络服务器上的存储库,但是当我尝试推送我的更改时,它显示:“错误 403:需要 ssl”,但在我的存储库设置中我已经激活了 ssl 选项。 有什么建议吗? 最佳答案 当您连接到存储库时,您
抱歉,如果这听起来像是转储问题,我已经阅读了很多关于 SSL 握手和 SSL 工作原理的文章和文档。我对一件事感到困惑,如果有人能澄清我就太好了。 我知道私钥要保密。但是我已经看到通过在请求中指定私钥
随着物联网越来越主流,越来越需要从硬件发送http请求。 一个主要问题是硬件微 Controller 无法发送 ssl 请求,但大多数服务器/网站/服务都在使用 ssl。 所以,问题是,有没有桥(一个
我有一个 ssl 页面,它还从非 ssl 站点下载头像。我能做些什么来隔离该内容,以便浏览器不会警告用户混合内容吗? 最佳答案 只是一个想法 - 或者: 尝试在头像网站上使用 ssl url,如有必要
我在 Digital Ocean droplet(使用 nginx)上设置了两个域。我已经在其中一个(domain1)中安装了一个 SSL 证书,并且那个证书一切正常。第二个域 (domain2) 不
我收到这个错误: Error frontend: 502 Bad gateway 99.110.244:443 2017/09/28 13:03:51 [error] 34080#34080: *10
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 6 年前。 Improve
我遇到了一个问题,我正在构建一个 nginx 反向代理以定向到不同 url 路径上的多个微服务。 该系统完全基于 docker,因此开发和生产使用相同的环境。这在安装 SSL 时给我带来了问题,因为
所以我知道要求 SSL 证书和接受之间的根本区别,一个意味着您必须拥有 SSL 证书,另一个意味着您不需要。 在某个网页的 IIS 管理器中,我有以下设置: 我遇到的问题是,当我设置需要 SSL 证书
我今天才发现 .app 域名需要 SSL 证书。我购买它是为了将 DNS 重定向到已经设置了 SSL 证书的站点,所以我的问题是是否可以设置它? 我正在使用 Google Domains,在将合成临时
堆栈 : react ,NGINX 1.14.0,GUnicorn,Django 2.2.8,Python 3.6.9 错误 : 在浏览器:当 React 调用 Django API(当然是在请求头中
假设我在计算机上编辑主机文件以使 google.com 指向我的 VPS 服务器 IP,并且服务器具有通过 Apache 或 Nginx 配置的 google.com 的虚拟主机/服务器 block
我有一个场景,我正在处理用于 URL 路由的 IIS 网站配置。我已添加网站并在服务器上导入所需的证书。 我的情况是(我有多个网站 URL 和两个 SSL 证书 - 如下所示): qatest1.ab
我知道服务器发送的证书无法伪造(仍然存在 MD5 冲突,但成本高昂),但是伪造客户端又如何呢?在中间人攻击中:我们不能告诉服务器我们是合法客户端并从该服务器获取数据并对其进行操作,然后使用合法客户端公
我已通读相关问题,但无法完全找到我要查找的内容。我设置了一个名为“domain.com”的域,并创建了两个子域“client.domain.com”和“client-intern.domain.com
我是一名优秀的程序员,十分优秀!