一、DNSSEC简介
DNSSEC是一组定义DNS资源记录扩展信息的规范,这些扩展信息能够让DNS客户端验正DNS服务响应报文中信息的真实性、数据完整性、以及否定响应(如域名或资源记录不存在等)的真实性等。换句话讲,如果一个***者试图修改原始响应报文并将其响应给支持DNSSEC功能的客户端时,客户端可以探测到报文被修改,并能察觉到响应报文与对应区域的授权DNS信息不符等。因此,DNSSEC通过数字签名能帮助客户端判断DNS响应报文数据是否被非法篡改以提高DNS服务的安全性。但DNSSEC不并保证数据的机密性,所有的DNS响应报文仍是未加密的明文;同时,其无法防范DoS***,也无法阻止错误的假定而仅能验正报文是否来源于其授权区域的服务器。
DNSSEC是通过新增多个DNS资源记录如DNSKEY、RRSIG、NSEC和DS RR, 以及新增两个报文首部位CD(Checking Disabled)和AD(Authenticated Data)实现的,而这些则依赖于EDNSO(Extended DNS mechanisms)的功能。基于DNSSEC,区域管理员可以对一个资源记录集合(RRSet)进行数字签名,而后将公钥和此签名信息发布出去。而为了验正DNS响应报文,DNSSEC客户端从报文的数字签名中获取签名信息,并使用签名制作者的公钥解密此数字签名,而后再重新计算数据的特征码并与解密的特征码相比较以验正数据完整性,接下去还需要通过在层次性签名链接中验正此公钥的可靠性。以上所有的检查完全通过后,此DNS响应报文才能够被接受。
、DNSSEC新引进的资源记录
DNSKEY
每个使用DNSSEC的DNS区域都需要一对密钥即“公钥和私钥”,它们由DNS管理员生成,私钥由管理员秘密保存,公钥则发布在区域文件中用于定义DNSKEY资源记录。下面是一个DNSKEY资源记录的例子:
magedu.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3
Cbl+BBZH4b/0PY1kxkmvHjcZc8no
kfzj31GajIQKY+5CptLr3buXA10h
WqTkF7H6RfoRqXQeogmMHfpftf6z
Mv1LyBUgia7za6ZEzOJBOztyvhjL
742iU/TpPSEDhm2SNKLijfUppn1U
aNvv4w== )
 
其中“86400”是此记录的TTL;“256”为标志符,用于说明这是一个区域密钥(Zone Key);“3”是定义协议的代码;“5”是用于指明公钥算法,它表示RSA/SHA1;最后是Base64编码的公钥。
RRSIG
资源记录集合(RRset)是某DNS区域内共享通用名称(common name)、类别(class)和类型(type)的所有资源记录。DNSSEC中的RRsets将由管理员对其进行数字签名,方法是先对计算此RRsets的hash值,然后使用私钥加密此hash值。举例来说,如果一个区域中具有SOA、NS、A、MX和DNSKEY这5类资源记录,那就意味着其需要至少5个不同的RRsets,且每个RRSET都需要各自的RRSIG资源记录。因此,DNSSEC进行签名的单位不是某区域,而是区域中相同类别的DNS查询响应报文。比如:
www.magedu.com. 86400 IN RRSIG A 5 3 86400 20121118152113 (
20121018152113 2642 magedu.com.
oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr
PYGv07h108dUKGMeDPKijVCHX3DDKdfb+v6o
B9wfuh3DTJXUAfI/M0zmO/zz8bW0Rznl8O3t
GNazPwQKkRN20XPXV6nwwfoXmJQbsLNrLfkG
J5D6fwFm8nN+6pBzeDQfsS3Ap3o= )
上面第一行中前四个字段分别表示名称(name)、TTL(86400)、类别(IN)和资源记录类型(A);接下来的一个是类型覆盖(Type Covered)字段(RRSIG A),其值“A”意味着这是一个名称为www.magedu.com的且进行了数字签名的A记录;下一个字段用于定义签名算法,“5”表示使用RSA/SHA1算法;而后字段中的“3”代表记录中对应名称(如这里的www.magedu.com)的数值标签;后面的“86400”表示覆盖A记录RRset的原始的TTL;而20121118152113和20121018152113分别表示“过期时间”和“起始时间”,这用于表明签名的创建时间为2012年10月18号15点21分13秒,过期时间为2012年11月18号15点21分13秒;而“2642”为签名标记,magedu.com为签名者的名称,余下的部分则为RRset的加密资源记录值。
待续……

