修改BIND9加密的可行性

时间:2010-10-05 19:47:09

标签: encryption dns bind

我正在努力为我的CS专业的最后一年项目提出想法。讲师建议他对监督感兴趣的一个想法是探索ID-based encyption在保护DNS方面的应用。从我的初步研究来看,我倾向于一个项目,我试图将DNSSEC与这个加密标准结合起来。

我的想法是,我可能能够使用BIND9的简单DNS级别,减去DNSSEC,并在它们之上构建一个类似于DNSSEC的定制方案。我可能也必须修改库的部分,以便在我的新方案中使用RFC 2535的功能,例如KEY和SIG RRsets。或者最好的方法是编辑DNNSEC在库中的实现方式,并尝试撕掉OpenSSL并用挂钩代替我自己的迷你加密库?有没有人有任何使用BIND库的经验,可以告诉我这种方法有多糟糕,库如何适应可扩展性等?

1 个答案:

答案 0 :(得分:0)

请说明当您说“保护DNS”时,您的意思是:

  1. 加密签署单个DNS消息的内容(在传输级别),或
  2. 以加密方式加密单个DNS消息的内容,或
  3. 以加密方式签署DNS区域数据,以便不会被欺骗
  4. 这三个特征或多或少完全正交。

    TSIG执行第一项操作 - 它可以防止单个数据包在传输过程中被修改,并且只能从跳到跳

    DNScurve执行第二次,因此隐式第一次(因为如果数据包被修改,解密将不起作用),但不是标准化的。这是一个有趣的想法,但距离任何重要部署都有很长的路要走。

    DNSSEC只执行三个中的最后一个。它旨在提供端到端加密证明,即DNS客户端接收的数据与权威服务器中包含的数据相同,无论涉及多少递归解析器。

    在维基百科页面上,基于身份的加密似乎是关于在双方之间保护消息,而不是关于签署数据。如果这是正确的,它更接近TSIG或DNScurve而不是DNSSEC。