DNSCurve 대 DNSSEC

DNSCurve 대 DNSSEC

두 가지 접근 방식의 차이점과 장단점에 대해 자세히 답변해 주실 수 있는 분이 계십니까?

저는 프로그래머도 아니고 DNS 전문가도 아닙니다. 나는 DNS에 대한 기본 지식이 충분하고 카민스키 버그와 같은 것들이 어떻게 작동하는지 이해할 수 있는 충분한 지식을 가지고 있습니다. 내가 이해한 바에 따르면 DNSCurve는 더 강력한 암호화 기능을 갖추고 있으며 설정이 훨씬 간단하고 전체적으로 더 나은 솔루션입니다.

DNSSEC는 불필요하게 복잡하고 깨지기 쉬운 암호화를 사용하지만 DNSCurve에서는 제공하지 않는 엔드투엔드 보안을 제공합니다. 그러나 내가 읽은 많은 기사에서는 엔드투엔드 보안이 거의 쓸모가 없거나 아무런 차이가 없다고 지적하는 것 같습니다.

그렇다면 어느 것이 사실인가요? 어느 것이 더 나은 솔루션입니까, 아니면 각각의 단점/장점은 무엇입니까?

편집하다:

기밀 유지가 아닌 인증이 목표인 경우 메시지 내용을 암호화하면 어떤 결과가 나오는지 누군가 설명해 주시면 감사하겠습니다.

키가 1024비트 RSA 키라는 증명은 다음과 같습니다.여기.

답변1

DNSCurve는 홉별(hop-by-hop) 기반, 특히 재귀 서버와 권한 있는 서버 사이의 홉에서 DNS 패킷에 실제 암호화를 제공합니다.

해당 경로에서 사용되면 영역 데이터의 인증을 제공할 수 있습니다. 그러나 보안이 "홉별"에만 적용되므로 추가 다운스트림 클라이언트는 이 인증의 이점을 누릴 수 없습니다. 해결 경로 중간에 있는 악의적인 해결 프로그램은 여전히 ​​잘못된 데이터를 제공할 수 있습니다.

반면에 DNSSEC는 수신된 데이터가 권한 있는 서버의 데이터와 동일함을 증명하는 엔드투엔드 검증 가능한 암호화 서명을 제공합니다. DNSSEC는 암호화 기술을 사용하지만 실제로 DNS 트래픽을 암호화하지는 않습니다.

DNSCurve의 타원 곡선 암호화 알고리즘을 사용하면 동일한 수준의 암호화 강도를 달성하기 위해 RSA보다 훨씬 작은 키를 사용할 수 있습니다. 그러나 DNSSEC가 가정하는 목록에 유사한 알고리즘을 포함시키자는 제안이 있습니다.

DNSSEC는 IETF(RFC 4034 및 RFC 4035, RFC 5155로 업데이트됨)에 의해 표준화되었으며 BIND(물론) 및 NSD/Unbound를 포함하여 매우 널리 사용되는 여러 이름 서버 구현에서 구현됩니다. PowerDNS는 곧 DNSSEC를 지원할 예정입니다.

