> THE-ARSENAL
> _

우리는 흔히 인터넷을 자유로운 바다나 국경 없는 세상이라고 착각하곤 한다. 클릭 한 번이면 지구 반대편으로 편지를 보낼 수 있고, 누구와도 연결될 수 있으니 그렇게 느낄 법도 하다. 하지만 비즈니스의 세계, 특히 이메일이라는 거대한 물류 시스템 안으로 들어오면 이야기는 완전히 달라진다. 이곳은 세상에서 가장 까다롭고 보수적인 국경 검문소가 24시간 돌아가는 살벌한 국제공항이다. 네가 공들여 쓴 뉴스레터나 제안서가 고객의 '받은 편지함'이라는 목적지에 도착하기 위해서는 수많은 검문 검색을 통과해야만 한다.

많은 사람들이 자신의 메일이 스팸함에 처박히거나 아예 실종되었을 때, 그저 문구가 너무 자극적이어서 혹은 운이 나빠서라고 생각한다. 하지만 진실은 훨씬 더 냉정하다. 너의 메일이 입국 심사대에서 거절당한 것이다. 왜냐하면 너의 메일 서버가 여권을 챙기지 않았거나, 위조된 여권을 들고 입국을 시도했기 때문이다. 오늘날의 이메일 수신 서버들, 즉 구글이나 마이크로소프트 같은 거대 플랫폼들은 깐깐하기 그지없는 입국 심사관이다. 그들은 발신자가 누구인지, 어디서 왔는지, 그리고 그 신분이 확실한지 0.1초 만에 판단하고 의심스러우면 가차 없이 격리 구역으로 보내버린다. 이것은 단순한 기술의 문제가 아니다. 이것은 신뢰의 문제이며, 네가 비즈니스를 운영하는 방식에 대한 근본적인 태도를 보여주는 지표다. 자, 이제부터 네 도메인이라는 국가의 품격을 높이고, 네 이메일이 VIP 통로로 통과할 수 있도록 만드는 디지털 여권 위조 판별법에 대해 아주 상세하게 이야기해 보려 한다. 공항 보안 검색대 앞에 선 여행자의 마음가짐으로 따라오길 바란다.

위조 여권 감별사 SPF: 발급 국가가 일치하는가?

가장 먼저 마주하는 검문소는 SPF(Sender Policy Framework)라는 이름의 1차 입국 심사대다. 이곳에서 확인하는 것은 아주 기초적이지만 가장 중요한 정보다. 바로 '발급 국가'가 일치하는지 확인하는 과정이다. 현실 세계에서 여권을 보면 발행 국가가 찍혀 있듯이, 이메일 세계에서는 발송된 서버의 IP 주소가 곧 출신 국가다. 네가 만약 'ceo@mybrand.com'이라는 명함을 들고 메일을 보냈다고 치자. 그런데 그 메일을 실어 나른 비행기, 즉 메일 서버의 IP 주소가 너희 회사가 지정한 공식 공항이 아니라, 저기 어딘가 제3국의 허름한 사설 서버라면 심사관은 즉시 경고음을 울린다.

SPF는 네가 소유한 도메인의 DNS 설정이라는 공고판에 "우리 회사 직원들은 오직 이 IP 주소를 가진 서버를 통해서만 메일을 보냅니다"라고 미리 적어두는 선언이다. 이것은 공개된 약속이다. 수신 측 심사관은 메일이 도착하자마자 네 도메인의 DNS를 조회한다. 그리고 지금 도착한 메일의 발송 IP가 네가 적어둔 리스트에 있는지 대조한다. 만약 리스트에 없는 IP라면? 심사관은 이 메일을 위조 여권을 든 밀입국자로 간주한다. 해커들이 너의 도메인을 사칭해서 피싱 메일을 보낼 때 가장 흔하게 걸리는 것이 바로 이 SPF 검문소다. 그들은 너의 이메일 주소는 흉내 낼 수 있어도, 네가 허용한 서버의 IP까지 탈취해서 보내기는 어렵기 때문이다. 따라서 SPF 설정은 네 도메인의 국경을 지키는 가장 기본적인 철조망이자, 네 신분을 증명하는 첫 번째 관문이다. 이 설정조차 되어 있지 않다면, 네 메일은 여권도 없이 공항에 나타난 수상한 여행객 취급을 받아도 할 말이 없는 셈이다.

