외로운 Nova의 작업실

정보보안기사 필기 - 32(이메일 보안) 본문

Certification/정보보안기사

정보보안기사 필기 - 32(이메일 보안)

Nova_ 2022. 12. 22. 10:43

- 이메일 관련 프로토콜

<전자 우편 구조>

Alice는 Bob에게 메시지를 보내고자할때 사용자대행자(UA, user agent)프로그램을 호출하여 메일 서버에 있는 전송 대행자(MTA, message transfer agent)를 통해 메시지를 보냅니다. Bob은 메시지를 받기위해서는 사용자 대행자를 통해 메일 서버에 있는 접근 대행자(MAA, message access agent)를 통해 메시지를 받습니다. UA와 메일 서버는 LAN or WAN으로 연결되어 있습니다.

<SMTP>

SMTP(simple mail transfer protocol)은 인터넷에서 MTA 클라이언트와 서버를 규정하는 공식적인 프로토콜입니다. SMTP는 송신자와 송신자의 메일서버 사이 그리고 두 메일 서버들 사이에서 총 두번 사용됩니다. 메일서버는 SMTP 서버를 가르키고 unix에서는 sendmial이며 ms에서는 microsoft exchange입니다. SMTP는 이메일을 암호화하여 이메일을 전송하는 기능을 지원하지않기때문에 메시지를 보내기전에 별도로 암호화해야합니다. 옛날에는 인터넷을통해 이메일을 중계해서 보냈지만 오늘날에는 DNS를 통해 메일서버로 직접 보냅니다.

 

<POP3>

POP3(post office protocol 버전 3)은 수신자가 전자우편을 내려받을 필요가 있을때 클라이언트에서 시작됩니다. 클라잉너트는 TCP 포트 110번으로 서버에 연갈을 하고 편지함에 엑세스하기위해 USER 명령과 PASS 명령을 통해 아이디와 비밀번호를 송신합니다. 대표적인 POP3 클라이언트로는 MS의 outlook이 있습니다.

 

<IMAP4>

IMAP4(internet mail access protocol ver4)는 pop3보다 더많은 기능을 가지고 있으며 데이터를 신뢰성 있게, 제대로된 순서로 보내고 받을 수 있게 하기위해 TCP 143번 포트에서 IMAP4 클라이언트의 연결 요청을 대기하고 있습니다. IMAP4는 아래와 같은 추가적인 기능을 제공합니다.

  • 전자우편을 내려받기전에 헤더를 검사할 수 있습니다.
  • 전자우편을 내려받기전에 특정 문자열로 내용을 검색할 수 있습니다.
  • 전자우편을 부분적으로 내려받을 수 있습니다.
  • 메일서버에서 편지함을 생성, 삭제, 이름을 변경할 수 있습니다.
  • 폴더내에 편지함들을 체계적으로 생성할 수 있습니다.

 

- 이메일 콘텐츠 보안을 위한 보안 기술

<PEM>

PEM(privacy enhanced mail)은 IETF에서 드래프트로 채태한 이메일 보안기술입니다. 기밀성, 인증, 무결성, 부인방지를 지원하지만 구현이 복잡하여 많이 사용되지 않습니다.

 

<PGP>

PGP(prtty good privacy)는 미국의 phil zimmermann이 개발하였고 파일보흐를 위해 암호화를 사용합니다. 상업용 뿐만아니라 오픈 소스로 제작된 것도 있습니다. PGP는 전자서명을 이용하여 인증을 제공하고, 대칭 블록암호를 이용해서 기밀성을 제공하고, ZIP알고리즘을 이용하여 압축을 제공하고, 기수-64 부호화 시스템을 이용해 전자우편 호환성을 제공하며 길이가 긴 데이터를 전송할 수 있도록 단편화 조립을 제공합니다. 매우 안전하고 다양한 영역에 응용할 수 있어서 현재 널리 사용되고 있습니다.

 

<PGP - 키링>

PGP에서 소유자의 공개키/개인키 쌍의 데이터구조를 개인키 고리라고 부르고 다른 사용자의 공개키의 데이터 구조를 공개키 고리라고부릅니다. Alice는 다수의 사람들에게 메세지를 전송하고자할때 키링이 필요하게됩니다.

 

<PGP의 인증서 및 신뢰>

