zoukankan      html  css  js  c++  java
  • DNS协议工作过程;DNS的安全隐患

    DNS协议工作过程

      下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程。

    1. 主机m.xyz.com先向其本地服务器dns.xyz.com进行递归查询。
    2. 本地域名服务器先查询高速缓存,如果不久前已经查询过域名y.abc.com的IP,那么本地域名服务器就不必向根域名服务器查询,而是直接把高速缓存中存放的上次查询的结果(即y.abc.com的IP地址)告诉用户。
    3. 本地域名服务器采用迭代查询。他先向一个根域名服务器查询。
    4. 根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
    5. 本地域名服务器向顶级域名服务器dns.com进行查询。
    6. 顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.abc.com的IP地址。
    7. 本地域名服务器向权限域名服务器dns.abc.com进行查询。
    8. 权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的ip地址。
    9. 本地域名服务器最后把查询的结果告诉主机m.xyz.com。

    安全隐患

      由于DNS本身的设计缺陷,没有提供适当的信息保护和认证机制,使得DNS很容易受到攻击。比如DNS Spoofing(DNS欺骗)、Cache Poisoing(缓存中毒),Server Compromising(服务器中毒),DoS。DNS Spoofing(DNS欺骗)、Cache Poisoing(缓存中毒)是其中最容易实现,且危害最大的两个攻击。DNS欺骗能够实现的成因是,在DNS报文中只使用一个序列号来进行有效性鉴别,加之DNS客户端简单地信任首先到达的应答包而丢弃所有后到达的应答包,使得攻击者很容易监听到查询请求并伪造应答包给DNS客户端。缓存中毒的成因也是由于DNS协议没有提供恰当的认证机制。在已知端口号的前提下,利用“生日攻击”,通过发送大量的DNS应答包来猜测攻击目标的DNS请求包的ID号,如果所发送的伪造应答包中存在和请求包的ID一致的情况,也就是产生了所谓的“碰撞”,则欺骗成功。

    消除DNS安全隐患

    1. 对少数信息安全级别要求高的网站避免使用DNS。可以直接通过IP地址访问,绕开DNS服务。
    2. 防范ARP攻击。因为DNS欺骗需要以ARP欺骗为基础。避免了ARP攻击的可能,自然无法进行DNS欺骗。
    3. 发送DNS请求时采用随机端口,降低“碰撞”成功的可能性。
    4. 为信息安全要求高的网站建立标准的IP映射表。为少部分网站(比如设计私密信息的网站或经常访问的网站)制作静态标准DNS映射表。
    5. 被动检测。针对攻击往往在短时间内发送大量针对同一个域名的请求包的特点,进行检测或者限制发送的请求包的数量。
  • 相关阅读:
    008. redis 主从复制原理、断点续传、无磁盘化复制、过期 key 处理
    007.redis replication 以及 master 持久化对主从架构的安全意义
    006. redis 如何通过读写分离来承载读请求 QPS 超过 10 万 +?
    005.在项目中部署 redis 企业级数据备份方案以及各种踩坑的数据恢复容灾演练
    人月神话---向进度落后的项目中增加人手,只会使进度更加落后
    人月神话---空泛的估算
    人月神话---不为系统测试安排足够的时间简直就是一场灾难
    人月神话---成本的确随开发产品的人数和时间的不同,有着很大的变化,进度却不是如此
    springmvc其他类获取request记得web.xml
    gson转换问题
  • 原文地址:https://www.cnblogs.com/d0main/p/6915003.html
Copyright © 2011-2022 走看看