본문 바로가기

Study/정보보안기사

32. 이메일 보안

스팸메일대응법, 보안관련 프로토콜 같이 정리 / 프로토콜별 특징 출제빈도↑


1. 이메일 관련 프로토콜

1. 전자우편의 구조

- UA(User Agent): 메시지 구성, 읽기, 답장 보내기, 전달하는 소프트웨어 패키지(프로그램) / 사용자 컴퓨터에서 로컬 편지함 처리

- MTA(Message Transfer Agent; 메시지 전송 대행자) - C/S 프로그램

- MMA(Message Access Agent; 메시지 접근 대행자) - C/S 프로그램으로 구성되어 있음

 

2. SMTP(Simple Mail Transfer Protocol; 단순 우편 전달 프로토콜)★

: 인터넷에서 MTA 클라이언트와 서버를 규정하는 공식적인 프로토콜

- (송신자와 송신자의 메일 서버 사이) + (두 메일 서버들 사이)에서 총 두번 사용됨(메일 서버와 수신자 사이엔 다른 프로토콜 사용)

- 메일서버는 SMTP서버를 의미함

- UNIX-Sendmail / Microsoft-Microsoft Exchange / 노벨(Novell)-GroupWise

- SMTP는 이메일 암호화하여 이메일 전송을 보호하는 기능 지원X → 별도로 메시지 본문을 암호화 해야함

- SMTP 서버가 사용자에게 이메일을 전달할 때 DNS를 통해 사용자의 메일 서버를 찾은 후 그 서버로 이메일을 직접 보냄

 

<명령과 응답> - SMTP는 명령과 응답을 사용하여 MTA 클라이언트와 MTA 서버 사이의 메시지를 전송

[명령] 명령은 클라이언트에서 서버로 전송된다

형식: Keyword:argument(s)
명령코드 명령
HELO 인사(hello)
EHLO 확장된 hello
SMTP 수신자에게 지원하는 SMTP 확장의 목록을 보내달라고 요청하는 명령
MAIL 메일 전송 시작(Initiate Mail Transection)
송신자가 메일 전송 시작을 위해 수신자에게 보내는 명령
RCPT 받는 사람(Recipient)
DATA 메일 메시지의 데이터
RSET 리셋(Reset)
MAIL 명령이나 RCPT명령을 보내다가 오류가 발생하여 더 이상 전송을 계속 할 수 없을때 SMTP 송신자가 사용
VRFY 확인(Verify)
SMPT 수신자에게 편지함이 사용 가능한지 확인하도록 요청
EXPN 확장(Expand)
수신 호스트에게 인수로 보내진 메일링 리스트를 확장하여 그 목록을 이루는 수신자들의 주소를 되돌려 주도록 요구
HELP 도움말
NOOP 무동작(No Operation)
SMTP 수신자와의 통신 상태를 확인하는 것 외에는 아무런 역할을 하지 않음
QUIT SMPT 세션 종료

 

[응답]

- 서버에서 클라이언트로 전송

- 응답은 세 자리 숫자의 코드로 뒤에 추가적인 문자 정보가 따라올 수 있음 (HTTP 응답의 경우와 유사)

 

3. 메시지 액세스 에이전트(POP와 IMAP)

① POP3(Post Office Protocol 버전 3)

- 전자우편 액세스는 사용자가 메일 서버에 있는 편지함에서 전자우편을 내려 받을 필요가 있을 때 클라이언트에서 시작함

- 클라이언트는 TCP 포트 110으로 서버에 연결, 편지함에 엑세스하기 위해 사용자 이름(USER 명령)과 비밀번호(PASS 명령)를 송신

- 대표적인 POP3 클라이언트: MS 아웃룩, Eudora Email 등

 

② IMAP4(Internet Mail Access Protocol 버전 4; RFC 1730)

- POP3과 비슷하나 더 많은 기능O, 복잡함

- 데이터를 신뢰성 있게, 제대로 된 순서로 보내고 받을 수 있게 하기 위해 TCP 143번 포트에서 IMAP4 클라이언트의 연결 요청을 대기하고 있음

 

<제공하는 추가적인 기능>

- 사용자는 전자우편을 내려 받기 전에 헤더를 검사할 수 있음

- 사용자는 전자우편을 내려 받기 전에 특정 문자열로 내용 검색 가능

- 사용자는 전자우편을 부분적으로 내려 받을 수 있음

- 사용자는 메일 서버에서 편지함을 생성, 삭제, 이름 변경 가능

- 사용자는 전자우편 저장을 위해 폴더 내 편지함들을 체계적으로 생성 가능


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

1. PEM(Privacy Enhanced Mail)

: IETF에서 인터넷 드래프트(draft)로 채택한 기밀성, 인증, 무결성, 부인방지를 지원하는 이메일 보안 기술

- 기존 전자우편 프로토콜을 이용하여 암호화된 정보, 전자서명, 암호화 방법 등의 내용을 본문에 텍스트 형식으로 전송함

