|
引用本文
陈闻宇, 李晓东, 杨学, 徐彦之. 一种基于区块链的DNSSEC公钥验证机制. 自动化学报, 2023, 49(4): 731−743 doi: 10.16383/j.aas.c201082
Chen Wen-Yu, Li Xiao-Dong, Yang Xue, Xu Yan-Zhi. A blockchain-based DNSSEC public key verification scheme. Acta Automatica Sinica, 2023, 49(4): 731−743 doi: 10.16383/j.aas.c201082
http://www.aas.net.cn/cn/article/doi/10.16383/j.aas.c201082
关键词
域名安全扩展,公钥基础设施,区块链,密码学累加器
摘要
针对中心化域名安全扩展(Domain name system security extensions, DNSSEC)架构所导致的信任链复杂性和单边控制模式, 提出了一种去中心化的DNSSEC公钥验证机制. 该机制结合区块链结构、密码学累加器和共识算法设计, 创新性地实现使用区块链技术的密钥绑定、轮转和验证操作, 无需中心化权威节点即可使用可信公钥验证域名记录. 进一步分析和实验表明, 所提出的机制在保证密钥管理安全性的同时, 提高了密钥验证的效率.
文章导读
域名系统(Domain name system, DNS)主要提供域名解析服务, 是互联网关键基础服务之一, 其安全问题受到广泛关注. 目前DNS服务遵循RFC 1034[1]和RFC 1035规范[2], 依赖于中心化层次架构, 缺乏记录数据的校验机制. 如何从验证机制上改进DNS安全性, 一直是学术界和工业界的热点问题. 其中, DNS安全扩展(Domain name system security extensions, DNSSEC)方案受到了广泛关注[3].
DNSSEC通过额外引入验证密钥, 提供数据来源和完整性验证机制[4]. 其密钥验证机制在设计上采用类似中心化的公钥基础设施(Public key infrastructure, PKI), 支持层次化注册域名和公钥绑定. 为确保记录中公钥的可信性, 权威域名服务器必须正确签发其密钥和签名, 路径上每个DNSSEC子域必须被其父域的密钥正确签名, 同时域名解析器必须具备信任链的验证功能. 在这种中心化域名体系下, 公钥验证依赖于逐层上达信任锚的信任链维护, 导致验证过程复杂且不易管理[5]. 另一方面, 作为解析器信任公钥的信任锚被根区管理者掌控, 形成受制于单边控制的互联网治理模式. 信任链管理的复杂性及其衍生问题, 严重影响DNSSEC的广泛应用. 从最新统计看, 只有近4%的二级域名部署了DNSSEC[6]. 2017年的研究[7]指出, 已部署DNSSEC的域名服务中, 31%的域名未能发布验证所需的所有相关记录, 39%的域名使用了低强度签名密钥, 只有12%请求DNSSEC记录的域名解析器实际执行了验证操作.
密钥验证的中心化机制, 是导致DNSSEC难以得到有效部署的重要原因之一. 如何实现去中心化验证, 是近期的一个研究热点问题. 区块链技术基于去中心化思想和共识机制, 支持每个节点独立完成信任验证, 为实现去中心化信任提供新的思路[8]. 基于区块链技术实现去中心化验证, 目前研究方法主要可分为两类.
一类方法是使用区块链直接管理域名记录, 通过共识机制确保每个节点具有可信的域名记录, 意在解决中心化架构下域名记录交换所导致的安全风险[9-13]. 但所构建的域名系统与现有域名不兼容, 同时需额外考虑因共识所导致的分叉、攻击和低效等问题. 这导致此类研究所形成系统难以真正得到部署.
另一类方法是基于区块链实现去中心化的PKI[14-16], 进而考虑为DNSSEC提供支持[17-18]. DNSSEC在设计上可视为一种中心化的树状PKI, 但DNSSEC在密钥管理上具有其独特设计. 首先, DNSSEC证书格式与PKI使用的X.509标准存在差异, DNSSEC存在多种公钥记录类型. 其次, 在密钥管理上, DNSSEC定义了两种类型公钥分离的设计, 并且密钥和数字签名以特定的资源记录分别管理. 不同于PKI中只有一个证书验证机构(Certification authority, CA)签发证书, DNSSEC中每个域名所有者都可作为CA, 为其子域签发证书.
去中心化PKI需要针对DNSSEC密钥管理特点进行重新设计, 但是目前尚未有研究考虑基于区块链形成支持DNSSEC公钥注册、验证和轮转的整体机制. 由此, 本文提出一种去中心化的DNSSEC公钥验证机制. 一方面, 该机制结合区块链结构、密码学累加器和共识算法设计, 创新性地实现使用区块链技术的密钥绑定、轮转和验证操作, 无需中心化权威节点即可使用可信公钥验证域名记录. 避免了现有体系下服务器端密钥信任链管理复杂的问题. 另一方面, 为改进区块链本身的性能, 本文对支持DNSSEC密钥管理的区块链做了全新设计. 通过定义区块结构和区分节点类型, 避免全链同步所有数据的代价; 基于实用拜占庭容错(Practical Byzantine fault tolerance, PBFT)共识算法提出了两种分组改进策略, 在不降低安全性的同时改进了共识性能; 通过选择密码学累加器, 避免遍历全部区块验证密钥.
综上, 本文的主要创新为:
1) 针对现有的中心化DNSSEC体系进行改进, 创新性地实现了一种基于区块链的去中心化可信公钥验证机制, 在提供去中心化的PKI密钥注册、轮转和验证操作的同时, 降低了维护DNSSEC信任链的复杂性.
2) 针对DNSSEC密钥管理操作特性, 改进了共识机制和区块链结构的设计. 在共识上提出了采用聚类和DNS结构两种PBFT共识算法分组策略, 在结构上提出通过区分节点类型避免全链同步所有数据的代价, 采用密码学累加器无需遍历区块链即可验证密钥绑定. 所设计的共识和结构可保证密钥管理安全性的同时, 提高密钥验证的效率.
3) 通过进一步的分析和实验, 验证了本文机制, 有效地降低了密钥管理的复杂性. 相比现有区块链和DNSSEC实现, 所提出的机制在密钥验证性能表现出一致性的改进, 在验证性能和安全可靠性上取得了很好的权衡.
本文结构如下: 第1节为对比相关研究; 第2节给出基本概念; 第3节进行详细阐释; 第4节介绍共识算法的改进; 第5节给出实验的对比结果; 最后第6节对全文进行归纳总结.
图 1 整体结构图
图 2 区块结构图
图 3 基于智能合约的公钥绑定对注册操作
DNSSEC是增强域名服务的重要机制, 但密钥信任链管理的复杂性及其衍生问题, 严重影响DNSSEC的普及推广. 基于区块链的PKI为解决信任链管理复杂性提供了可行途径, 但需根据DNSSEC特性进行改进.
本文针对DNSSEC公钥验证的特性, 提出了一种基于区块链的高效密钥操作机制, 通过区块链结构、交易和智能合约操作的设计, 创新性地实现了适用于DNSSEC密钥的注册、验证和轮转操作, 避免了中心化体系下管理密钥信任链的复杂度. 进一步实验表明, 本文提出的机制能在保证整体机制安全性的同时, 有效提高了DNSSEC公钥验证的性能.
本文提出的机制适用于解决域名安全验证中依赖于中心化PKI/CA信任链的问题. 同样适用于解决DNS over TLS/HTTPS协议中信任链问题. 另一方面, DNSSEC本身只是对域名记录的签名验证, 并未提供记录的保密性. 记录和交易的保密性也是区块链领域的近期研究热点问题, 将是我们下一步工作的关注方向.
作者简介
陈闻宇
高级工程师, 中国科学院计算技术研究所网络技术研究中心博士研究生. 主要研究方向为互联网基础资源, 网络安全和区块链技术. E-mail: chenwy2000@163.com
李晓东
中国科学院计算技术研究所研究员, 清华大学公共管理学院兼职教授. 主要研究方向为互联网基础资源, 大数据分析, 网络安全和互联网治理. E-mail: xl@ict.ac.cn
杨学
中国互联网络信息中心高级工程师. 主要研究方向为互联网基础资源, 大数据和区块链技术. 本文通信作者. E-mail: yangx@cnnic.cn
徐彦之
广东粤港澳大湾区国家纳米科技创新研究院高级工程师. 主要研究方向为人工智能, 大数据和区块链技术. E-mail: xuyz@cannano.cn
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 21:52
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社