论文部分内容阅读
域名系统(Domain Name System, DNS)是Internet的核心技术之一,提供了针对域名和IP地址间相互映射的解析服务。人性化的域名为Internet用户接入互联网的操作提供了便利,域名解析技术更成为绝大多数互联网应用与服务能够顺利运转的重要前提。然而, DNS自诞生以来,其性能和安全方面的众多缺陷逐渐暴露,由此引发的各种行为的网络攻击,因其破坏力巨大和影响范围之广,在网络安全的历史长河中留下了一个个经典案例。这无疑给Internet的安全运行带来大量不稳定因素,更给当前网络背景下的信息社会和国家安全造成威胁。本文致力于研究域名系统的开源实现,力求能从效率及安全性两方面对开源DNS服务器做出某些改进。论文首先深入分析了DNS框架的标准协议,作为进一步研究一类开源DNS的理论基础。然后通过对多款DNS服务器软件的比较,选择出一类有代表性的开源DNS软件Unbound作为研究对象。重点分析了该开源DNS服务器的实现机理和域名解析工作流程,在此基础上总结出该类开源DNS软件架构和技术特点。最后结合各种测评工具的使用,选择其域名哈稀算法模块进行改进,尝试使用针对全域名的完整哈希来代替针对标识的迭代哈希方法。经过局域网模拟环境下的测试,改进后的Unbound峰值采样性能会有一定的提升。论文还从理论上分析了改进方案对碰撞性能可能造成的影响。另一方面,为了研究域名系统安全,本文深入学习了DNSSEC安全协议,并对当前热门的域名系统攻击行为进行了研究和分析。针对目前关注度较高的DNS缓存中毒攻击,深入阐述了其实现原理,在综合比较各种解决方案优缺点的基础上,提出一套面向局域网的DNS报文合法性校验方案,作为预防缓存中毒的主动防御策略。新方案设计了一个针对回复报文的逆向校验算法,用来对局域网域名服务器收到的应答报文做真伪性识别。本文同时对该方案的可行性进行深入分析,就所提出的理想算法模型做出如下两点改进,包括采用新的寻址映射方式以及设计一套局域网内客户端和DNS服务器之间的协商告警机制,这将有利于改善长期以来局域网域名服务器预防缓存中毒攻击的被动局面。论文同时还详细讨论了新方案在各种场景下的应用,为验证方案可行性提供理论依据。