DNSSEC는 확실히 복잡하지만 이를 단순화하려는 노력이 진행 중입니다(예:http://opendnssec.org/) 배포가 지속적으로 증가하고 있습니다. 다양한 TLD(.se, .br, .org, .gov 등)는 이미 DNSSEC에 서명되어 있으며 루트 영역은 올해 말까지 DNSSEC에 서명될 것이라고 발표되었습니다.

DNSCurve는 매우 흥미롭지만 독립적인 개발 방식으로 인해 중요한 배포를 볼 가능성이 거의 없습니다. IMHO가 있습니다루트 서버에 배포될 가능성이 있습니다.

그런데 "해제 가능한 암호화"를 사용하는 DNSSEC에 대한 귀하의 주장은 전혀 근거가 없는 것으로 보입니다. 무슨 근거로 그런 말을 하는 걸까요?

영역 서명 키의 길이는 일반적으로(반드시 그런 것은 아님) 1024비트입니다. 이러한 키는 일반적으로 매달 롤링되며, 현재 최선의 추정으로는 롤백되는 데 최소 2년이 걸릴 것으로 예상됩니다.무차별 대입1024비트 키.

현재 시점에서 1024비트 RSA에 대한 무차별 대입 공격은 프로세서 또는 메인보드당 수십 기가바이트의 메모리를 갖춘 수백만 개의 컴퓨팅 코어에서 약 2년이 소요됩니다.

이는 전형적인 봇넷이 아닙니다. 같은 논문에서:

다음으로 특수 목적 하드웨어를 고려할 때 가장 낙관적인 접근 방식은 1024비트 RSA 모듈러스를 체질하는 작업이 약 US $10,000,000에 1년 안에 완료될 수 있으며 일회성 개발 비용은 약 US $20,000,000이며 이에 상응하는 시간과 비용이 든다는 것입니다. 매트릭스의 경우. 우리의 의견으로는 그러한 디자인에 대한 (일반적인) 회의론은 요점을 벗어난 것입니다. 이러한 수치는 상한선(예: "조심하세요. 1024비트 RSA는 2년 안에 약 2천만 달러에 깨질 수 있습니다(무료 개발 가정)). 그러나 하한선(즉, "걱정할 이유 없음)"으로 해석하면 안 됩니다. 너무 많습니다. 매우 유리한 공격 조건에서도 1024비트 RSA 모듈러스를 인수하려면 여전히 엄청난 리소스가 필요합니다.” 따라서 추정치는 위협적인 것으로 읽어서는 안 되며, 자신감을 불러일으키는 것으로 읽어야 합니다.

아니면 한 살부터PCPro 기사:

RSA 1,024비트 키를 해독하려면 Kaspersky는 1,500만 대의 컴퓨터가 1년 동안 제대로 작동해야 성공할 것이라고 추정합니다.

솔직히 말해서, 어느 누구도 한 도메인의 ZSK를 크랙하는 데 그렇게 많은 노력을 기울이지는 않을 것입니다!

게다가 실제 보안은 키 서명 키에 있으며 이는 일반적으로 최소 2048비트 이상이며 종종 더 긴 경우도 있습니다(4096비트). RSA 키를 해독하는 데 걸리는 시간은 선형이 아닌 키 길이에 따라 기하급수적으로 증가합니다.

답변2

LWN에 대한 코멘트주장

DNSCurve는 메시지가 아닌 도관을 보호합니다. 악성 캐시로부터 보호하는 데 사용할 수 없으며 DNSSEC와 기능적으로 동일하지 않습니다.

그리고 링크는프랑스어로 토론.

답변3

보안의 핵심은 '암호화'가 아닌 '신뢰'를 이해하는 것이 중요합니다. "암호화"를 사용하여 누군가와 "안전한" 대화를 나눌 수 있지만 상대방이 당신이 생각하는 사람이 아니라면 무슨 소용이 있습니까?

DNSSec와 DNSCurve의 주요 차이점은 DNSSec가 모든 것에 서명하고 루트부터 각 운영자 DNS 서버가 제공하는 호스트 레코드까지 명확한 신뢰 체인이 있다는 것입니다.

DNSCurve는 신뢰 체인이 전혀 없는 어떤 것에도 서명하지 않습니다. DNSCurve의 초점은 DNS 응답의 수동적 또는 맹목적인 자세를 방지하는 것으로 좁혀졌습니다.

결국 실용성으로 귀결됩니다... DNSSec에는 엄청난 운영상의 어려움이 있습니다. 실제로 지구 크기의 트러스트 앵커를 어떻게 만들 수 있습니까? 수백만 개의 도메인이 서명될 때 서명을 위조하는 데 필요한 키 자료가 잘못된 사람의 손에 들어가거나 부적절하게 사용되지 않는다는 확신을 심어주기 위해 어떤 메커니즘이 사용됩니까? 대규모 신뢰는 운영 관점에서 끌어내고 유지하는 것이 매우 어렵습니다.

DNSCurve는 시도조차 하지 않습니다.

이제 기본 질문에 답한 후 실제로 해결해야 할 문제가 무엇인지, 두 기술 중 어느 것이 더 적합한지에 대한 의견을 제시합니다.

인터넷은 본질적으로 중요한 토론과 계몽의 통로인 동시에 넌센스의 통로이기도 합니다. 내 생각에는 완전히 신뢰할 수 있는 인터넷은 합리적이거나 달성 가능한 목표가 아니며 만약 그렇게 된다면 자유와 변칙적인 발언 및 행동 측면에서 부정적인 영향을 미칠 가능성이 높습니다.

제 생각에는 필요한 것은 DNS 솔루션뿐입니다.최소기본 전송만큼 신뢰할 수 있습니다. 맹목적으로 허위 메시지를 삽입하거나 수동적으로 요청을 스니핑하고 UDP 응답을 위조하는 공격자가 DNS 레코드를 손상시키는 것을 실질적으로 방지해야 합니다. 그 이상의 보안을 보장할 필요는 없습니다. 이런 방식으로 인터넷은 계속해서 패킷을 라우팅하고 안정적이지만 반드시 안전한 방식은 아닌 방식으로 DNS 서비스를 제공합니다.

제 생각에는 DNSSec와 그 글로벌 트러스트 앵커는 존재하지 않는 문제를 해결하는 데 거의 전적으로 초점을 맞춘 바보 같은 심부름입니다. (인터넷에서 사용할 수 있는 모든 종단 암호화 시스템에는 이미 고유한 신원 확인 방법이 있습니다.)

DNSSec는 느리고 비용이 많이 들며 IPv6로의 전환과 같이 어제 해결되어야 했던 DNS의 명확하고 현재의 문제를 상당히 지연시킵니다.

DNSCurve가 하는 일은 이름 지정 서비스가 다음 위치에 있도록 네트워크를 보호하는 것입니다.최소네트워크를 통한 기본 패킷 전송만큼 안정적이지만 그 이상은 아닙니다. 내 생각에는 이것이 현실 세계에서 실제로 직면하고 있는 정확한 문제를 해결하는 것 같습니다. DNSCurve는 수동 MITM을 방지하지만 SSH 스타일의 "신뢰의 도약" 서명 캐싱 없이는 활성 MITM을 실질적으로 보호하지 않습니다.

DNSSec의 대규모 배포를 옹호하는 악마의 역할을 하는 것은 잠재적으로 긍정적인 영향을 미칠 수 있습니다. PKI 인프라는 SSL 보안 서버 CA를 대체하고 IPSec 및 피어 간의 기타 암호화된 대화에 대한 일부 신뢰 바인딩을 제공할 수 있습니다.

답변4

나는 DNSCurve가 더 나은 선택이라는 결론에 도달했습니다.

왜냐하면:

DNSSEC는 서명을 위해 1024비트 RSA 키를 사용합니다. 이는 이미 2003년 대규모 네트워크인 봇넷에 의해 깨지지 않는 것으로 간주되었습니다. 그 사건은 오늘날에도 여전히 사실입니다.

올바르게 구현하려면 많은 코드를 다시 작성해야 합니다.

루트 서버는 완전한 보호를 제공하지 않고 전체 데이터베이스에 서명하지 않습니다.

도메인 만료 후 최대 30일까지 재생 공격이 가능합니다.

보안을 위해서는 모든 도메인 이름을 노출해야 합니다.

DNSCurve에는 이러한 문제가 없으며 DNSSEC와는 달리 인증, 가용성 및 기밀성(이름을 노출할 필요가 없음)을 허용합니다. 또한 코드 수정이 필요하지 않으며 추가 소프트웨어만 필요합니다.

또한 DNSSEC가 제공하지 않는 위조된 패킷에 대한 보호 기능과 nonce 사용으로 인한 재생 공격에 대한 보호 기능도 제공합니다. DNSCurve는 DNSSec과는 달리 MITM 공격을 받을 수 있지만, DNSCurve가 루트까지 구현되었다면 이런 일은 발생하지 않을 것으로 알고 있습니다.

관련 정보