PowerDMARC

DKIM 취약점이란 무엇인가요? DKIM l= 태그 제한 설명

DKIM 취약점
읽기 시간: 6

DKIM의 l= 태그(소문자 "L")는 서명해야 하는 메시지 본문의 길이를 지정하는 선택적 태그입니다. l= 태그를 사용하면 메시지 본문에 부분 서명을 할 수 있으므로 이는 DKIM 취약점으로 간주될 수 있습니다. 이로 인해 위협 행위자가 DKIM으로 서명된 메시지를 더 쉽게 악용할 수 있습니다. 

방법을 살펴 보겠습니다. DKIM 의 작동 방식과 DKIM 서명에 DKIM l= 태그 사용을 권장하지 않는 이유를 살펴보겠습니다.

DKIM 신체 길이 제한의 목적(l=태그)

DKIM(도메인키 인증 메일)은 이메일의 내용이 전송 중에 변경되지 않았는지 확인하는 이메일 인증 프로토콜입니다. 이를 통해 수신자는 이메일이 실제로 전송되었고 해당 도메인의 소유자가 승인했는지 확인할 수 있습니다.

중개 서버가 내 메시지를 전달할 때 메시지 본문을 변경할 수 있습니다. 바닥글이나 메시지 내용에 추가 정보를 추가할 수도 있습니다. DKIM l 태그는 전달 중 또는 메일링 리스트에 의해 내용이 수정된 경우 정상적인 메시지가 DKIM에 실패하는 것을 방지하기 위해 도입되었습니다. 

DKIM l= 태그의 작동 방식

  1. 길이 지정: 길이 지정 l= 태그 뒤에는 메시지 본문에서 DKIM 서명에 포함되는 바이트 수를 나타내는 정수가 이어집니다.
  2. 부분 신체 서명: 길이를 지정하면 DKIM 서명을 생성하는 데 사용되는 해시에 본문의 첫 번째 'n' 바이트만 포함됩니다. 이 길이를 초과하여 본문을 수정해도 DKIM 서명 확인에 영향을 미치지 않습니다.

예시: l-Tag DKIM 취약점이 있는 DKIM 서명

본문 길이가 1000바이트이지만 처음 500바이트만 서명된 이메일을 예로 들어 보겠습니다:

DKIM-서명: v=1; a=rsa-sha256; c=relaxed/relaxed; d=notify.domain.com; s=selector1; t=1718098168; i=@notify.domain.com; l=500; bh=SF9K/AZh8dO2XDYZlOtjrmHj5txv4H4qjhFr+q3ASuM=; h=Subject:Message-ID:받는사람:받는날짜:내용 유형:보낸사람:보내는사람:받는사람:참조:제목; b=h0Jp5xjZSjUo06er2Gm5k0Fvt0cuC0xOnfobu1oYAFT2ugVxY0h/xly6x/E/pPT2S

이 예제에서는 l=500 는 이메일 본문의 처음 500바이트만 DKIM 서명에 포함됨을 나타냅니다.

그러나 유럽에 본사를 둔 선도적인 도메인 등록기관, Zone.eu의 분석가 팀은 는 DKIM 서명의 l 태그와 관련된 심각한 취약점을 발견했습니다. l 태그는 메일 전달 시나리오에서 이점을 무시하고 사이버 범죄자들이 DKIM 검사를 통과하는 피싱 이메일을 보내는 데 쉽게 악용할 수 있습니다.

DKIM l= 태그 취약점

DKIM l= 태그는 보안 상태를 약화시켜 이메일 인증이 설정되어 있어도 도메인을 공격에 취약하게 만들 수 있으므로 사용하지 않는 것이 좋습니다. 

공격자는 메시지 본문의 내용을 변경하고 이메일의 서명되지 않은 섹션에 "l" 태그에 정의된 바이트 범위를 벗어나는 악성 파일이나 링크를 첨부할 수 있습니다. 이 이메일이 수신자에게 도달하면 DKIM 인증을 통과하게 됩니다. 이후 도메인에 DMARC를 사용하도록 설정한 경우 이 이메일도 통과합니다. 