생체 인식 정보 DKIM: 여권 사진과 실물이 일치하는가?

SPF라는 1차 관문을 통과했다고 해서 안심하기는 이르다. 여권의 발급 국가가 일치한다고 해서 그 여권이 진짜라는 보장은 없기 때문이다. 누군가 중간에 여권 사진을 바꿔치기했거나 내용을 조작했을 수도 있다. 그래서 필요한 것이 DKIM(DomainKeys Identified Mail)이라는 2차 심사, 즉 생체 인식 정보 확인이다. 이것은 메일 내용이 배달되는 과정에서 단 한 글자라도 변조되지 않았음을 수학적으로 증명하는 기술이다.

이 과정은 디지털 서명이라는 암호화 기술을 사용한다. 네가 메일을 보낼 때, 너의 서버는 메일의 본문과 헤더 정보를 바탕으로 고유한 암호화 도장(개인키)을 쾅 찍어서 보낸다. 이것은 마치 편지 봉투를 밀랍으로 봉인하는 것과 같다. 수신 측 심사관은 네 도메인 DNS에 공개된 검증 도구(공개키)를 가져와서 이 봉인을 확인한다. 만약 배달 과정에서 누군가 메일 내용을 가로채 계좌번호를 바꿨다거나 악성 링크를 심었다면, 이 디지털 봉인은 깨지게 된다. DKIM 검증이 실패한다는 것은 여권 사진과 눈앞에 서 있는 사람의 얼굴이 다르다는 뜻이다. 심사관은 "이 사람은 아까 그 나라에서 온 건 맞는데, 중간에 성형수술을 했거나 다른 사람으로 바꿔치기 당했다"라고 판단한다.

SPF가 '어디서 왔느냐'를 따지는 물리적 출처 확인이라면, DKIM은 '그 내용이 온전하냐'를 따지는 무결성 검증이다. 이 두 가지가 모두 갖춰져야 비로소 심사관은 네 메일을 신뢰할 수 있는 진짜 손님으로 대우하기 시작한다. 많은 기업들이 SPF만 대충 설정해두고 DKIM을 간과하는데, 이는 여권은 가져갔지만 지문이 있는지 확인하는 것은 거부하겠다는 것과 다름없다. 요즘 같은 고도화된 보안 시대에 지문 없는 여권이 얼마나 의심받을지는 굳이 설명하지 않아도 알 것이다.

입국 거부 명령 DMARC: 위조범을 추방할 것인가, 격리할 것인가?

SPF와 DKIM이 심사관이 수행하는 검사라면, DMARC(Domain-based Message Authentication, Reporting, and Conformance)는 네가 심사관에게 내리는 '지침서'이자 '명령'이다. 아무리 검사를 철저히 해도, 위조 여권이 발견되었을 때 어떻게 처리할지 기준이 없다면 심사관은 혼란스러워할 것이다. 그냥 돌려보낼지, 아니면 경찰에 신고할지, 아니면 일단 들여보내고 감시할지 결정해야 한다. DMARC는 바로 이 결정권을 네가 쥐는 것이다.

DMARC는 수신 측 서버에게 이렇게 말한다. "만약 내 이름으로 온 메일이 SPF 검사도 통과 못 하고, DKIM 서명도 깨져 있다면, 그건 내가 보낸 게 아니니까 이렇게 처리해!"라고 말이다. 이것은 네 브랜드의 평판을 네가 직접 관리하겠다는 강력한 의지의 표명이다. DMARC가 없다면, 위조 메일이 발견되어도 수신 측 서버는 자체적인 정책에 따라 스팸함에 넣을지 말지를 결정한다. 즉, 네 운명을 남의 손에 맡기는 꼴이다. 하지만 DMARC를 설정하면 네가 주도권을 잡는다. 너는 위조 메일을 아예 차단해버리라고 명령할 수도 있고, 일단 스팸함으로 보내라고 할 수도 있으며, 매일매일 누가 내 이름을 사칭하려고 시도했는지 상세한 보고서를 보내달라고 요구할 수도 있다. 이것은 공항 관제탑에 앉아 네 도메인으로 들어오고 나가는 모든 트래픽을 감시하고 통제하는 권한을 갖는 것과 같다. 진정한 의미의 브랜드 보호는 바로 이 DMARC에서 완성된다고 해도 과언이 아니다.

p=none에서 p=reject로: 입국 심사 강화의 3단계

