使用脱机密钥推送DNSSEC更新

以非专业的身份,我照顾了大约18个域名的DNS:大部分是直系亲属的个人/虚荣域名。 整个shebang被外包给一个廉价的pipe理托pipe服务提供商,他们有一个web界面,通过它我pipe理区域。

这些领域是不重要的,以针对他们的攻击似乎比我的提供者的系统的一般妥协的可能性要小得多,在这一点上,他们的所有客户的logging可能被改变为误导通信量(可能具有极长的TTL)。 DNSSEC可以减轻这种攻击,但前提是该区域的私钥不在主机提供商手中。

所以,我想知道: 如何才能让DNSSEC私钥离线,但是仍然会将已签名的区域传送给外包的DNS主机?

最明显的答案(对我来说,至less)是运行自己的影子/隐藏的主(提供者可以从属),然后根据需要将脱机签名的区域文件复制到主服务器。

问题是我唯一需要控制的机器是我的笔记本电脑,它通常连接一个典型的家用ADSL(即通过dynamic分配的IP地址在NAT之后)。 让它们成为奴隶(例如,当我的笔记本电脑处于离线/不可用状态时,在该区域有一段非常长的Expiry时间)不仅需要一个dynamic的DNSlogging,从它们可以从属(如果确实它们可以从一个指定的主机比一个明确的IP地址),但也会涉及到我的笔记本电脑上运行一个DNS服务器,并打开它和我的家庭networking到传入区域传输请求:不理想。

更喜欢更多的面向推送的devise,即我的笔记本电脑启动将离线签名的区域文件/更新传送给提供者。

我研究了nsupdate是否可以适应这个法案:文档有点粗略,但是我的testing(使用BIND 9.7)表明它确实可以更新DNSSEC区域,但是只有服务器拥有密钥才能执行区域签名; 我还没有find一个方法来进行更新,包括相关的RRSIG / NSEC /等。 logging并让服务器接受它们。 这是一个支持的用例吗?

如果不是的话,我怀疑唯一能解决这个问题的解决scheme将涉及到基于DNS的区域更新的非DNS转换,并欢迎由(希望价格低廉)托pipe服务提供商支持的build议:SFTP / SCP? rsync的? RDBMS复制? 专有的API?

最后,这种设置的实际含义是什么? 重要的轮换在我身上跳跃是一个明显的困难,尤其是如果我的笔记本电脑长时间处于离线状态。 但是这些区域是非常稳定的,所以也许我可以用长寿命的ZSK来逃避** …?


*虽然我可以在一个外包的VPS上运行一个影子/隐藏的主人,但我不喜欢必须保护/pipe理/监视/维护另一个系统的开销。 更不要说这样做的额外财务成本了。

**好吧,这将使确定的攻击者能够重放过期的logging – 但是这些领域的风险和影响都是可以忍受的。

你的问题不是关键轮换,因为RRSIG到期。

钥匙的寿命通常在6个月到3年的时间范围内测量,而且越来越多的学者认为你甚至不应该滚动钥匙。

但是为了避免重播攻击,您需要定期重新签署所有logging,而RRSIG有效期通常为1到2周。

如果您自己签署区域并将其传送到主机,则需要在每个RRSIG过期事件之前执行此操作,同时考虑到TTL过期等问题(请参阅draft-ietf-dnsop-dnssec-key-timing和RFC 4641 )。

如果您的DNS提供商正在做的事情,他们应该有一个(非常)长寿命的钥匙签名密钥 ,应该保存在硬件安全模块,只有在需要的时候才能上网,这应该是有效的。

只有区域签名密钥才需要保持联机状态。