수신자가 도메인 이름을 신뢰하고 이 이메일을 열면 또 다른 피싱 공격의 희생양이 될 수 있습니다! 이로 인해 심각한 개인정보 침해, 자격증명 도용, 신뢰도 하락이 발생할 수 있습니다. 이 과정에서 고객이 금전적 손실을 입는 경우 금전적 보상을 제공할 책임이 있을 수도 있습니다. 

이 DKIM 취약점을 악화시키는 BIMI의 역할 

BIMI는 이메일에 브랜드 로고를 추가할 수 있는 기능으로 인해 보안 및 마케팅 업계에서 인기를 얻고 있는 새로운 프로토콜입니다. 얼마 전 Gmail 및 Apple Mail과 같은 주요 이메일 제공업체는 시각적 확인을 통해 이메일을 전문적으로 보이게 하고 보안을 강화하기 위해 BIMI에 대한 지원을 확대했습니다. 

서명에 DKIM l 태그를 사용하는 도메인에서 보낸 위조 메시지는 DKIM 및 DMARC 검사를 통과하므로 이러한 악성 이메일에도 브랜드의 BIMI 로고가 첨부됩니다! 이제 도메인 이름에서 보낸 이 가짜 메시지는 모든 인증 필터를 통과할 뿐만 아니라 브랜드 로고도 첨부되어 있습니다! 따라서 수신자가 해당 브랜드의 신뢰성을 신뢰할 가능성이 더욱 높아집니다. 

DKIM l= 태그의 이러한 잠재적인 악용 가능성 때문에 Google 관리 워크스페이스 도움말 센터의 Gmail에서는 이 태그의 사용을 강력히 권장하지 않습니다. 여기에 Google의 의견은 다음과 같습니다.:

"Google Workspace 이외의 이메일 시스템으로 DKIM을 설정하는 경우에는 발신 메시지에 DKIM 길이 태그(l=)를 사용하지 마세요. 이 태그를 사용하는 메시지는 남용에 취약합니다."

DKIM l 태그와 관련된 위험은 다음에서 더 강조됩니다. RFC 6376 섹션 8.2 "본문 길이 제한("l=" 태그)의 오용"이라는 제목의 문서에 자세히 설명되어 있습니다. RFC는 DKIM 서명에 l 태그를 지정하면 사용자가 아무런 경고 없이 악성 이메일 콘텐츠에 액세스할 수 있다고 경고합니다. RFC는 DKIM 서명자에게 이 태그가 있는 경우 각별한 주의를 기울일 것을 촉구하며, 평가 서버에 대해서도 l= 태그가 지정된 DKIM 서명을 완전히 무시하도록 권고합니다.

DKIM 서명에 l-Tag DKIM 취약점이 있는지 확인하세요. 

먼저 도메인이 취약한지 여부를 확인하는 것이 중요합니다. 이를 위해 사용할 수 있는 몇 가지 방법을 아래에 나열했습니다: 

수동 방법: 원본 DKIM 서명 헤더 확인 

1. 자신에게 빈 이메일을 보냅니다(이 경우 Gmail 사용자의 예를 사용합니다).

2. 이 이메일을 엽니다.

3. 오른쪽 상단 모서리에 점 3개로 표시된 '추가 옵션'으로 이동합니다.

4. 4. '원본 표시'를 클릭합니다.

5. 5. 원본 메시지 페이지에서 아래로 스크롤하여 원시 헤더를 확인합니다. 

6. "DKIM-서명:" 섹션으로 이동하여 구문을 분석합니다. DKIM 서명 헤더에 DKIM l= 태그가 있으면 도메인이 취약한 것입니다. 없는 경우 정상이며 아무런 조치를 취할 필요가 없습니다. 

자동화된 방법: 이메일 헤더 분석 도구 사용

1. PowerDMARC에 가입하여 무료 평가판을 받습니다. 분석 도구 > MailAuth 분석기로 이동합니다. 

2. 자동 생성된 이메일 주소를 복사하여 Gmail에서 새 테스트 메일의 수신자로 붙여넣습니다. 테스트 메일을 보냅니다. 

3. 이제 포털로 돌아가 페이지를 새로고침합니다. 작업 섹션에서 '보기' 아이콘을 클릭하여 결과를 살펴봅니다. 

