DDOS防御专家-提供超强DDoS高防/CC防护/大流量清洗服务!
当前位置:主页 > 高防服务器 > 正文

防cc_加速cdn防御_怎么防

防cc_加速cdn防御_怎么防

在2020年1月14日星期二,微软发布了他们的第一个补丁2020年星期二,防御ddos攻击价值,解决了NSA在Windows10、WindowsServer2016和2019版本的crypt32.dll中发现的一个严重缺陷,crypt32.dll是实现Windows的CryptoAPI的库。没过多久,它就被肯恩·怀特在博客中冠以"连锁工具"的称号(后来被Tal Be'ery更名为"曲线球"。

TL;博士:使用我们的测试网站测试您是否易受攻击!

让我们来解释这个缺陷,并用一个POC来演示它,我们提供了一个测试网站和所有在家里复制它的代码。

像往常一样,在密码社区,缺陷可能影响深远,我们披露了所有我们可以披露的细节,并在我们的Github页面上发布了我们的POC(这在这里尤其重要,由于Microsoft和NSA没有披露任何细节。)

Microsoft发布了有关该漏洞的以下信息:

Windows CryptoAPI(Crypt32.dll)验证椭圆曲线加密(ECC)证书的方式中存在欺骗漏洞。攻击者可以使用欺骗的代码签名来利用该漏洞对恶意可执行文件进行签名的证书,使其看起来文件来自可信的合法来源。用户将无法知道该文件是恶意的,因为数字签名似乎来自受信任的提供商。成功利用此漏洞还可以使攻击者进行中间人攻击,并解密与受影响软件的用户连接上的机密信息。

虽然这仍然相对模糊,但我们可以从CERT网站收集更多的情报:

因此,攻击者可以创建一个似乎能够追踪到可信根证书颁发机构的证书。任何依赖Windows CertGetCertificateChain()函数来确定X.509证书是否可以跟踪到受信任的根CA的软件(包括第三方非Microsoft软件)都可能会错误地确定证书链的可信度。支持带有指定参数的ECC密钥的证书的Microsoft Windows版本会受到影响。

最后但并非最不重要的是,我们从NSA自己那里得到了"网络安全建议"!这个建议更为详细,特别提到:

包含明确定义的椭圆曲线参数的证书仅部分匹配标准曲线是可疑的,特别是如果它们包含可信证书的公钥

这非常有趣!这使我们相信,有可能使用ECC和显式参数来制作证书,这些参数与标准曲线不完全匹配!

强制召回

在ECDSA中,私钥是一个大整数,而公钥是椭圆曲线上的一个点,通过计算得出,对于一个大素数阶的曲线的生成器(通常与您使用的曲线一起标准化)。

根本原因

所以,ddos攻击的最佳防御点,这里的想法是,当在提供的证书中指定显式曲线参数时,加载证书的方式存在一些缺陷。许多人讨论了这个话题,最后每个人都同意脆弱性应该是什么。托马斯·普塔切克在《黑客新闻》上做了一个很好的总结。但别担心,我会在下面再次解释它。

具体来说,只要您不使用标准生成器,就可以为现有公钥创建私钥,但可以选择任何生成器。您可以在X.509证书中选择自己的生成器,方法是使用"显式参数"选项来设置它。

因为这样CryptoAPI似乎将证书与其缓存中的证书匹配,而不检查所提供的生成器是否与标准化的生成器匹配,它实际上会信任证书,就好像它已被正确签名一样(尽管不是完全的,因为系统仍然检测到根证书与根CA存储中的证书不同。也就是说:你不会在你的URL栏中得到你想要的这些漂亮的绿色锁,但是你仍然会得到一个没有任何警告的锁,这与使用自签名证书时不同,即使你自己制作了证书。)

重要的是要注意,问题不在这里的加密操作中。数学证明了这一点,并且您可以使用另一个生成器(而不是标准化的生成器)来创建与公钥匹配的签名这一事实在数学中不是问题。这里的问题实际上是CryptoAPI使用的CA证书缓存错误地认为,只要其公钥和序列号与证书缓存中已经存在的证书匹配,修改后的根CA就在CA证书存储中,忽略这样一个事实,即这个修改后的证书没有使用与其缓存中的曲线参数相同的曲线参数。

而且它碰巧非常容易计算出一个假生成器,我们可以知道与给定CA的公钥对应的私钥!事实上,如果我们使用现有的证书及其公钥和未知的密钥,那么我们就得到了它。现在只要取一些随机值就足够了,然后我们设置。然后,在使用新的生成器时,我们得到了新构造的密钥是公钥的有效密钥,因为我们得到了:

这有效地允许我们欺骗Microsoft CryptoAPI,cc防御去掉,使其相信我们确实知道某个CA证书的密钥,云盾ddos防御态势cc,而实际上我们只知道它的密钥是在使用不同于标准化生成器的生成器时才知道的!

现在,这只是理论,对吧?但是,我们如何确定这实际上是CVE-2020-0601背后的问题呢?嗯…因为我们有一个概念验证工作,它只是大约50行的Python代码!

首先,您需要在Windows的受信任根CA中找到一些使用ECC的目标证书!好吧,我们看了一下,发现usertrustecc证书颁发机构有一个使用命名曲线P384的证书!这似乎是一个很好的候选者。

因此,我们下载证书,现在我们需要获取它的公钥,这可以通过直接使用USERTrustECCCertificationAuthority.crt-text-noout中的"openssl x509"轻松完成,5gddos防御,它给我们:

证书:数据:版本:3(0x2)序列号:5c:8b:99:c5:5a:94:c5:d2:71:56:de:cd:89:80:cc:26签名算法:ecdsa-with-SHA384颁发者:C=US,ST=New Jersey,L=Jersey City,O=The USERTRUST Network,CN=USERTRUST ECC Certification Authority有效性时间:2010年2月1日00:00:00 GMT不晚于:1月18日23:59:59 2038 GMT主题:C=US,ST=New Jersey,L=Jersey City,O=USERTRUST Network,CN=USERTRUST ECC Certification Authority主题公钥信息:公钥算法:id ecPublicKey公钥:(384位)酒吧:04:1a:ac:54:5a:a9:f9:68:23:e7:7a:d5:24:6f:53:c6:5a:d8:4b:ab:c6:d5:b6:d1:e6:73:71:ae:dd:9c:d6:0c:61:fd:db:a0:89:03:b8:05:14:ec:57:ce:ee:5d:3f:e2:21:b3:ce:f7:d4:8a:79:e0:a3:83:7e:2d:97:d0:61:c4:f1:99:dc:25:91:63:ab:7f:30:a3:b4:70:e2:c7:a1:33:9c:f3:bf:2e:5c:53:b1:5f:b3:7d:32:7f:8a:34:e3:79:79ASN1 OID:secp384r1NIST曲线:P-384X509v3扩展:X509v3主题密钥标识符:3A:E1:09:86:D4:CF:19:C2:96:76:74:49:76:直流:E0:35:C6:63:63:9AX509v3密钥用法:关键证书标志X509v3基本约束:关键CA:对签名算法:ecdsa-with-SHA38430:65:02:30:36:67:a1:16:08:dc:e4:97:00:41:1d:4e:be:e1:63:01:cf:3b:aa:42:11:64:a0:9d:94:39:02:11:79:5c:7b:1d:fa:64:b9:ee:16:42:b3:bf:8a:c2:09:c4:ec:e4:b1:4d:02:31:00:e9:2a:61:47:8c:52:4a:4b:4e:18:70:f6:d6:44:d6:6e:f5:83:ba:6d:58:bd:24:d9:56:48:ea:ef:c4:a2:46:81:88:6a:3a:46:d1:a9:9b:4d:c9:61:da:d1:5d:57:6a:18

现在,我们想要的部分显然是"pub"值,但要注意ASN.1编码!前面的04告诉我们它只是点的两个坐标,所以我们可以删除它,现在我们知道点实际上是(0x1AAC545AA9F96823E77AD5246F53C65AD84BABC6D5B6D1E67373771AEDD9CD60C61FDDBA08903B80514EC57CEEE5D3FE221,0xB3CEF7D48A79E0A3837E2D97D061C4F199DC259163AB7F30A3B470E2C7A1339CF3B5C53B15FB37D327F8A34E37979)。

现在,我们想取一个或多或少的随机值(我们可以取退化情况1,然后生成器本身就是公钥,但是为了演示所有需要的计算,让我们有一个大的,所以我们选择了)。然后我们计算rogue生成器,它是(因为我们选择私钥作为2的倒数)。注意,逆函数取模,即曲线的顺序。

接下来,我们只需要生成一个具有显式曲线参数的pem文件,并使用rogue生成器和我们选择的私钥。这可以通过首先用openssl ecparam-name secp384r1-genkey-noout-out p384-key.pem-paramèenc explicit创建一个模板pem文件来完成,然后使用Python的Crypto.IO pem模块对其进行编辑(请参阅PoC代码以了解详细信息。)

下一步是生成一个rogue CA公共文件,该文件与真实文件的序列相匹配,但使用我们新制作的p384-key-rogue.pem文件:

`openssl req-key p384-key-rogue.pem-new-out CA-rogue.pem-x509-set_serial 0x5c8b99c55a94c5d27156decd8980cc26`和您想要的参数,如果您不介意,您可以重用原始CA证书中的证书:"C=US,ST=newjersey,L=Jersey City,O=USERTRUST Network,CN=USERTRUST ECC Certification Authority"。

现在,我们只需要生成想要在野外使用的证书!我们首先生成一个全新的证书,就像您通常所做的那样:openssl ecparam-name prime256v1-genkey-noout-out prime256v1-privkey.pem然后我们可以像您一样生成证书签名请求

版权保护: 本文由 DDOS防御专家 原创,转载请保留链接: /ddos/70505.html

DDoS防御专家简介孤之剑
国内资深白帽子二十人组成员,前BAT资深网络安全工程师,知名网络安全站点板块大神,每年提交Google及微软漏洞,原sina微博负载插件开发者,现在整体防御复合攻击长期接受1-4.7T攻击,CC防护自主开发指纹识别系统,可以做到99.9999%的无敌防御。
  • 文章总数
  • 9325956访问次数
  • 建站天数

    QQ客服

    400-0797-119

    X