最新公告
  • 欢迎您光临站壳网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 数字证书签名、Lets Encrypt和证书劫持

    正文概述 webmaster   2020-03-12   362

    【金融特辑】光大银行科技部DBA女神带你从0到1揭秘MGR

    现在安全体系中,最重要的一部分是数字安全加密体系,包括数字内容的加密解密,数字签名和验证。本文虫虫给大家介绍一下数字证书签名以及世界最大的网站Https免费签名Let’s Encrypts,及数字证书签名的安全性等问题。

    概述

    数字签名就是在信息的后面再加上一段内容,可以证明信息没有被修改过,怎么样可以达到这个效果呢?一般是对信息做不可逆的哈希计算得到一个哈希值。在把信息发送出去时,把这个哈希值加密后做为一个签名和信息一起发出去。接收方在收到信息后,会重新计算信息的哈希值,并和信息所附带的哈希值(解密后)进行对比,如果一致,就说明信息的内容没有被修改过。数字签名在现在现代安全体系中非常重要基础,可以用来确保文件的完整性、防止文件篡改以及身份认证等。首先我们说说几个常见的数字证书基本概念:

    RFC

    RFC的意思是Request For Comments,中文对应为请求注释,它是一堆描述不同协议的文本文件。如果想了解SSL,TLS(新的SSL)和x509证书(用于SSL和TLS的证书)如何工作,例如,想编写自己的OpenSSL,则必须阅读相应的TLS RFC。:的X509证书对应的rfc5280和TLS(1.2)对应的rfc5246。

    数字证书签名、Lets Encrypt和证书劫持

    x509

    x509是为非正式的互联网电子邮件,IPsec和WWW应用程序定义的证书规范,x509发展了三个版本,现在广泛使用的RFC v3,其结构如下:

    1. Certificate ::SEQUENCE {  
    2. tbsCertificate TBSCertificate,  
    3. signatureAlgorithm AlgorithmIdentifier,  
    4. signatureValue BIT STRING } 

    这些是ASN.1结构。现代的证书就是这样的:

    • 第一个对象包含将要签名的所有感兴趣的内容,因此我们将其称为"待签名证书"
    • 第二个对象包含CA用于对该证书签名的签名类型(例如:sha256)
    • 最后一个对象不是对象,只是与DER编码后的TBSCertificate 签名相对应的一些位

    ASN.1

    它看起来很小,但是每个对象都有一定深度。

    TBSCertificate是最大的TBSCertificate,包含一堆有关客户端,CA,客户端的公钥等信息。

    数字证书签名、Lets Encrypt和证书劫持

    DER

    当然不会像这样发送证书。而使用DER将其编码为二进制格式。

    每个字段名都会被忽略,如果我们证书的形成方式,那么将不可能理解每个值的含义。

    每个值都编码为TLV三元组:[TAG,LENGTH,VALUE]

    例如,查看Github的证书

    数字证书签名、Lets Encrypt和证书劫持

    右边是DER编码证书的十六进制转储,左边是ASN.1格式的译文。

    如上面所见,如果没有RFC,我们真的不知道每个值对应什么。openssl工具中自带了很方面的命令行工具,可以用来解析证书的内容,简单使用

    openssl x509 -in cert.pem -noout -text即可

    数字证书签名、Lets Encrypt和证书劫持

    Let’s Encrypt数字签名

    说到数字签名就不能不对Let’s Encrypt竖起大拇指,可以说它以一己之力为整个互联网网站撑起了HTTPS的天。Let’s Encrypt成立于2014年,是一家非盈利性的认证机构,目前为约2亿个网站提供了数字证书认证,累积签发了10亿张的证书。

    数字证书签名、Lets Encrypt和证书劫持

    Let’s Encrypt成功的关键取决于两点:

    (1) 它是免费的。Let’s Encrypt之前,大多数证书颁发机构向要获得证书的网站管理员收取费用。

    Let’s Encrypt证书和商业证书的区别:

    数字证书签名、Lets Encrypt和证书劫持

    (2) 它是自动化的。如果遵循其标准化协议,则可以通过API请求,续订甚至吊销证书。与此形成对比的是其他证书机构需要手动处理并需要一些时间来颁发证书。

    如果网站管理员希望网站example-com(通过HTTPS)向用户提供安全的连接,则可以向Let’s Encrypt发出申请证书,并在证明自己拥有域example-com并颁发证书后,便可以使用该证书来与任何信任"Let’s Encrypt"的浏览器协商安全连接。

    这个实际流程如下:

    • Alice使用RSA公钥在Let’s Encrypt中注册。
    • Alice要求Let’s Encrypt证书example-com。
    • Let’s Encrypt让Alice证明自己是example-com所有者,需要签发一些数据并将其上传到example-com/.well-known/acme-challenge/some_file。
    • 爱丽丝签署并上传签名后,要求Let’s Encrypt其进行检查。
    • Let’s Encrypt检查是否可以访问上的文件example-com,如果它成功下载了签名并且签名有效,则Let’s Encrypt向Alice颁发证书。

    这个过程的流程图如下:

    数字证书签名、Lets Encrypt和证书劫持

    数字证书劫持

    那么,我们假设Alice并不会实际拥有example-com,但是她通过中间劫持的方法实现了步骤5中进行加密。自从Let’s Encrypt推出以来,这一直是个问题。事实上普林斯顿大学的一组研究人员在Bamboozling证书颁发机构的BGP中证明了这一点:他们执行了一个真实的BGP攻击演示,以合乎道德的方式从顶级CA获得虚假证书。为了评估PKI的脆弱性,研究人员收集了180万个证书的数据集,发现这些数据集中绝大多数域都可以成功伪造证书。

    数字证书签名、Lets Encrypt和证书劫持

    该论文中,研究人员提出了两种解决方案,以进行补救,或至少降低这些针对KPI攻击的风险:

    • CA机构从多个有利位置对域名进行验证,以使其难以发起成功的攻击;
    • CA机构通过BGP监视系统,检测可疑BGP路由并延迟证书验证使网络运营商有时间对BGP攻击做出反应。

    最近Let’s Encrypt实现了第一个解决方案:多角度域验证。该方法改变了上述流程的第5步:在新的策略下Let’s Encrypt会从多个位置下载域名的证书验证。

    Let’s Encrypt攻击的工作原理

    安德鲁·艾耶(Andrew Ayer)在2015年发现了对Let’s Encrypt的攻击。在其中,Andrew提出了一种方法来控制已经验证了域的Let’s Encrypt帐户(例如example-com)

    攻击是这样的:

    • Alice通过在example-com上的一些数据上载签名(example-com/.well-known/acme-challenge/some_file) 来注册并完成域验证。然后,成功地从Let’s Encrypt获得证书。
    • 之后Eve使用新帐户和新的RSA公钥签署了Let’s Encrypt,并请求恢复example-com域
    • Let’s Encrypt要求Eve签发一些新数据,并将其上传到example-com/.well-known/acme-challenge/some_file。
    • Eve制作了一个新的假冒密钥对,并在Let’s Encrypt上更新了其公共密钥。然后,她要求Let’s Encrypt以检查签名。
    • Let’s Encrypt从example-com获取签名文件,签名匹配,于是Eve被授予example-com域所有权。

    攻击的图示如下:

    数字证书签名、Lets Encrypt和证书劫持

    在上述攻击中,Eve设法创建了一个有效的公钥,该公钥验证了给定的签名和消息。数字签名不能唯一地标识密钥或消息

    根据RSA的工作原理(这是现代证书交换链的基础):

    数字证书签名、Lets Encrypt和证书劫持

    对于固定签名signature和(PKCS#1 v1.5)消息message,公钥(e,N)必须满足以下方程式以验证签名:

    数字证书签名、Lets Encrypt和证书劫持

    一个人可以很容易地制作一个(大部分时间)满足以下等式的公钥:

    数字证书签名、Lets Encrypt和证书劫持

    可以轻松验证验证是否有效:

    数字证书签名、Lets Encrypt和证书劫持

    根据定义,最后一行是正确的。

    数字签名的安全

    由于理论领域与应用领域之间安全性证明与已实施协议之间存在差距。密码学中的签名通常使用EUF-CMA模型进行分析,该模型代表自适应选择消息攻击下的存在不可伪造性。

    通过模型中,生成了一个密钥对,然后要求签署一些任意消息。在观察签署的签名时,如果可以在某个时间点对未请求的消息产生有效的签名,将获胜。

    不幸的是,尽管现代签名方案似乎通过了EUF-CMA测试,但它们往往表现出一些令人惊讶的特性。论文《Automated Analysis of Subtle Attacks on Protocols that Use Signatures》中Dennis Jackson,Cas Cremers,Katriel Cohn-Gordon和Ralf Sasse试图对使用签名的协议进行细微的攻击的自动化分析,试图列出这些令人惊讶的特性以及受它们影响的签名方案(然后找到一堆)在使用正式验证的协议。

    数字证书签名、Lets Encrypt和证书劫持

    保守的排他性(CEO)/破坏性的排他性(DEO):

    (1) 密钥替换攻击(CEO),其中使用不同的密钥对或公钥来验证给定消息上的给定签名。

    (2) 消息密钥替换攻击(DEO),其中使用不同的密钥对或公共密钥来验证新消息上的给定签名。

    • 可延展性。大多数签名方案都是可塑的,这意味着如果给出一个有效的签名,就可以对其进行篡改,以使其成为一个不同但仍然有效的签名。请注意,如果我是签名人,通常可以为同一条消息创建不同的签名。不清楚这是否会对任何现实世界的协议产生影响,尽管比特币MtGox交易所将其资金损失归咎于该协议,2014年2月,曾经是最大的比特币交易所MtGox关闭并申请破产,声称攻击者利用可塑性攻击来耗尽其帐户。

    请注意,一种新的安全模型SUF-CMA(用于强EUF-CMA)试图将这种行为包含在签名方案的安全定义中,并且一些最新标准(如RFC 8032指定Ed25519)正在缓解对其签名方案的延展性攻击。。

    • 可重新签名。这很容易解释。要验证消息上的签名,通常不需要消息本身,但需要摘要。这样,任何人都可以使用自己的密钥重新签名消息,而无需知道消息本身
    • 可碰撞性。有些方案允许制作签名,这些签名将在几条消息下进行验证。更糟糕的是,按设计Ed25519允许人们制作公钥和签名,从而很有可能验证任何消息。(在某些实现中,例如libsodium,此问题已修复。)

    下图中概括了证书替代攻击:

    数字证书签名、Lets Encrypt和证书劫持

    最后,好的签名方案会将有有效的安全的方法都会累积完善起来,所以在使用时候选择主要的方法一般是没有问题。而如果你要重复造轮子,要自己实现一套更为复杂的加密协议,则需要考虑这些问题。

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"www.yoozai.net",如遇到无法解压的请联系管理员!
    悠哉网 » 数字证书签名、Lets Encrypt和证书劫持

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    悠哉网 WWW.YOOZAI.NET
    悠哉网,用户消费首选的网站,喜欢你就悠哉一下。

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    • 590会员总数(位)
    • 4801资源总数(个)
    • 160本周发布(个)
    • 3 今日发布(个)
    • 180稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情