그렇다면 당장 내일부터 모든 위조 메일을 차단해버리는 강력한 정책을 시행해야 할까. 워워, 진정해라. 보안은 속도전이 아니라 단계별 점령전이다. 갑자기 국경을 폐쇄하면 선량한 관광객, 즉 중요한 비즈니스 메일까지 실수로 차단될 위험이 있다. 그래서 우리는 DMARC를 설정할 때 3단계의 로드맵을 따라야 한다. 이를 '정책의 에스컬레이션'이라고 부른다.

첫 번째 단계는 '모니터링(p=none)' 단계다. 이것은 "일단 검사는 하되, 위조가 발견되어도 아무런 조치를 취하지 말고 나에게 보고서만 보내라"는 정책이다. 이 단계는 일종의 CCTV 설치 기간이다. 네 도메인으로 메일이 어떻게 발송되고 있는지, 내가 모르는 곳에서 내 이름을 팔아먹는 놈들은 없는지, 혹은 우리 회사 마케팅 팀이 실수로 인증되지 않은 툴을 쓰고 있지는 않은지 파악하는 시기다. 이 기간 동안 너는 매일 날아오는 XML 보고서를 분석하며 식별되지 않은 IP들을 정리하고, 정당한 발송 서버들을 SPF 리스트에 추가하는 작업을 해야 한다.

두 번째 단계는 '격리(p=quarantine)' 단계다. 모니터링을 통해 어느 정도 정리가 되었다면, 이제 의심스러운 놈들을 분류하기 시작한다. "위조로 판명되면 일단 스팸함(격리 구역)으로 보내라"는 명령이다. 이것은 일종의 경고 사격이다. 확실한 우리 편은 통과시키고, 애매하거나 수상한 놈들은 격리하여 실질적인 피해를 막는 것이다. 이때부터 해커들의 공격은 효력을 잃기 시작하고, 네 도메인의 신뢰도는 급격히 상승한다.

마지막 세 번째 단계는 '거부(p=reject)' 단계다. 이것은 완전한 봉쇄다. "인증되지 않은 메일은 아예 수신 거부하고 반송시켜라." 이 단계에 도달하면 네 도메인은 철옹성이 된다. 해커가 네 CEO를 사칭해 메일을 보내도, 그 메일은 상대방의 서버 문턱조차 넘지 못하고 공중에서 증발한다. 구글이나 야후 같은 거대 메일 서비스들은 p=reject 정책을 가진 도메인을 매우 신뢰하며, 이런 도메인에서 온 정상 메일은 프리패스로 받은 편지함에 꽂아준다. 이것이 바로 우리가 도달해야 할 최종 목적지다.

내 도메인이 해커들의 '불법 체류' 통로로 쓰이고 있다면?

많은 사람들이 "우리 회사는 작아서 해커들이 노리지 않을 거야"라고 안일하게 생각한다. 하지만 해커들은 대기업만 노리지 않는다. 오히려 보안이 허술한 중소 규모의 도메인을 찾아내어 그들의 '숙주'로 삼는 것을 더 좋아한다. 네 도메인이 SPF나 DMARC 설정 없이 방치되어 있다면, 해커들은 네 도메인을 경유지로 삼아 수만 통의 스팸과 피싱 메일을 전 세계에 뿌린다.

이때 발생하는 문제는 단순히 네가 모르는 메일이 나간다는 것에서 그치지 않는다. 인터넷 세계에는 '도메인 평판(Domain Reputation)'이라는 블랙리스트가 공유된다. 네 도메인에서 스팸이 쏟아져 나온다는 사실이 감지되면, 전 세계 주요 보안 업체들은 네 도메인을 '스팸 발송지'로 낙인찍어버린다. 이렇게 되면 네가 나중에 진짜 중요한 계약서나 청구서를 보낼 때, 그 메일은 상대방의 메일 서버에서 즉시 차단당한다. "어? 저번에 쓰레기 투기하던 그 도메인이네? 입국 금지!"라고 말이다. 한번 떨어진 평판을 다시 올리는 것은 지옥처럼 힘들다. 수많은 기관에 소명 메일을 보내고, 몇 달간 깨끗한 메일만 보내며 근신해야 겨우 풀릴까 말까다. 즉, 보안 설정을 하지 않는 것은 네 집 대문을 활짝 열어두고 "범죄자들이여, 우리 집 주소를 마음대로 쓰세요"라고 방조하는 것과 같다. 결국 경찰이 들이닥쳤을 때 책임을 지는 것은 집주인인 바로 너다.