- 이론 중심적이고 사양이 방대하며 구현이 복잡하여 많이 사용되진 X

 

2. PGP(Pretty Good Privacy)

: 대표적인 이메일과 파일보호를 위해 암호화를 사용하는 암호시스템 / Phil Zimmermann이 개발

- 구현 용이, 가장 널리 사용되고 있음

- 전자서명을 이용하여 인증 제공 / 대칭 블록암호를 이용하여 기밀성 제공 / ZIP 알고리즘을 이용하여 압축 제공 / 기수-64 부호화 시스템을 이용하여 전자우편 호환성을 제공 / 길이가 긴 전자우편 데이터를 전송할 수 있도록 단편화 조립 제공

 

<키링 key ring>

- PGP에서 사용하는 구조는 각 노드에서 한 쌍의 데이터 구조를 제공해야 함

→ 노드가 소유한 공개키/개인키 쌍을 저장하기 위한 것(개인키 고리; private-key ring)

    + 이 노드가 알고 있는 다른 사용자의 공개키를 저장하기 위한 것(공개키 고리; public-key ring)

 

<PGP 보안 서비스> → 인증, 기밀성, 압축, 전자메일 호환성, 단편화

기능 알고리즘
기밀성(메시지 암호화) Triple-DES, IDEA, CAST, RSA / 송신자가 생성한 일회용 세션키로 메시지 암호화. 수신자의 공개키로 RSA를 이용해 세션키를 암호화하고 메시지에 첨부
인증(전자 서명) RSA, DSS, SHA-1, MD5, RIPEMD-160 / 해시 알고리즘을 이용하여 메시지 다이제스트 생성. 메시지 다이제스트는 송신자의 개인키로 암호화 + 메시지에 첨부
압축 ZIP
전자 우편 호환성 Radix-64 변환 / ASCII 부호로 전환
분할 및 재결합 최대 메시지 사이즈 제한으로 인한 데이터의 분할 및 재결합

 

<PGP 동작 과정>

<PGP 인증서>

- PGP 인증서에는 CA 필요 X

- 링에 속해 있는 사용자라면 링에 있는 누구라도 인증서에 서명할 수 있음

 

<신뢰와 적법성>

① PGP에서 신뢰 모델

- 행위의 중심으로서 사용자가 링에서 갖는 임의의 사용자에 대한 신뢰 모델을 생성할 수 있음

- 다이어그램은 공개키 링 테이블에서의 임의의 변경에 따라 변경될 것임

② 신뢰할 수 있는 웹 (신뢰망, web of trust)

- PGP는 공개키 신뢰성 확보를 위해 신뢰망을 구축 (PKI-공개키기반구조 불필요)

 

3. S/MIME(Secure Multipurpose Internet Mail Extentions)

MIME: 전자우편을 통하여 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜

- MIME는 ASCII가 아닌 데이터를 NVT ASCII 데이터로 변환, 이를 클라이언트 MTA로 배달 / 수신자측의 메시지는 원래 데이터로 역변환 됨

 

<MIME 헤더>

- MIME 버전(version)

- 내용 유형(Content-Type): 메시지의 몸체에서 사용되는 데이터의 종류를 규정

  • 내용 유형과 내용 서브유형을 사선으로 구분
  • 서브유형에 따라 헤더는 다른 인수들을 가질 수도 있음
  • 7가지 주요 내용 유형 / 15가지 서브 유형이 있음
  • 내용유형: 일반적 데이터 유형 선언(Text, Multipart, Massage, Image, Video, Audio, Application)
  • 서브유형: 해당 데이터 유형의 특정 형식을 묘사

- 내용 전달 인코딩(Content-Transfer-Encoding): 전송을 위해 메시지를 0과 1로 인코딩하는 방법을 정의

- 내용 ID(Content-Id): 여러 개의 메시지가 있는 상황에서 전체 메시지를 유일하게 식별

- 내용 기술(Content-Description): 몸체가 화상인지, 소리인지, 영상인지 정의

 

S/MIME: 기존 전자 우편 보안 시스템의 문제점인 PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF의 작업 그룹에서 RSADSI의 기술을 기반으로 개발된 전자 우편 보안 시스템

- 네트워크를 통해 주고받는 메시지에 대해 송/수신자에게 전자 우편 보안 서비스 제공

- MIME 객체를 전송할 수 있는 모든 프로토콜에서 보안 서비스를 이용할 수 있게 함

- 기밀성, 무결성, 사용자 인증, 송신 사실 부인방지 제공

 

<S/MIME의 동작>

1) 사용자는 수신자에게 보낼 메시지를 MIME 형태로 작성, 전자우편을 보내기 전 메시지에 대한 전자 서명을 할 것인지, 암호화를 할 것인지, 둘 다 할 것인지 선택

2) S/MIME 애플리케이션은 MIME 형태의 메시지를 S/MIME 메시지로 변환

