Security

[Security] 전자 우편(E-Mail)

구루싸 2020. 3. 5. 15:56
반응형
SMALL

이번 학습 주제는 전자 우편(E-Mail)에 관한 것인데요

먼저 전자 우편에서 사용하는 프로토콜부터 살펴보겠습니다

전자 우편을 보낼 때 사용되는 표준 통신 규약은 SMTP(Simple Mail Transfer Protocol)로

TCP 25번 포트를 사용하고 상대 서버를 지시하기 위해서 DNS의 MX 레코드가 사용됩니다

반대로 전자 우편을 읽어오는 데 사용되는 프로토콜은 POP3(Post Office Protocol Version 3)으로

원격 서버에 접속에서 전자 우편을 읽은 후에 원격 서버의 전자 우편을 삭제합니다

대부분의 웹 메일에서 사용하고 있으며 TCP 110번 포트로 메일 서버에 접속하여

저장된 메일을 내려받는 MDA 프로그램입니다

전자 우편을 읽는 프로토콜은 IMAP/IMAP4도 있는데 

POP과 달리 메일을 내려 받아도 메일 박스에 원본이 계속 저장됩니다

아래의 그림은 메일 처리 방식을 나타냅니다

메일 처리 방식

이제 전자 우편의 보안 기법에 대해 알아보겠습니다

먼저 PGP(Pretty Good Privacy)는 MIME(Multipurpose Internet Mail Extension, RFC 1521) 객체에

암호화와 전자 서명 기능을 추가한 암호화 프로토콜입니다

네트워크를 통해서 주고받는 메시지에 대해서 송수신자에게 보안 서비스를 제공합니다

PGP의 구조를 살펴보면 아래와 같습니다

PGP의 구조

PGP는 DSS/SHA 또는 RSA/SHA로 전자서명

CAST-128, IDEA, 3DES로 메시지를 암호화

Diffie-Hellman, RSA로 키 분배(1회용 세션키)

RADIX-64로 바이너리를 ACS Code로 변환하여 호환성

Zip 등 압축

메시지 최대 사이즈 제한 등의 기능을 제공합니다

다음으로 프라이버시 향상 전자 메일(PEM:Privacy Enhanced Mail)은 

중앙집중화된 키 인증 방식으로 구현이 어렵지만 높은 보안성을 제공하여 군사, 은행에서 사용합니다

S/MIME(Secure Multi-Purpose Internet Mail Extensions)도 있는데

표준 보안 메일 규약, 송/수신자 인증, 메시지 무결성 증명, 첨부파일을 포함하고

첨부파일에 대한 보안이 목적입니다

메일 전체를 암호화하고 MIME 메시지에 전자 서명과 암호화를 더한 프로토콜로 RSA를 사용합니다

앞서 PGP는 인증기관(CA)이 없는데 S/MIME는 인증기관으로부터 자신의 공개키를 보증하는 인증서를 받아야합니다

이제 다시 메일 처리 방식으로 돌아가보면 MTA(Mail Transfer Agent)가 있는데

이 MTA의 대표적인 프로그램인 Sendmail(그림의 표기)에 대해 알아보겠습니다

Sendmail은 현재 시중으로 사용되는 유닉스에 기본으로 포함되어 있는데

많은 버그가 끊임없이 보고되는 프로그램이고 대부분의 버그가 보안 문제와 직결되어

시스템 관리자들이 새로운 버전이 나올 때마다 업그레이드를 해주어야한다네요-_-

Sendmail의 운영 모드 명령어는 /usr/sbin/sendmail -옵션 으로 옵션을 살펴보겠습니다

-bd(데몬 모드로 실행)

-bi(앨리어스 데이터베이스 파일을 초기화)

-bm(Be a mail sender(MDA만의 기능으로 동작)

-bp(큐에 있는 내용을 출력)

-bs(표준 입력으로 SMTP 실행)

-bt(테스트 모드)

-bv(확인 모드)

Sendmail의 접근 제어 파일은 /etc/mail/access인데 규칙을 살펴보면 다음과 같습니다

-OK(다른 rule이 거부하여도 들어오는 메일을 받아들임

-RELAY(relay를 허용, 다른 rule이 거부하는 경우도 지정된 특정 도메인에 있는 사용자에게 오는 메일을 받아들임

-REJECT(수신 및 발신 완전히 거부)

-DISCARD(메일을 받기만 하고 메시지를 완전히 폐기)

-501(지정된 전자 메일 또는 도메인에 대해 보내는 사람의 주소가 전체 또는 부분적으로 일치할 경우 메일 거부)

-550(특정 도메인에 관련된 메일을 거부)

마지막으로 Spam Mail의 차단 방법을 살펴보고 마치겠습니다

스팸 메일 차단 시스템의 방식은 RBL(Realtime Blocking List)와 SPF(Sender Policy Framework) 방식이 있습니다

RBL방식은 전자 메일 수신 시 간편하게 스팸 여부를 확인하여 차단하는 것으로

스팸 메일에 사용되는 IP 리스트를 등록하고 차단하는 것입니다

국내의 경우는 KISA-RBL을 사용하는데 1~3등급으로 분류하여 차단해야 하는 IP 리스트를 제공합니다

등급이 높을수록 차단할 수 있는 스팸이 많아지지만 오차단 되는 False Positive도 높아지는 특징이 있습니다

SPF는 발신자가 자신의 메일 서버 정보와 정책을 나타내는 SPF 레코드를 해당 DNS에 등록하고

수신자는 메일 수신 시 발송자의 DNS에 등록된 SPF 레코드를 확인하여

해당 메일에 표시된 발송 IP와 비교해 결과에 따라 수신 여부를 결정합니다

또 Rule 기반 하에 RBL을 참고하여 Header와 Body 분석해 Rule에 매칭될 경우

점수를 매겨 총 점수가 기준점을 초과하는지 여부에 따라 스팸 여부를 결정하는 Spamassasin도 있습니다

Spamassasin은 90% 이상의 높은 차단율을 보이고 있다고 하네요!

이상으로 전자 메일에 대한 학습을 마치겠습니다

그럼 이만-_-

반응형
LIST