PGP는 X.509 호환용 인증서를 작성할 수 있지만 CA가 따로 필요없습니다. 키링을 통하여 인증서에 서명할 수 있기 때문입니다. PGP에서는 신뢰에대한 계층 구조가 존재하지않으면 트리또한 존재하지 않습니다. 신뢰하는 방법은 아래와 같습니다.

1. 특정 사용자(A)의 공개키를 신뢰하는 사용자들이 자신의 개인키로 사용자(A)의 공개키에 디지털 서명합니다.

2. 사용자(A)의 공개키를 입수한 사용자(B)는 공개키에 첨부된 다른 사용자이 서명중에 자신이 신뢰할 수 있는 사용자의 서명을 발견하면 사용자(A)의 공개키를 신뢰합니다.

 

<MIME>

MIME(multipurpose internet mail extenstions)는 전자우편을 통하여 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜입니다. MIME는 ASCII가 아닌 NVT ASCII데이터로 변환하고 이를 통해 데이터양식이 다른 두 호스트에게 메일 서비스를 제공합니다.

 

<S/MIME>

S/MIME(secure multipurpose internet mail extenstions)는 PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지않는다는 점을 보완하기위해 IETF의 작업 그룹에서 RSADSI(RSA data security incororation)의 기술을 기반으로 개발된 전자 우편 보안 시스템입니다. S/MIME는 네트워크를 통해 전자 우편 보안 서비스를 제공할 뿐만 아니라 모든 프로토콜에서 보안 서비스를 이용할 수 있게합니다.. 또한 기밀성, 무결성, 사용자 인증, 송신 사실 부인 방지가 포함합니다.

 

<S/MIME의 동작방법>

1. 사용자는 전자우편을 보내기전에 메시지에대한 전자 서명을 할 것인지 암호화를 할것인지 또는 둘다 할 것인지를 선택합니다. 

2. 이후 S/MIME 애플리케이션은 MIME 형태의 메시지를 S/MIME 메시지로 변환합니다. 즉, 보안 메커니즘을 적용하여 S/MIME 메시지의 형태로 변환하여 전자서명과 메시지 암호화가 이루어지게합니다.

3. 마지막으로 메시지 보내기를 하면 메일 클라이언트는 전자 우편 서버에 메일을 전송하고 수신자의 메밀 서버에 메시지가 전송되어 수신자는 S/MIME 클라이언트를 통해 메시지를 받습니다.

4. 이때 보안기능이 없는 SMTP 프로토콜이 사용되지만 이미 메시지에 암호화 또는 전자 서명을 했기때문에 네트워크로 전송되는 도중에 메시지 도청 및 변조 등의 위험으로부터 안전합니다.

 

<S/MIME가 제공하는 보안서비스>

S/MIME는 전자서명을 위해 DSS를 사용하고 세션키 암호화를 위해 Diffe-Hellman 알고리즘을 사용합니다. 또한 전자 서명과 세션키 암호화 모두를 위해 사용할 수 있는 알고리즘으로 RSA를 사용합니다. RSA와 SHA-256을 통해 디지털 서명을 제공하고 AES-128 with CBC를 통해 메시지 암호화를 제공합니다.

 

<RFC 2634에서 4가지 강화된 S/MIME 보안 서비스>

서명된 수령증 : 서명된 수령증을 돌려받으면 송신자가 자신이 보낸 메시지가 배달이 되었음을 확인 및 제 3자에게 증명할 수 있습니다.

보안 레이블 : 보안 레이블을 설정하여 접근을 제어합니다.

안전한 메일링 목록 : 복수의 수신자에게 메시지를 전송할경우 각 수신자의 공개키 사용을 포함하여 MLA(mailing list agent) 서비스를 사용함으로 많은 양의 수신자별 처리가 가능합니다.

 

- 스팸 메일 보안 대응 기술

<스팸 메일의 기술적 대응방안>

  • 콘텐츠 필터링 : 메일의 헤더 정보, 제목, 메시지 내용의 특정단어 및 문장 패턴을 검색하여 차단합니다.
  • 송신자 필터링 : 송신자 IP, 송신자 메일주소, 송신자 URL등의 정보를 포함한 블랙리스트를 관리하여 차단합니다.
  • 네트워크 레벨 필터링 : 패킷을 필터링합니다.
  • 발송량 기준 차단 : 기준 시간동안에 특정 용량 이상의 메일 수신시 이후 수신 메일을 차단합니다.
  • 시간대별 차단 : 업무 시간에는 업무용 송신 메일 이외의 외부 메일을 차단합니다.
  • 릴레이 스팸방지 : 액세스 DB를 통한 송신자별 릴레이 허용 여부를 설정합니다.
  • anti-spam 솔류션 도입 : 별도의 스팸 차단 전용 보안 솔루션을 도입하여 운영합니다.

