TSIG
TSIGTSIG(Transaction Signature)는 RFC 2845에 정의된 컴퓨터 네트워크 프로토콜이다.주로 DNS(Domain Name System)가 DNS 데이터베이스에 대한 업데이트를 인증할 수 있도록 한다.Dynamic DNS 또는 보조/슬레이브 DNS 서버를 업데이트하는 데 가장 일반적으로 사용된다.TSIG는 공유 비밀키와 일방 해싱을 사용하여 DNS 업데이트를 만들거나 응답할 수 있는 연결의 각 끝점을 인증하는 암호화된 보안 수단을 제공한다.
일반적으로 DNS에 대한 쿼리는 인증 없이 이루어질 수 있지만, DNS에 대한 업데이트는 인터넷 명명 시스템의 구조에 지속적인 변화를 주기 때문에 인증되어야 한다.업데이트 요청이 보안되지 않은 채널(인터넷)을 통해 도착할 수 있으므로 요청의 진정성과 무결성을 보장하기 위한 조치를 취해야 한다.업데이트를 하는 클라이언트와 DNS 서버에 의해 공유되는 키를 사용하면 업데이트 요청의 신뢰성과 무결성을 보장하는 데 도움이 된다.일방 해싱 기능은 악의적인 관찰자가 업데이트를 수정하고 대상에 전달하는 것을 방지하여 소스에서 대상으로 메시지의 무결성을 보장하는 역할을 한다.
기록된 응답이 재사용되지 않도록 TSIG 프로토콜에 타임스탬프가 포함되어 있어 공격자가 TSIG의 보안을 침해할 수 있다.이것은 동적 DNS 서버와 TSIG 클라이언트에 정확한 시계를 포함하도록 요구한다.DNS 서버는 네트워크에 연결되어 있기 때문에 네트워크 시간 프로토콜은 정확한 시간 소스를 제공할 수 있다.
질의와 마찬가지로 DNS 업데이트는 TCP보다 낮은 오버헤드를 요구하기 때문에 일반적으로 UDP를 통해 전송된다.그러나 DNS 서버는 UDP와 TCP 요청을 모두 지원한다.
실행
RFC 2136에 명시된 업데이트는 DNS 서버에 대한 지침 집합이다.여기에는 헤더, 업데이트할 구역, 충족해야 하는 필수 조건 및 업데이트할 레코드가 포함된다.TSIG는 요청의 타임스탬프와 해시를 포함하는 최종 레코드를 추가한다.요청서에 서명할 때 사용했던 비밀키의 이름도 포함돼 있다.RFC 2535에는 명칭의 형태에 대한 권고사항이 있다.
성공적인 TSIG 업데이트에 대한 응답도 TSIG 레코드로 서명된다.장애는 공격자가 특수하게 조작된 업데이트 "프로브"를 사용하여 TSIG 키에 대해 아무것도 배우지 못하도록 서명되지 않는다.
nsupdate 프로그램은 TSIG를 사용하여 DNS 업데이트를 수행할 수 있다.
TSIG 레코드는 업데이트 요청의 다른 레코드 형식과 동일하다.필드의 의미는 RFC 1035에 설명되어 있다.
밭 | 바이트 | 가치 | 설명 |
---|---|---|---|
이름 | 최대치로256번길 | 다르다 | 키 이름, 클라이언트와 서버에서 모두 키 식별 |
유형 | 2 | TSIG(250) | |
클래스 | 2 | 임의(255) | |
TTL | 4 | 0 | TSIG 레코드를 캐시할 수 없음 |
RDLEND | 2 | 다르다 | RDATA 필드의 길이 |
RDATA | RDLEND | 다르다 | 타임스탬프, 알고리즘 및 해시 데이터를 포함하는 구조 |
TSIG에 대한 대안
TSIG는 널리 배치되어 있지만, 프로토콜에는 다음과 같은 몇 가지 문제가 있다.
- 업데이트해야 하는 각 호스트에 비밀키를 배포해야 한다.
- 여전히 일반적인 사용법이지만 HMAC-MD5 다이제스트는 더 이상 매우 안전한 것으로 간주되지 않는다.HMAC-SHA256이 선호된다.
그 결과 여러 가지 대안과 연장이 제안되었다.
- RFC 2137은 공개 키 "SIG" DNS 레코드를 사용하여 업데이트 방법을 지정한다.해당 개인 키를 가지고 있는 클라이언트는 업데이트 요청에 서명할 수 있다.이 방법은 보안 쿼리의 DNSSEC 방법과 일치한다.그러나 이 방법은 RFC 3007에 의해 더 이상 사용되지 않는다.
- 2003년에[update] RFC 3645는 모든 TSIG 클라이언트에 키를 수동으로 배포할 필요 없이 GSS(Generic Security Service) 방식의 보안 키 교환을 허용하도록 TSIG 연장을 제안했다.공개키를 DNS 자원 기록(RR)으로 배포하는 방법은 RFC 2930에 명시되어 있으며, GSS는 이 방법의 하나의 모드로 되어 있다.윈도우즈 Kerberos 서버를 사용하여 수정된 GSS-TSIG는 마이크로소프트 윈도우즈 Active Directory 서버와 클라이언트에 의해 구현되었으며, Secure Dynamic Update라고 한다.RFC 1918 어드레싱을 사용하여 잘못 구성된 DNS(역방향 조회 영역 없음)와 결합하여, 이 인증 체계를 사용한 역방향 DNS 업데이트를 루트 DNS 서버로 일괄 전달하여 루트 DNS 서버로 트래픽을 증가시킨다.루트 DNS 서버로부터 트래픽을 빼앗기 위해 이 트래픽을 처리하는 모든 캐스트 그룹이 있다.[1][2]
- RFC 2845는 TSIG를 정의하고, 128비트 HMAC-MD5라는 하나의 허용 해싱 기능만을 지정하며, 더 이상 높은 안전성으로 간주되지 않는다.RFC 4635가 순환되어 RFC 3174 Secure Hash Algorithm (SHA1) 해싱과 FIPS PUB 180-2 SHA-2 해싱을 MD5를 대체할 수 있었다.SHA1과 SHA-2에서 생성된 160비트 및 256비트 다이제스트는 MD5에서 생성된 128비트 다이제스트보다 더 안전하다.
- RFC 2930은 키를 DNS 서버에서 DNS 클라이언트로 자동으로 배포하는 데 사용되는 DNS 레코드인 TKEY를 정의한다.
- RFC 3645는 gss-api와 TKEY를 사용하여 gss-api 모드로 키를 자동으로 배포하는 GSS-TSIG를 정의한다.
- DNSCurve 제안은 TSIG와 많은 유사점을 가지고 있다.
참고 항목
참조
- ^ "RFC 7534 — AS112 Nameserver Operations". May 2015. Retrieved 2017-12-29.
- ^ "AS112 프로젝트 개요" 2017-12-29를 검색했다.