완벽한 디지털 여권을 만드는 DNS 설정 가이드

자, 이제 이론은 충분히 들었으니 실전으로 들어가 보자. 겁먹을 필요 없다. 개발자가 아니어도, 검은 화면의 터미널을 몰라도 할 수 있다. 네가 도메인을 구매한 사이트(가비아, 후이즈, 고대디 등)의 관리 페이지에 들어가서 'DNS 설정' 메뉴를 찾기만 하면 된다. 여기서 우리는 텍스트(TXT) 레코드라는 것을 세 개 추가할 것이다. 이것이 바로 여권 발급 신청서다.

첫째, SPF 레코드다. DNS 레코드 추가 버튼을 누르고 타입은 TXT, 호스트 이름은 @(또는 빈칸)로 둔다. 값에는 v=spf1 include:_spf.google.com ~all 같은 형식을 입력한다. 여기서 include: 뒤에는 네가 사용하는 메일 서비스(구글, 아웃룩 등)가 지정해 준 주소를 넣으면 된다. 마지막의 ~all은 "일단 의심되면 들여보내되 표시만 해둬(SoftFail)"라는 뜻인데, 나중에는 -all(HardFail)로 바꿔서 보안을 강화해야 한다. 하지만 처음엔 ~all로 시작해서 배달 사고를 방지하는 것이 국룰이다.

둘째, DKIM 레코드다. 이건 네 메일 서비스 관리자 페이지(예: 구글 워크스페이스 관리 콘솔)에서 생성해야 한다. 'DKIM 설정' 메뉴에서 '새 레코드 생성'을 누르면 긴 외계어 같은 문자열이 나온다. 이걸 복사해서 DNS 설정에 붙여넣기만 하면 된다. 호스트 이름에는 google._domainkey 같은 선택자(Selector)를 확인하여 입력하고, 값에는 복사한 긴 암호키를 넣는다. 저장하고 나서 메일 서비스 페이지에서 '인증 시작' 버튼을 누르면 끝이다. 이제 네 메일에는 보이지 않는 디지털 도장이 찍히기 시작한다.

셋째, 대망의 DMARC 레코드다. 다시 DNS 설정으로 가서 TXT 레코드를 추가한다. 호스트 이름은 _dmarc다. 값에는 v=DMARC1; p=none; rua=mailto:admin@yourdomain.com이라고 적는다. p=none은 아까 말한 모니터링 단계다. rua= 뒤에는 DMARC 보고서를 받아볼 네 이메일 주소를 적으면 된다. 이렇게 설정해두면 며칠 뒤부터 구글 등이 보내주는 XML 보고서가 날아오기 시작할 것이다. 그 보고서를 보면서 차근차근 p=quarantine을 거쳐 p=reject로 나아가면 된다.

이 과정이 복잡해 보인다고? 비즈니스를 하면서 세금 계산서를 발행하고 계약서를 검토하는 건 당연하게 생각하면서, 정작 그 계약서가 오가는 통로를 닦는 일은 왜 소홀히 하는가. 이메일 보안 설정은 선택 사항이 아니다. 그것은 디지털 세상에서 비즈니스를 하는 사람의 기본 소양이자, 네 브랜드의 생존을 위한 최소한의 안전장치다. 지금 당장 DNS 설정 페이지를 열어라. 그리고 네 도메인에 튼튼한 여권을 쥐여줘라. 그래야 그 비즈니스가 전 세계 어디든 퍼스트 클래스를 타고 날아갈 수 있을 테니까.

3줄 요약

  1. 이메일 전송은 국경 없는 여행이 아니라 엄격한 입국 심사를 거치는 과정이며, SPF, DKIM, DMARC는 안전한 입국을 보장하는 필수 디지털 여권이다.
  2. SPF는 발송지 IP를 검사하고, DKIM은 메일 내용의 위변조를 확인하며, DMARC는 위조된 메일을 어떻게 처리할지 결정하는 최종 정책 지휘관 역할을 한다.
  3. 갑작스러운 차단보다는 모니터링(p=none)부터 시작해 격리, 거부(p=reject) 순으로 정책을 강화해야 하며, 이는 도메인 평판을 지키고 오픈율을 높이는 지름길이다.