<메일 서버 등록제 SPF>

SPF(sender policy framwork)는 메일 헤더에 표시된 발송정보가 실제 메일을 발송한 서버와 일치하는지 비교함으로써 발송자 정보의 위변조 여부를 파악할 수 있도록 하는 기술입니다. 이메일 발송자 서버를 DNS에 미리 등록하고 수신자의 서버에 메일이 도착하면 등록된 서버로부터 발신되었는지 확인하여 스팸 메일을 차단하는 기술입니다.

 

<스팸 필터 솔루션>

스팸 필터 솔류션은 메일 서버 앞단에 위차하여 프락시 메일 서버로서 동작하며 SMTP프로토콜을 이용한 Dos 공격이나 폭탄 메일, 스팸 메일을 차단합니다. 또한 전송되는 메일의 바이러스까지 체크할 뿐만아니라 내부에서 밖으로 전송되는 메일에 대한 본문 검색 기능을 통해 내부정보 유출도 방지합니다. 아래는 스팸 필터 솔루션의 기능입니다.

  • 메일 헤더 필터링 : 메일 헤더의 내용중에서 ID/보내는 사람의 이름/도메인에 특정 내용이 포함되어 있는지를 검사하고, 보낸 서버의 IP/도메인/반송 주소의 유효성과 이상 유무를 검사합니다.
  • 제목 필터링 : 메일 제목의 내용에 광고와 같은 문자열이 포함되어있는지를 검사합니다.
  • 본문 필터링 : 메일 본문에 특정 단어 혹은 특정 문자가 포함되어있는지를 검사합니다.
  • 첨부파일 필터링 : 첨부된 파일의 이름/크기/개수 및 첨부파일 이름의 길이를 기준으로 필터링을 수행합니다. 실행 가능한 확장자를 가진 첨부파일을 검사합니다.
  •  

<스팸메일 방지 보안도구>

  • Procmail : plugin 형식으로 쓰이며 받은 메일에서 보낸사람, 제목, 크기, 내용등으로 필터링이 가능합니다.
  • Sanitiazer : e-mail을이용한 모든 공격에대해 효과적으로 대응할 수 있도록 해주는 procmail rulset입니다. ms office 매크로, 악성 매크로등을 필터링하며 감염된 메시지 보관 장소 설정 기능을 제공합니다.
  • Inflex : 인바운드와 아웃바운드 정책을 세워 메일 필터링이 가능합니다.
  • SpamAssassion : apache 그룹이 만들고 있으며 다양한 분류로 메일 필터링이 가능합니다.

 

- sendmail

sendmail은 인터넷 전자 메일의 표준규약인 SMTP프로토콜을 통해서 메일 서비스 기능을 합니다. 

 

<sendmail 주요 파일>

  • /usr/bin/sendmail : sendmail의 주요 데몬 파일
  • /usr/bin/makemap : 맵생성 실행파일(user 등록시)
  • /var/spool/mqueue : sendmail 큐 디렉터리
  • /var/spool/mail : 개별 메일 사용자에게 돌착한 메일을 보관하는 디렉터리
  • /etc/mail/access : relay 제한 및 설정 파일
  • /etc/mail/sendmail.cf : sendmail 설정 파일

 

</etc/mail/access를 이용한 설정 제어 옵션>

  • RELAY : 메일을 허용합니다.
  • REJECT : 메일을 허용하지 않습니다.
  • DISCARD : 메일을 받은후 폐기합니다..
  • OK : 메일을 조건없이 허용합니다.
  • 501 "메시지" : 메일주소가 일부분이상 일치할 경우 메시지로 거부합니다.
  • 502 "메시지" : 메일주소에 host명이 없을경우 메일을 받지 않습니다.

ex) do@nova.co.kr 501 nope : do@nova.co.kr에서 발송되는 메일을 거부하고 501 뒤에있는메시지와 함께 거부 메일을 보냅니다.

Comments