3) 사용자는 메시지 보내기를 선택하면 메일 클라이언트는 전자 우편 서버에 메일 전송 / 수신자의 메일 서버에 메시지가 전송되어 수신자는 S/MIME 클라이언트를 이용해 메시지를 받게 됨

4) 보안 기능이 없는 SMTP 프로토콜이 사용되지만 메시지에 암호화/전자서명을 했기 때문에 안전

 

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

기능 일반적 알고리즘
디지털 서명 RSA/SHA-256
메시지 암호화 AES-128 with CBC
압축 제한 없음
이메일 호환성 Radix-64 변환

 - RFC 2634에서 4가지 강화된 S/MIME 보안 서비스를 정의함

  • Signed receipts(서명된 수령증): 서명된 수령증을 돌려받으면, 메시지 원 소유자는 자신이 보낸 메시지가 배달이 되었음을 확인할 수 있고, 메시지 원소유자는 수신자가 그 메시지를 받았다는 사실을 제3자에게 증명할 수 있다.
  • Security labels(보안 레이블): S/MIME 캡슐화로 보호하는 콘텐츠의 중요성에 관련된 보안 정보의 집합. 레이블은 어떤 사용자가 객체에 접근이 허락되었는지를 표시하는 것으로 접근 제어에 사용할 수도 있다.
  • Secure mailing lists(안전한 메일링 목록): 복수의 수신자에게 메시지를 전송할 경우 각 수신자의 공개키 사용을 포함하여 MLA(Mailing List Agent) 서비스를 사용함으로 많은 양의 수신자별 처리 가능
  • Signing Certificates(서명 인증서): 서명 인증서 속성으로 송신자의 인증서와 서명을 묶는다

<S/MIME의 기능>

- 동봉된 데이터(Enveloped data)

  • 임의 유형의 암호화된 내용과 하나 혹은 여러 수신자를 위해 암호화된 내용 암호화키로 구성
  • 동봉된 데이터 콘텐츠 유형은 메시지의 비밀성을 제공하기 위해 사용됨

- 서명된 데이터(Signed data)

- 명문-서명 데이터(Clear-signed data)

- 서명되고 동봉된 데이터(Signed and enveloped data): 서명만 되거나 암호화된 개체는 중첩될 수 있다. 그래서 암호화된 데이터는 서명될 수 있고 서명된 데이터나 명문-서명 데이터는 암호화 될 수 있다.

 

<S/MIME의 인증서 처리>

(p.545)

 

 

 


3. 스팸 메일 보안 대응 기술

[스팸 메일의 대응 방안]

1. 스팸 메일의 기술적 대응방안

 

2. 메일 서버 등록제 SPF(Server Policy Framework)

 

3. 스팸 필터 솔루션

① 메일 헤더 필터링

- 메일 헤더 기본 구성: From, To, Cc, Bcc

- 메일 헤더의 내용 증 ID/보내는 사람의 이름/도메인에 특정 내용이 포함되어 있는지 검사

- 보낸 서버의 IP/도메인/반송 주소의 유효성과 이상유무 검사

② 제목 필터링

③ 본문 필터링

④ 첨부파일 필터링

 

4. 스팸메일 방지 보안도구

① Procmail

② Sanitizer - 이메일을 이용한 모든 공격에 대해 효과적으로 대응할 수 있도록 해주는 procmail ruleset

③ Inflex

④ SpamAssassin


4. sendmail

: 인터넷 전자 메일의 표준규약인 SMTP 프로토콜을 통해서 메일 서비스 기능을 함

- 메일 서버 간에 메일을 주고받는 역할

 

[sendmail 관련 주요 파일 및 디렉터리]

파일(디렉터리) 설명
/usr/bin/sendmail sendmail의 주 데몬 파일
/usr/bin/makemap sendmail 맵생성 실행파일(access, virtual user 등 등록 시)
/var/spool/mqueue sendmail 큐 디렉터리(메일을 일시 저장하는 디렉터리)
/var/spool/mail 개별 메일 사용자에게 도착한 메일을 보관하는 디렉터리(사용자별로 별로 메일 파일로 존재)
/etc/mail/access Relay 제한 및 설정 파일
/etc/mail/sendmail.cf sendmail 설정 파일

 

[ /etc/mail/access를 이용한 스팸 메일 방지법]

제어옵션 설명
RELAY 메일 Relay를 허용. 관련(host에서 지정된) 메일의 수신 또는 발신을 허용
REJECT Relay를 허용하지 않음
DISCARD 메일을 받은 후 폐기(메일발신자에게 폐기통보 X)
OK 조건 없이 허용. 관련 메일의 모든 것을 허용(relay)함
501 "메시지" 메일주소가 일부분 이상 일치할 경우 지정된 메시지로 거부
502 "메시지"  발신 메일주소에 host명이 없을 경우 메일을 받지 않음

출처: 2021정보보안기사&산업기사 이론편 (알기사)

'Study > 정보보안기사' 카테고리의 다른 글

31. FTP 보안  (0) 2022.02.23