GN⁺: 512비트 DKIM 키를 $8 이하의 비용으로 클라우드에서 해독한 방법
(dmarcchecker.app)- 연구를 통해 1,024비트 미만의 공개 DKIM 키가 1,700개 이상 발견됨. RSA 키가 1,024비트 미만일 경우 보안이 취약하며 2018년 RFC 8301 이후 사용이 중단됨
- 실험 목표 : 공개된 512비트 RSA 공개 키에서 개인 키를 추출하여 주요 이메일 서비스(Gmail, Outlook, Yahoo Mail 등)에서 DKIM 검증이 통과되는지 확인
- 이메일을 원래 발신자인 것처럼 서명할 수 있는지 실험함
RSA 공개 키 디코딩 및 키 생성
- 공개 키는
Redfin.com
도메인의 512비트 RSA 키 : ASN.1 DER 형식으로 인코딩되어 있으며 Base64로 추가 인코딩됨 -
키 디코딩 과정
-
p
태그에 포함된 Base64로 인코딩된 공개 키를 Python으로 디코딩 -
n
(모듈러스)와e
(공개 지수) 추출
-
- RSA 모듈러스 인수분해
- CADO-NFS 사용: Number Field Sieve 알고리듬 기반
- 클라우드 서버 스펙: 8 vCPU, 32GB RAM (Hetzner 이용)
- 추가 32GB 스왑 공간 설정 후 CADO-NFS 실행
- 결과: 약 86시간 소요 후, n을 두 소인수 p와 q로 분해 성공
- RSA 개인 키 생성
- p와 q를 통해 RSA 개인 키를 생성
- Python과 PyCryptodome 라이브러리를 사용하여 개인 키를 PEM 형식으로 출력함
DKIM 서명 테스트
- OpenDKIM에 개인 키 통합 후 이메일 발송
- 여러 이메일 호스팅 서비스에서 DKIM 검증 결과 확인
- 테스트 결과:
- DKIM 통과: Yahoo Mail, Mailfence, Tuta
- DKIM 실패: Gmail, Outlook, Zoho, Fastmail 등
- Yahoo와 Mailfence, Tuta는 512비트 키의 취약성을 인지하지 못하고 통과 처리
최종 결론
- 512비트 RSA 키의 취약gka
- 30년 전에는 슈퍼컴퓨터로 가능했던 작업이 이제 클라우드 서버에서 몇 시간 만에 $8 이하로 가능
- DKIM 서명 시 1,024비트 미만 키는 절대 사용하지 말아야 함
- 권장 사항
- 이메일 제공자는 1,024비트 미만 RSA 키를 사용하는 DKIM 서명을 자동으로 거부해야 함
- 도메인 소유자는 DKIM 레코드를 점검해 1,024비트 이상으로 업데이트 필요
- Base64 문자열 길이로 DKIM 키 확인 가능: 1,024비트 키는 최소 216문자
Hacker News 의견
-
14년 전, 512비트 키로도 가능했던 작업에 대한 글을 작성했음. 사람들이 소수나 비트코인을 찾을 때, 검색 공간을 줄이기 위한 "지름길" 라이브러리가 존재하는지 궁금해함. 이러한 라이브러리가 암호화 서비스 설계에 영향을 미치는지에 대한 의문을 제기함
-
재미있는 실험으로 4096비트 DKIM 키를 설정해보라는 제안이 있음. 대부분의 온라인 DKIM/SPF 검사기는 DNS를 확인할 때 문제가 없다고 하지만, 테스트 이메일을 보내면 실패로 표시됨. 2048비트 이상의 키를 사용하는 것은 허용되지만, 처리할 필요는 없다는 점을 배움
-
암호화 전반에 걸쳐 키 크기를 급격히 늘리지 않는 이유에 대한 질문이 있음. 컴퓨팅 성능이 빠르게 증가하고 양자 컴퓨팅에 대한 논의가 계속되고 있음에도 불구하고, 방어 측면에서 더 큰 키를 사용하지 않는 이유를 궁금해함
-
CADO-NFS를 사용하여 512비트 RSA DKIM 키를 28시간 만에 데스크탑 컴퓨터로 분해했음. 1024비트 키는 여전히 취미 수준에서는 어려우나, 학계에서는 가능할 것이라고 언급함
-
제목이 약간 변경되었음. 원래 제목은 "How We Cracked a 512-Bit DKIM Key for Less Than $8 in the Cloud"였음
-
일부 DNS 제공자는 1024비트 키만 설정할 수 있도록 제한함. 예를 들어 wordpress.com이 그러함
-
Hover는 255자 이상의 TXT 레코드를 지원하지 않아 DNS 관리를 중단해야 했음. Digital Ocean을 사용하여 문제를 해결함. 타원 곡선 암호화가 표준이 되기를 바람
-
대부분의 제공자가 512비트 키를 안전하지 않다고 인식하고 DKIM 서명을 거부했지만, Yahoo Mail, Mailfence, Tuta는 dkim=pass 결과를 보고했음. Google이 DKIM 서명 때문에 실패했는지, SPF 실패 때문인지에 대한 의문이 있음
-
실용적인 접근 방식에 대한 칭찬이 있음. 이 기사가 얼마나 오래된 것인지 불분명하지만, 작성자의 이전 제출물을 기반으로 오늘 작성된 것으로 추정됨