问题标签 [dnssec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Why ECDSA public key generated by OpenSSL doesn't match DNSKEY generated by DNS server?
I am trying to get public key from known private key for DNSSEC algorithm 13 (ECDSAP256SHA256). I used this example: https://stackoverflow.com/a/17062076/3090865
Which modified for my key looks this:
Trying:
This is what I have inside DNS server (PowerDNS):
Getting DNSKEY record:
And it absolutely doesn't match the key I got with OpenSSL. Why?
c - 如何使用 OpenSSL 为 DNSSEC 生成 ECDSA 私钥和公钥?
我正在尝试为 DNSSEC 算法 13 创建私钥和公钥:
测试:
(Perl 行只是将十六进制表示法转换为二进制,然后再转换为 base64。)
但是,如果我将此私钥设置为 DNS 服务器(它只接受私钥并即时生成公钥),它会返回与 OpenSSL 返回的公钥不匹配的公钥
所以,我得到了A97cCGOlwwJA+lnNl4VHBW5Hiy79yZ3dWXbOf6LaLMRbE51vDD/d/DjI CLTJBRSGW9dmpOdp6iU4rTcs52wqSQ==
which doesn't match BAPe3AhjpcMCQPpZzZeFRwVuR4su/cmd3Vl2zn+i2izEWxOdbww/3fw4yAi0yQUUhlvXZqTnaeol
OK03LOdsKkk=
。
为什么会这样?
php - 使用 openssl 使用 PHP 验证 RRSIG
我正在尝试进行RRSIG
验证,我正在尝试在 PHP 中使用 openssl 库。但是我在将公钥传递给openssl_verify
函数时遇到了问题。
这是一个基本代码,使用 Net/DNS2 库通过 DNSSEC 选项进行 DNS 查询。并获取 DNSKEY 和 RRSIG。
我收到此错误消息,
使用时:
所以我尝试添加 BEGIN/END 标头
并收到此错误消息,
所以看来我给函数提供了错误的格式,我还在谷歌搜索,但欢迎任何帮助。
最终,我喜欢使用以下方法验证签名:
dns - 如何列出所有 DNS 记录,包括 DANE TLSA
我想列出所有/任何 DNS 记录,包括 DANE TLSA。
和
我得到了所有记录,包括 DNSSEC 等,但没有关于 DANE 的记录。为什么?
和
我得到了 DANE TLSA 记录。
我已经阅读了有人想要查询所有子域的问题 如何列出所有 DNS 记录? 并且我知道这只有通过区域转移才有可能。
但是'_443._tcp.' 不是一个真正的子域,是吗?我以为这只是一个 SRV 记录。那么如何查询包括 DANE TLSA 在内的任何内容?
linux - managed-keys-zone ./IN: No DNSKEY RRSIGs found for '.': 成功
我在 centos vps 中运行 bind9 并开始实现 dnssec 所以我已经为我的域签署了 zonefiles 但以下输出每小时都会显示在日志文件中
我的named.conf 文件包含相关信息。我禁用了 dnssec-validation,因为 bind 会引发大量错误:
我的问题是这些消息是什么意思,有什么我可以做的,所以它不会出现在日志文件中吗?谷歌并没有太大帮助。
我的 example.com 和 sub.example.com 等域已正确签名,并且在 zonefile 内的密钥中有签名,那么我该如何处理根区域?
已解决:原来我的 dns 转发器正在过滤 dnssec 查询。此外,vps 的时区设置错误。一旦我更正了时区设置并将我的 dns 转发器更改为支持 dnssec 的服务器,一切都完美无缺。
php - 构建 DNSKEY RR 的 RDATA 部分
我正在为计费系统完成域注册器插件(在这种情况下还管理域配置),最后一点与实现 DNSSEC 支持有关。
计费系统正在向我的 PHP 插件发送以下 SAMPLE DNSSEC 相关数据:
RFC 4034具有以下内容:
同一协议的附录 B:
注册域名的注册表需要4 个必填字段:
- 钥匙标签
- 算法(被认为等于插件输入中的 keyAlg)
- 摘要类型(我相信它在插件输入中称为 digestAlg)
- 摘要(可能与摘要相同)
其他可选字段是:标志、协议、算法、公钥(在插件中是“密钥”...)
现在这就是我迷路的地方......如何在 PHP 中实现上述 C 函数?
- 如何构造作为
key
字符数组的“DNSKEY RDATA”?(我猜测标志八位字节是默认值,比如 0、256 或 257 还不确定),然后协议八位字节是示例中的 keyAlg 值 5,然后是始终为 3 的算法八位字节,最后 - 关键八位字节是关键. 猜对了吗??) - char key[] 数组 RDATA 是二进制数组吗?还是ASCII字符?(意思是,一旦构建,我不必先将其转换为二进制位?)
- 算法的目的是什么
& 0xFFFF
?什么是 php 等价物?我倾向于认为它几乎相同,因为 PHP 在语法上是基于 C 的......但是如果没有正确的输入/输出示例,将很难确保我正确理解它......
dns - 如何使用 CAA 查找返回 SERVFAIL 和 REFUSED 代码?
根据 RFC 6884,我正在开发 SSL 证书颁发的 CAA(认证机构授权)记录的验证。
我想知道如何检查 CAA 测试套件 ( https://caatestsuite.com/ )中存在的 FQDN 15、16、18 和 19 。当我将 Lookup(String domain, int Type.CAA) 用于 servfail、拒绝,甚至过期和 missing.caatessuite-dnssec.com 域时,它返回一个空的 CAA 记录列表。此外,它在我的控制台中显示一条错误消息,其中包含 NXDOMAIN Rcode,而不是 (pe) SERVFAIL Rcode。
我不知道如何解决这个问题,因为当它返回一个空的 CAA 记录列表时,这意味着所有 CA 都可以为给定域颁发证书。
我将不胜感激,希望您能理解我的观点。谢谢你们。
dns - 为什么 Google 和 CloudFlare DNS-over-HTTPS 不支持为 DNSSEC 返回 DS RRSIG?
这些 API 会返回执行 DNSSEC 验证所需的所有其他字段,并且来自 Google 和 CloudFlare 的 API 协议格式完全相同,但它们都特别省略了 DS RRSIG 字段。
为什么会这样?我想我们只是在进行 DNS 查找,但是通过 HTTPS,那么为什么要特别省略这个字段呢?
我们已经尝试联系,但没有多少运气能够深入了解它。
dns - 联合王国 使用 DNSSEC 进行 dns 区域验证
长时间的听众,第一次来电。
我正在编写一个包含 DNSSEC 验证的 DNS 解析器,并且在对受影响的 RFC 进行了几次通读后,我注意到了一些我无法真正理解的东西。
在解析uk.
(特别是co.uk.
)TLD 中的域期间,我遇到了 DNSSEC 验证触发的无限循环。为了简单起见,我们假设该进程已经缓存了所有根区域,所以让我们从那里开始:
/li>co.uk. IN NS
在其中一个注册的uk.
名称服务器上执行查询- 在任何事情之前(例如将响应元素视为有效),应该进行 DNSSEC 验证;所以我们很自然地对 RRSIG 签名的 DNSKEY 执行查询(我们注意到这
co.uk.
是记录的签名者) - 为了获得区域的 DNSKEY,
co.uk.
我们需要知道该区域的 NS 权威(提醒,我们已经拥有该信息,但尚未设法验证它),因此我们co.uk. IN NS
向父区域 (uk.
)发起查询名称服务器,我们又回到了起点。
我确定这是一个设计缺陷,但无法真正理解是什么。从逻辑上讲(这里触发循环的关键步骤是)在验证之前不应该考虑使用 RR,并且从逻辑上讲,子区域委派记录也不应该使用子区域的 DNSKEY 进行签名,我认为甚至如果父区域也对子区域具有权威性。
请帮助并提前感谢您