CAA 레코드란?
CAA(Certification Authority Authorization) 레코드는 도메인이 어떤 인증 기관(CA)이 자신에 대한 인증서를 발급할 수 있는지를 선언하게 해 줍니다. CA는 CA/Browser Forum의 요구에 따라 이 레코드를 준수해야 하므로, 잘못된 발급(CA가 귀하의 도메인에 대한 인증서를 잘못 발급하는 것)의 위험을 줄입니다. CAA는 TLS 인증서를 위한 간단하면서도 강력한 보호 장치입니다.
CAA 레코드의 작동 원리
CAA 레코드는 허용된 인증 기관을 그 도메인으로 지정합니다. 발급 전에 규정을 준수하는 CA는 귀하의 도메인에 대한 CAA 레코드를 확인하며, 레코드가 존재하는데 그 CA가 나열되어 있지 않으면 발급을 거부해야 합니다. 레코드는 세 부분으로 이루어집니다. 플래그, 태그, 값입니다. 흔한 태그는 issue(CA에 표준 인증서 발급을 인증), issuewild(와일드카드 인증서를 구체적으로 제어), iodef(CA가 정책 위반을 보고하는 URL 또는 mailto)입니다. 예를 들어 issue "letsencrypt.org"는 Let's Encrypt만 발급을 허용합니다.
CAA 조회 결과를 읽는 방법
IPeek는 도메인의 CAA 레코드를 각각의 태그 및 값과 함께 나열합니다. issue 태그를 읽어 어떤 CA가 인증되었는지 확인하세요. "letsencrypt.org"나 "digicert.com" 같은 값은 허용된 기관을 지정합니다. issuewild 태그는 와일드카드 인증서를 누가 발급할 수 있는지 제한합니다. issue 값이 ";"(세미콜론)이면 어떤 CA도 인증되지 않았다는 뜻입니다. 도메인에 CAA 레코드가 없으면 어떤 공용 CA든 발급할 수 있으며, 이것이 허용적인 기본값입니다. 나열된 CA가 실제로 인증서에 사용하는 제공업체와 일치하는지 확인하세요.
CAA 레코드가 인증서 보안을 강화하는 이유
CAA가 없으면 수십 개의 공용 인증 기관 중 어느 것이든 귀하의 도메인에 대한 인증서를 발급할 수 있으므로, 침해되거나 속은 CA 하나만 있어도 공격자가 유효한 인증서를 얻기에 충분합니다. CAA는 그 공격 표면을 귀하가 지정한 CA로만 좁힙니다. CA/Browser Forum이 CA에 발급 전 CAA 확인을 의무화하므로 이 보호는 업계 전반에 강제됩니다. iodef 태그를 추가하면 인증된 CA가 시도된 정책 위반을 알려 줄 수 있어, 받아서는 안 될 인증서를 누군가 얻으려 할 때 조기 경고를 받습니다.