4. DKIM, SPF, DMARC 구성 등에 대한 정보가 포함된 종합 보고서를 즉시 생성합니다! 

5. 아래로 스크롤하여 DKIM 서명 헤더를 원시 및 구문 분석된 형식으로 볼 수 있습니다. 여기에서 서명에 l= 태그가 있는지 확인할 수 있습니다. 태그가 있는 경우 이 취약점을 제거하기 위한 조치를 취해야 합니다. 

예시: l-Tag DKIM 취약점이 없는 DKIM 서명

DKIM-서명: v=1; a=rsa-sha256; c=relaxed/relaxed; d=notify.domain.com; s=selector1; t=1718098168; i=@notify.domain.com; bh=SF9K/AZh8dO2XDYZlOtjrmHj5txv4H4qjhFr+q3ASuM=; h=Subject:Message-ID:받는사람:받는날짜:내용 유형:보낸사람:보내는사람:받는사람:참조:제목; b=h0Jp5xjZSjUo06er2Gm5k0Fvt0cuC0xOnfobu1oYAFT2ugVxY0h/xly6x/E/pPT2S

DKIM 취약점 예방하기: DKIM 모범 사례란 무엇인가요?

DKIM 프로토콜을 최대한 활용하고 싶다면 전문가들이 추천하는 몇 가지 팁을 참고하세요: 

  1. DKIM 서명 헤더에 DKIM l= 태그를 사용하지 마세요. 
  2. 이메일 서비스 제공업체에 연락하여 DNS에 추가할 새 DKIM 공개 키(l= 태그 제외)를 설정하세요. 
  3. DKIM 키를 주기적으로 교체하여 l-tag 취약점이 있는 오래된 키를 이 취약점이 없는 새 키로 교체할 수 있도록 하세요. 
  4. 1024비트 대신 2048비트 키와 같은 강력한 DKIM 키를 사용하여 DKIM 이메일 보안의 강도를 높일 수 있습니다. 
  5. 호스트된 호스팅 DKIM 솔루션을 사용하여 DKIM 선택기와 키를 관리하고 중앙 집중식 단일 대시보드에서 DKIM 인증 결과를 모니터링하세요.
  6. 자동 DKIM 생성기를 사용하여 DKIM 키를 생성합니다. DKIM 생성기 도구를 사용하여 생성하세요. 이렇게 하면 간과하기 쉬운 구문 오류를 방지하는 데 도움이 됩니다.

DKIM과 함께 사용할 수 있는 보완 프로토콜

DKIM의 효율성을 높이기 위해 다음 프로토콜을 구현할 수 있습니다(마지막에 보너스 권장 사항도 있습니다!): 

  1. 사용 ARC(인증된 수신 체인) 를 사용하면 정상적인 이메일이 전달되거나 메일링 리스트를 사용하는 동안에도 인증 검사를 통과할 수 있습니다. 이렇게 하면 DKIM l= 태그가 자동으로 무효화됩니다. ARC는 메시지의 원본 헤더를 자동으로 보존하여 오탐을 방지합니다.
  2. 인증 정확도와 전반적인 보안을 강화하기 위해 SPF 및 DMARC와 같은 폴백 메커니즘을 구성하세요. 
  3. 사용 DMARC 보고서 를 활성화하여 이메일 채널과 발신 출처를 추적하세요. DMARC 보고서를 사용하면 악성 IP 주소와 발신자를 탐지하여 신속하게 조치를 취할 수 있습니다.

이러한 모범 사례를 준수함으로써 조직은 이메일 보안 태세를 크게 강화하고 도메인 평판을 보호할 수 있습니다. l= 태그는 전송 중에 변경될 수 있는 이메일을 유연하게 처리할 수 있는 장점이 있지만 도메인의 보안을 약화시킬 수 있습니다. 따라서 다양한 이메일 제공업체, 업계 전문가 및 조직과 함께 당사는 이를 권장하지 않습니다. 더 많은 도메인 보안 및 이메일 인증 서비스에 대해 알아보세요, 문의하세요 지금 문의하세요!

모바일 버전 종료