论文部分内容阅读
域名系统(Domain Name System,DNS)为互联网用户提供了域名解析服务,但DNS协议缺乏数据真实性完整性的保障机制,面临诸如DNS欺骗、分布式拒绝服务攻击(Distributed Denial of Service,DDOS)等安全问题。1997年,域名系统安全扩展协议(Domain Name System Security Extensions,DNSSEC)的提出,提供了资源记录的来源认证和完整性检查。然而,域名系统中心式层级式的架构设计中蕴含根权威权力滥用风险,域名系统中心的根权威掌握顶级域名分配与认证权力,DNS缺乏技术上的对根权威权力制约的机制,一旦根权威作恶,将威胁到域名系统中顶级域及以下所有域名的安全解析。此类安全风险建立在根权威不可信的前提下,部署了DNSSEC无法避免该风险。针对域名系统存在的根权威权力滥用风险,本文提出了一个基于DNSSEC的域名系统根区解析自验证方案,并通过修改开源DNS软件Berkeley Internet Name Domain(BIND)实现了该方案。为实现安全的域名解析,该方案提出了胶水签名机制和公钥钉机制,顶级域权威向根区提交从顶级域公钥到胶水签名的认证链,顶级域公钥采用首用信任方式存储在解析器中。当用户向根服务器查询顶级域时,解析器使用根信任锚和顶级域权威公钥验证胶水签名认证链。为实现安全的密钥更新,该方案提出了双重签名机制,解析器在验证根区中更新后的顶级域密钥时,除信任根信任锚外,还需要来自顶级域权威中旧密钥的信任。若根权威对根区文件中顶级域胶水记录进行篡改,解析器使用公钥钉验证签名即可发现数据被篡改。区块链技术通过在分布式节点间建立共识,提供了一种去中心化的安全数据存储方式,本文基于区块链提出了一个域名系统根区解析自验证方案,在区块链网络中,根权威节点和顶级域权威节点基于权限控制机制,共同维护存储于分布式账本中的根区文件,文件中存储全部顶级域的胶水签名DNSSEC认证链。由于区块链网络中每个节点的操作需要其他节点同意后才生效,从结构上避免了根权威权力滥用和DDOS攻击等问题。本文分别在开源DNS服务器BIND和区块链平台hyperleger fabric上实现了根区解析自验证系统,并进行解析测试和性能测试。解析测试应用GUI自动化技术测试了国内使用量前十的浏览器对系统中配置的全部1563个顶级域的解析和访问情况。性能测试分别在hyperleger fabric和BIND中测试了查询顶级域的平均查询时间和系统吞吐量,测试结果表明在hyperleger fabric中进行域名查询的平均查询时间和系统吞吐量与BIND相比均有明显降低。