MTA-STS란 무엇입니까?
MTA-STS(Mail Transfer Agent Strict Transport Security)를 통해 도메인은 들어오는 SMTP 연결이 유효한 인증서와 함께 TLS를 사용해야 함을 선언할 수 있습니다. _mta-sts.yourdomain.com의 DNS TXT 레코드와 mta-sts.yourdomain.com/.well-known/mta-sts.txt의 HTTPS를 통해 제공되는 정책 파일을 결합합니다. DNS 레코드는 정책이 존재함을 알리고 정책이 업데이트될 때마다 변경되는 ID를 전달합니다.
MTA-STS가 없으면 경로에서 공격자가 SMTP의 기회적 TLS를 자동으로 제거하여 메일이 일반 텍스트로 배달되도록 할 수 있습니다. MTA-STS는 TLS를 협상할 수 없는 경우 전송 서버에 배달을 거부하도록 지시하여 이러한 격차를 해소합니다. 발신자가 정책을 준수할 수 없을 때 보고하는 이메일을 보내는 TLS-RPT와 자연스럽게 결합됩니다. 표준은 RFC 8461에 정의되어 있습니다.
MTA-STS 레코드를 확인하는 이유는 무엇입니까?
1정책이 검색 가능한지 확인
DNS 레코드가 없거나 형식이 잘못된 경우 발신자는 정책 파일을 찾지 않습니다. 정책 파일이 해결되는지 확인하세요.
2절대 변하지 않는 ID를 잡아라
정책이 변경될 때마다 ID를 업데이트해야 합니다. 그렇지 않으면 캐시가 오래된 정책을 제공합니다. 검사기가 현재 값을 표시합니다.
3자동 TLS 다운그레이드 방지
작업 기록은 보낸 사람에게 암호화를 요구하도록 신호를 보내 전송 중인 메일이 가로채지 않도록 보호합니다.
4시행 모드 전 검증
테스트 모드에서 기록과 정책이 일치하는지 확인하여 시행으로 전환해도 합법적인 메일이 반송되지 않도록 합니다.
MTA-STS 작동 방식 — 단계별
모드, MX 호스트 및 max_age를 설명하는 정책 파일을 https://mta-sts.yourdomain.com/.well-known/mta-sts.txt에서 호스팅합니다.
버전과 고유 ID가 포함된 TXT 레코드를 _mta-sts.yourdomain.com에 게시합니다.
TXT가 기록하고 정책을 확인하는 메일 쿼리를 전달하려고 하는 송신 서버가 공지됩니다.
HTTPS 정책 파일을 가져오고 수신 MX와 그에 대한 TLS 인증서의 유효성을 검사합니다.
정책이 시행 모드에 있고 TLS를 확인할 수 없는 경우 보낸 사람은 일반 텍스트로 돌아가는 대신 전달을 거부합니다.
MTA-STS 레코드 구문
_mta-sts.example.com. 3600 IN TXT "v=STSv1; id=20240118T120000Z"
# https://mta-sts.example.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mail.example.com
max_age: 604800DNS 태그 분석
v=STSv1— 프로토콜 버전, 항상 첫 번째아이디=— 고유 토큰, 모든 정책 업데이트 시 변경 사항정책 파일 필드
일반적인 MTA-STS 오류 및 수정 사항
정책 파일에 연결할 수 없습니다.
.well-known 파일은 유효한 인증서를 사용하여 HTTPS를 통해 로드해야 합니다. 발신자가 이를 적용하기 전에 호스트를 수정하세요.
오래된 ID
정책을 편집한 후 ID 범프를 잊어버리면 보낸 사람이 이전 정책을 유지하게 됩니다. 업데이트할 때마다 변경하세요.
MX 불일치
mx 항목이 실제 MX 레코드와 일치하지 않는 경우 적용 모드는 합법적인 메일을 차단하고 동기화를 유지합니다.
집행을 위해 곧바로 점프
TLS-RPT로 테스트를 시작하면 시행 모드에서 메시지가 반송되기 전에 문제를 포착할 수 있습니다.
자주 묻는 질문(FAQ)
MTA-STS(Mail Transfer Agent Strict Transport Security)를 사용하면 도메인에서 메일이 유효한 인증서와 함께 TLS를 통해 배달되어야 함을 발신 서버에 알릴 수 있습니다. _mta-sts.yourdomain.com의 DNS TXT 레코드를 HTTPS 호스팅 정책 파일과 결합합니다. 이것이 없으면 공격자가 네트워크 경로에서 SMTP의 기회주의적 암호화를 제거하여 메일이 일반 텍스트로 이동하게 될 수 있습니다.
_mta-sts.yourdomain.com의 TXT 레코드에는 버전(v=STSv1)과 ID(정책 파일을 업데이트할 때마다 변경해야 하는 고유 토큰)라는 두 가지 항목이 포함됩니다. 레코드에는 정책 자체가 포함되어 있지 않습니다. 이는 단순히 정책이 존재함을 알리고 변경된 ID를 통해 발신자가 정책을 다시 가져와야 할 때 신호를 보냅니다.
모드는 DNS 레코드가 아닌 HTTPS 정책 파일에 설정됩니다. 테스트 모드에서는 발신자가 TLS 실패를 보고하지만(TLS-RPT를 통해) 여전히 메일을 전달하므로 문제를 안전하게 찾을 수 있습니다. 시행 모드에서는 TLS를 확인할 수 없는 경우 발신자가 전달을 거부합니다. 모범 사례는 먼저 보고를 활성화한 상태에서 테스트를 실행한 다음 모든 것이 작동하는지 확인한 후 적용으로 전환하는 것입니다.
둘 다 인바운드 메일에 TLS가 필요하지만 신뢰를 다르게 고정합니다. DANE은 DNSSEC 및 TLSA 레코드를 사용하여 인증서를 고정하므로 배포되는 DNSSEC에 따라 달라집니다. MTA-STS는 공개 웹 PKI와 HTTPS 호스팅 정책을 사용하므로 DNSSEC 없이 작동합니다. 기존 인프라에 배포하는 것이 더 간단하기 때문에 많은 도메인에서 MTA-STS를 먼저 채택합니다.
일반적인 이유는 누락되거나 잘못된 형식의 TXT 레코드, 정책 변경 후 업데이트되지 않은 ID 또는 유효한 인증서를 사용하여 HTTPS를 통해 로드되지 않는 정책 파일입니다. 이 검사기는 DNS 레코드를 확인합니다. 또한 /.well-known/mta-sts.txt의 파일에 접근할 수 있는지, 해당 파일의 mx 항목이 실제 MX 레코드와 일치하는지 확인하세요.