来自 数据 2021-06-10 15:21 的文章

cdn防护_阿里云高防ip段有哪些_方法

cdn防护_阿里云高防ip段有哪些_方法

虽然可验证随机函数(VRF)最早出现在20多年前[1],但由于其在区块链应用中的有用性,它们最近又出现了强劲的流行复苏[2]。这篇博客文章将介绍VRFs在其他著名的密码原语的上下文中,描述三个示例用例,然后重点介绍在实现评审期间要考虑的二十多个主题。上下文中定义的VRF"可验证随机函数"这个名称可能与许多人的自然直觉不太相符,所以让我们暂时把它放在一边。抓起一张白纸,我们将朝着一个新的定义迈出三步。首先,理想的加密哈希函数[3]确定地将任意大小的消息字符串映射到固定大小的摘要,该摘要在没有暴力的情况下是不可能直接/预测的,基本上无法与随机预言[4]区分,并且不可能向后运行(即反转)。hash函数使得查找映射到同一摘要的两条输入消息变得异常困难。生成的摘要通常与消息(通过安全通道)相关联,以支持完整性检查。其次,键控哈希函数[5]是一个简单的扩展,在确定性摘要计算中,对称密钥与消息字符串一起包含。结果称为消息验证代码(MAC、HMAC,或者通常是"标记"),并且通常与消息关联,以支持完整性和真实性检查。请注意,这两个保证依赖于以某种方式生成并在通信方之间安全共享的对称密钥。第三,考虑一个进一步的键控哈希函数扩展,它涉及非对称的公钥和私有/机密密钥,而不是共享的对称密钥。输入消息和密钥用于生成与数字签名[6]相似的中间证明(例如签名摘要)。该证明简单地被散列以计算最终摘要结果,该结果与随机值不可区分,是原始输入消息所特有的,不会与其他输入消息冲突。通常,只有这最后的摘要是最初披露的。之后,证明和摘要可以一起使用相应的公钥进行独立验证。现在,可以支持完整性和真实性保证,而不必共享对称密钥。更准确地说,VRF包含三个主要功能和四个数据对象。Alice运行一个Prove()函数,该函数接受输入消息(alpha_字符串)和她的密钥(sk),cc攻击防御代码,并返回一个中间证明(pi_字符串)。接下来,她运行Proof_to_hash()函数,该函数接受Proof(pi_string)并返回最终摘要(beta_string)以与Bob共享。稍后,Bob可以运行一个Verify()函数,该函数接受Alice的公钥(y)、输入消息(alpha_string)和proof(pi_string),并返回本地计算的摘要(beta_string),以便与原始接收的摘要(beta_string)进行比较。从这一点开始,这四个数据对象将被简单地称为alpha_string、sk、proof_string、beta_string和y。有RSA和椭圆曲线VRF变体(以及其他一些不太为人所知的方法),但本文仅限于椭圆曲线VRF。关于命名直觉,考虑一个可验证的随机函数是一个能够产生确定性和唯一的"随机性"的函数,该随机性可以在以后独立地被验证。请注意,典型的数字签名算法可能具有不确定性、可塑性和不充分的随机性,这可能会妨碍其直接适用于我们的目的。在这些方面得到适当处理的情况下,哈希签名是一种非常类似的方法。一个VRF规范的例子可以在互联网研究任务组(IRTF)加密论坛研究小组(CFRG)主持的草案中找到,网址为https://datatracker.ietf.org/doc/draft irtf-cfrg-vrf/。最终,这个正在进行的工作草案可能成为最终的IETF RFC。上述三个主要函数的椭圆曲线变体如下所示,以及更精确的成功/失败指标。第四个也是可选的函数,用于验证公钥。VRF规范草案将(椭圆曲线)密钥生成委托给RFC 8032第5.1.5节中的细节。#第5.1条。ECVRF证明ecvrf_prove(sk,alpha_字符串)->pi_字符串#第5.2条。ECVRF哈希证明ecvrf_proof_to_hash(pi_string)->beta_string |"无效"#第5.3条。ECVRF验证ecvrf_verify(y,pi_string,alpha_string)->("有效",beta_字符串)|"无效"#第5.6.1条。ECVRF验证密钥(可选)ecvrf_validate_key(pk_string)->"无效"| yVRF用例A、 盲目拍卖松散地说,VRFs本质上是一个非对称键控哈希函数。这在具有低熵输入的预调试系统中非常有用,这些系统必须能够抵抗暴力预图像攻击。例如,网络安全工具,假设我们希望将下面所示的出价放入盲(密封信封)拍卖[7],而不首先透露任何关于投标内容或我们的身份的信息。但是,以后我们可能会想透露投标内容,并要求我们的项目,这将需要一些完整性和真实性的概念,因此涉及密钥。起点是包含我们出价的alpha_字符串:{"Horse":"IntegrityChain","Amount":"50","Currency":"USD"}虽然简单地提交上述alpha_字符串的基本哈希摘要会隐藏其内容,但摘要本身不提供身份链接,并且容易受到暴力预图像攻击。相反,彻底防御cc,我们使用sk和alpha_字符串首先计算我们最初的私有pi_字符串,并将其保存以备将来使用。接下来,我们使用这个pi_字符串来计算并提交beta_字符串作为我们的密封拍卖出价。在拍卖最终结束后,展示我们的中标包括显示alpha_字符串、pi_字符串和y。现在,拍卖师可以验证本地计算的beta_字符串与我们之前提交的beta_字符串的有效性和对应关系。B、 DNS拒绝存在基本域名系统(DNS)查找消息将人类可读的名称映射到IP地址,而不保证其真实性。为了解决这个问题,广东高防cdn,DNS安全扩展(DNSSEC)引入了NSEC和NSEC3记录,其中包括支持真实性的加密签名。虽然经过身份验证的响应可以防止中间人拒绝存在欺骗,但新定义的记录简化了可能泄漏敏感信息的区域枚举。这部分是由于最初的目标是在离线之前执行所有加密签名操作。RFC7129[8]描述了对不存在的b的查询。example.com网站返回响应,包括下面显示的NSEC记录。此签名记录表明a之间不存在任何内容。示例.org和d。示例.org也可以重复用于同一域名范围内的任何其他查询。由于nameserver保存了将所有可用域名范围间隔链接在一起的预先计算的记录,因此简化了区域枚举[9],只需要少量的在线查询。请注意,ddos攻击手段防御,RRSIG字段包含一个加密资源记录签名。a。示例.org. NSEC d。示例.org. 一个TXT RRSIG NSECNSEC3记录与NSEC记录非常相似,但是NSEC3记录包含域名哈希的有符号范围间隔(按哈希值排序),而不是明文形式的有符号域名范围间隔。名称服务器维护预先计算的记录,将所有可用的域名范围差距哈希值链接在一起。此外,传递的响应包括哈希盐和迭代次数。因此,区域枚举任务现在变成了对域名范围间隔哈希的可行的离线暴力预映像攻击[10]。自动化工具可用于此[11]。NSEC5的互联网草案https://datatracker.ietf.org/doc/draft-vcelak-nsec5/介绍了一种利用VRFs防止暴力离线攻击的方案。首先,nameserver仍然保存预先计算的记录,这些记录将所有可用的域名范围间隔散列连接在一起,但现在这些都是VRF散列(即beta_字符串)。在不了解sk的情况下,暴力攻击beta_字符串是不可行的。第二,当查询一个不存在的名称时,名称服务器为查询的名称同时提供一个proof\u字符串和beta字符串。给定已知的y,客户机可以确认beta_字符串,并确认其在还提供的域名范围间隙哈希记录中的正确位置。因此,存在一个经过身份验证的缺口,并且在这个缺口内有一个经过身份验证的位置。虽然现有名称仍然是脱机签名的,因此不会影响性能,但查询不存在的名称现在需要联机步骤。请注意,NSEC5是正在讨论的几个提案之一。C、 区块链加密排序对区块链系统的一个常见批评涉及采矿过程中的过高成本和浪费能源消耗。这在很大程度上是由于共识系统中用于最终确定区块的"工作证明"方法,这通常涉及到每个矿工竞相首先解决同一个极其困难的密码难题。工作证明方法的另一种替代方法是使用密码排序,它本质上是"通过抽签或抽签来选择或决定某物的行为"。这个想法是使用一个VRF来安全地选择一个子集的矿工参与形成一个关于下一个最终区块的共识。这种方法提供了多种好处,因此越来越受欢迎,因此对VRFs重新产生了兴趣。这种方法的主要支持者包括Algorand[13]、Ontology[14]和Coda[15];vrf甚至已经被写成Solidity[16],用于部署在以太坊(和兼容的)系统上。一般过程遵循简单的逐块模式。初始定案区块包含一个唯一且不可预测的标识符,作为所有可能参与形成下一个定案区块共识的矿工的alpha_字符串。