DNSSEC简介(1)相关推荐

  1. NANOG:面向IT专业人员的在线知识库

    原文:https://dougvitale.wordpress.com/2014/08/14/nanog-online-knowledge-repository-for-it-professional ...

  2. DNSSEC 原理、配置与布署简介

    本文转载自:http://netsec.ccert.edu.cn/duanhx/archives/1479 作者:段海新,清华大学信息网络工程研究中心 ------------------------ ...

  3. DNSSEC?禁止套娃!

    简介 DNSSEC是DNS安全拓展,主要思想是通过在DNS记录中添加加密签名,从而为DNS解析流程提供来源可认证和数据完整性的保障. 本文的目的是帮助大家大致理解DNSSEC的工作流程 建议读者先掌握 ...

  4. 计算机网络 DNSSEC原理

    DNSSEC 原理.配置与布署简介 Posted on May 16, 2011 by Duan Haixin 作者:段海新,清华大学信息网络工程研究中心 摘要:DNSSEC是为解决DNS欺骗和缓存污 ...

  5. pdns backend mysql_DNS系列02-PDNS-Authoritative简介

    image 本文主要介绍PowerDNS的主要特性和初始化安装的配置方法. 1.PowerDNS简介 PowerDNS(PDNS)成立于20世纪90年代末,是开源DNS软件.服务和支持的主要供应商,它 ...

  6. 2016-12-29 DNS简介上 域名空间、域、迭代解析、递归解析、DNS服务器

    2016-12-29 DNS简介上 域名空间.域.迭代解析.递归解析.DNS服务器 Domain name system     域名系统(Domain Name System,DNS)是把名字映射到 ...

  7. [计算机网络]:DNSSEC原理

    DNSSEC 原理.配置与布署简介 Posted on  May 16, 2011  by  Duan Haixin 作者:段海新,清华大学信息网络工程研究中心 摘要:DNSSEC是为解决DNS欺骗和 ...

  8. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  9. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

最新文章

  1. python 断点下载_python多进程断点续传分片下载器
  2. IDA Pro安装教程
  3. go java性能_服务端I/O性能大比拼:Node、PHP、Java和Go
  4. 优先级队列用的的数据结构
  5. Java自动切表_java_Mybatis自动创建表和更新表结构,最近有小伙伴问我mybatis有没有 - phpStudy...
  6. mkdir: Permission denied: user=root, access=WRITE
  7. GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘
  8. jsp中调用静态的java方法调用_如何在JSP/EL中调用静态方法?
  9. 《Java8实战》读书笔记
  10. Android获取安装应用Apk包大小 缓存大小 getPackageSizeInfo StorageManager
  11. PTES执行内容思维导图
  12. xml文件转json文件
  13. Bada学习-(十一)文件系统
  14. 打砖块游戏-第12届蓝桥杯Scratch省赛1真题第5题
  15. 快速部署OpenStack的操作笔记(珍藏版)
  16. 右键新建选项里面没有新建文件夹--win10
  17. js 将正则换成字符串的形式,再由字符串转换成正则
  18. 1625:Sequence Median(翻译)
  19. vuecli4+vant移动端响应式项目踩坑记录
  20. usb驱动程序开发技术总结(三)

热门文章

  1. Struts2框架(二)
  2. 基于auto.js自动撸视频
  3. 修改onnx模型node
  4. 什么是水位?水文中常见的特征水位有哪些,各表达什么意思?
  5. 树莓派4B 64位系统 安装python3.7+tensorflow 2.3.1
  6. 高等数学基于Python的实现
  7. WiFi加密方式有哪些?
  8. url中的参数带有连接符号处理 url参数带路径问题
  9. 查看svn 提交记录
  10. D题:手势识别装置 -- 2018年TI杯大学生电子设计竞赛