CAA 레코드(인증 기관 권한)

이메일 및 보안
도메인에 대해 SSL/TLS 인증서를 발급할 수 있는 인증 기관을 지정하는 DNS 레코드입니다.
← 용어집으로 돌아가기

CAA 레코드란?

CAA(인증기관 승인) 레코드는 어떤 인증기관(CA)이 도메인의 SSL/TLS 인증서를 발급할 수 있는지 지정하는 DNS 레코드입니다. CAA는 CA가 침해되더라도 무단 인증서 발급을 막는 보안 통제입니다.

CAA 레코드가 중요한 이유

CAA가 없으면 신뢰할 수 있는 수백 개 CA 중 어디서든 도메인 인증서를 발급할 수 있습니다. 그 결과 CA 침해, 잘못된 발급, 사회공학 공격의 위험이 생깁니다. CAA는 발급 가능한 CA를 제한해 공격 표면을 줄입니다.

CAA의 작동 방식

1. 도메인 소유자 게시: DNS에 CAA 레코드를 게시합니다.

2. 인증서 요청: 요청자가 CA에 인증서를 신청합니다.

3. CA 확인: CA가 도메인의 CAA 레코드를 확인합니다.

4. 허가 시 발급: 허가된 경우에만 발급합니다(또는 CAA가 없을 때).

5. 비허가 시 거부: 허가되지 않은 요청은 거부해야 합니다.

CA 확인 의무

2017년 9월부터 모든 CA는 인증서 발급 전에 CAA를 확인해야 합니다. 이는 CA/Browser Forum Baseline Requirements의 일부입니다.

CAA 레코드 형식

example.com.    IN    CAA    0 issue "letsencrypt.org"

구성 요소:

속성 태그

태그목적예시
issue모든 인증서에 CA 허가issue "letsencrypt.org"(발급 허가)
issuewild와일드카드 인증서에 CA 허가issuewild "digicert.com"(와일드카드 허가)
iodef무단 시도 보고iodef "mailto:[email protected]"(보고 주소)

CAA 레코드 예시

단일 CA(Let's Encrypt만)

example.com.    CAA    0 issue "letsencrypt.org"

여러 CA

example.com.    CAA    0 issue "letsencrypt.org"

example.com. CAA 0 issue "digicert.com"

example.com. CAA 0 issue "sectigo.com"

와일드카드 제한

일반 인증서는 Let's Encrypt, 와일드카드는 DigiCert가 발급하도록 합니다.

example.com.    CAA    0 issue "letsencrypt.org"

example.com. CAA 0 issuewild "digicert.com"

모두 거부(인증서 없음)

인증서가 절대 필요 없는 도메인에 유용합니다.

example.com.    CAA    0 issue ";"

보고 포함

example.com.    CAA    0 issue "letsencrypt.org"

example.com. CAA 0 iodef "mailto:[email protected]"

일반적인 CA 식별자

CA식별자
Let's Encrypt 인증기관letsencrypt.org(발급 기관 식별자)
DigiCert 인증기관digicert.com(발급 기관 식별자)
Sectigo (Comodo) 인증기관sectigo.com(발급 기관 식별자)
GlobalSign 인증기관globalsign.com(발급 기관 식별자)
GoDaddy 인증기관godaddy.com(발급 기관 식별자)
Amazon 인증기관amazon.com(발급 기관 식별자)
Google Trust Services 인증기관pki.goog(발급 기관 식별자)

사용할 정확한 식별자는 CA의 문서에서 확인하세요.

CAA 레코드 구현

DNS 제공업체 이용

대부분의 DNS 제공업체는 관리 화면에서 CAA 레코드를 지원합니다.

존 파일 이용

; Allow Let's Encrypt and DigiCert

@ IN CAA 0 issue "letsencrypt.org"

@ IN CAA 0 issue "digicert.com"

@ IN CAA 0 iodef "mailto:[email protected]"

CAA 상속

CAA 레코드는 DNS 계층 구조를 따릅니다.

example.com.        CAA    0 issue "letsencrypt.org"     ; Applies to all

api.example.com. CAA 0 issue "digicert.com" ; Override for api

CAA 레코드 확인

dig 사용:
dig example.com CAA

; ANSWER SECTION:

example.com. 300 IN CAA 0 issue "letsencrypt.org"

DomScan 사용:
curl "https://domscan.net/v1/health?domain=example.com"

# Reports hasCAA in security details

CAA 모범 사례

1. 항상 CAA 구성: 공격 표면을 줄입니다.

2. 사용하는 모든 CA 포함: CDN과 클라우드 제공업체의 CA도 확인합니다.

3. iodef 설정: 무단 시도를 통지받습니다.

4. 강제 전에 테스트: CA가 계속 발급할 수 있는지 확인합니다.

5. 레코드 최신화: 인증서 요청 전에 새 CA를 추가합니다.

일반적인 CAA 문제

인증서 갱신 실패: CAA에 CA가 없으므로 인증서 만료 전에 추가합니다. CDN 인증서 실패: CDN 제공업체의 CA가 허가되지 않았는지 확인합니다. 하위 도메인 CAA 누락: 하위 도메인은 부모 CAA를 상속하므로 필요하면 특정 레코드를 설정합니다.

CAA는 모든 도메인이 구현해야 하는 단순하면서도 강력한 보안 통제입니다.

이 지식을 활용하세요

DomScan의 API를 사용하여 도메인 가용성, 상태 등을 확인하세요.