방금 Let's Encrypt를 사용하기 시작했습니다. http-01-challenge는 매우 간단합니다.
- 웹서버가 응답하도록 만들기http://example.com
- 챌린지 파일에 대해서는 Let's Encrypt에 문의하세요.
- 다음에 파일을 제공하십시오.http://example.com/.well-known/acme-challenge
- example.com에 대한 TLS 인증서 받기
매력처럼 작동합니다. 하지만 그들은 안전하지 않은 http 연결을 사용하여 내가 실제로 example.com의 소유자인지 어떻게 확인합니까?
내 데이터 센터(또는 ISP)의 일부 관리자가 인증서를 요청하고 Let's Enrypt가 서버의 신원을 확인하기 위해 보내는 http 요청을 가로챌 수는 없나요?
답변1
실제로 HTTP-01 문제에 대한 중간자 공격에 대한 완벽한 보호는 없습니다.
Let's Encrypt 검증 노드와 서버 사이의 트래픽을 가로챌 수 있는 사람은 챌린지를 통과하고 인증서를 발급받을 수 있습니다. BGP 속임수를 사용할 수 있다면 일반적인 의미에서 반드시 중간에 있지는 않을 수도 있습니다.
이는 HTTP-01 챌린지 및 서명되지 않은 도메인의 경우 DNS-01 챌린지에도 적용됩니다.
이 문제는 Lets Encrypt에만 국한된 것이 아니며 DV 인증서에 대해 기존 CA에서 수행한 유효성 검사에도 일반적으로 이와 동일한 문제가 있다는 점은 주목할 가치가 있습니다. 일반적으로 HTTP, DNS 및 이메일 검증 옵션을 제공하며 모두 MITM 공격에 취약합니다.
무엇암호화하자가지다문제를 완화하기 위해 수행됨는 서로 다른 데이터 센터의 여러 테스트 노드에서 각 검증을 실행하여 인증서를 발급하려면 모든 테스트 결과가 일치해야 한다는 것입니다. (나는 이것이 대부분의 전통적인 CA보다 이러한 유형의 남용에 덜 취약하다고 생각합니다.)
이것은 적어도 "중간"에 있을 수 있는 범위를 줄입니다. "중간"의 대부분은 보기에 따라 다르기 때문입니다. 다른 테스트 노드에서.
이는 Let's Encrypt(및 일반적으로 CA)의 자동화된 도메인 유효성 검사의 기본 동작에 관한 것이지만 도메인 소유자에게는 공용 CA가 레코드를 확인해야 한다는 요구 사항과 함께 몇 가지 추가 제어 권한이 부여되었습니다 CAA
.
실제로 제어권을 갖기 위해 도메인 소유자는 다음 단계를 수행할 수 있습니다.
CAA
데이터가 변조되지 않도록 영역에 DNSSEC 서명
(DNS-01의 경우 챌린지 자체도 보호함)CAA
인증서 발급을 제한하기 위해 하나 이상의 레코드를 추가합니다
(특히CAA
발급이 허용되는 CA의 이름뿐만 아니라 허용되는 해당 CA의 계정 이름도 지정하는 레코드).
CAA
다음과 같은 레코드가 있습니다 .
example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12346789"
사기꾼이 애초에 도전을 사소하게 시작할 수 없기 때문에 문제는 훨씬 줄어듭니다.
accounturi
데이터 의 매개변수 에 특별한 주의를 기울이십시오 CAA
. 이로 인해 지정된 CA가 있는 도메인 소유자의 계정에만 정책이 적용됩니다. CA만 지정하고 계정은 지정하지 않는
기록 CAA
은 유효하더라도 제한적인 도움이 됩니다. 이러한 정책에서는 여전히 해당 CA의 다른 고객이 인증서 발급을 요청할 수 있도록 허용하기 때문입니다.
답변2
http 사용에 대한 정당성사양에 HTTP-01 챌린지가 있을 때:
많은 웹 서버가 미묘하고 직관적이지 않은 방식으로 권한이 낮은 특정 테넌트 사용자에게 기본 HTTPS 가상 호스트를 할당하기 때문에 인증 확인은 HTTPS가 아닌 HTTP를 통해 완료되어야 합니다.
이 챌린지는 ACME 프로토콜 메시지와 다릅니다. 사양에서는 https를 요구합니다. ACME는 또한진실성그리고다시 하다서명된 메시지에 대한 보호. 트래픽이 캡처되더라도 암호화되지 않은 문제보다 트래픽을 손상시키는 것이 더 많습니다. 물론 약간의 위험이 있지만 더 나은 도메인 확인 절차에 대한 대안은 무엇입니까?
승인되지 않은 인증서를 모니터링하는 보다 완전한 접근 방식에는 인증서 투명성이 포함될 수 있습니다. 귀하의 이름에 대해 CT 로그에서 검색하거나 알림을 설정하세요. 발급 CA, 일련번호, 날짜가 모두 익숙해야 합니다.