전자우편의 구조(일반적 형태)
Alice가 있는 사이트의 전자우편 서버 관리자 시스템에는 인터넷으로 하나씩 전자우편을 전송할 수 있는 큐잉 시스템이 만들어져 있다.
Bob이 있는 사이트의 전자우편 서버 관리자에는 서버에 연결되어 있는 모든 사용자를 위한 메일박스가 만들어져 있고, 메일박스는 수신자에 의해 검색될 때까지 수신된 메시지를 저장하고 있다.
Alice가 Bob에게 메시지를 보내고자 할 때, Alice는 메시지를 작성하기 위해 UA(User Agent) 프로그램을 호출한다.
그런 다음 Alice는 자신의 사이트에 있는 전자 우편 서버로 메시지를 전송하기 위해 메시지 전송 대행자(MTA, Message Tranfer Agent)라는 프로그램을 사용한다. 여기서 MTA는 Alice의 컴퓨터에 설치되어 있는 클라이언트와 전자우편 서버에 설치되어 있는 서버의 기능을 갖는 클라이언트/서버 프로그램이다.
Bob이 Alice가 보낸 메시지를 포함하고 있는 메시지를 검색하고자 할 때, Bob은 메시지 접근 대행자(MAA, Message Access Agent)라는 프로그램을 호출한다. MAA도 Bob의 컴퓨터에 설치된 클라이언트와 전자우편 서버에 설치된 서버 기능을 갖는 클라이언트/서버 프로그램으로 구성되어 있다.
SMTP(Simple Message Transfer Protocol)
인터넷에서 MTA 클라이언트와 서버를 규정하는 공식적인 프로토콜은 단순 우편 전달 프로토콜(SMTP)이다.
SMTP는 송신자와 송신자의 메일 서버 사이 그리고 두 메일 서버들 사이에서 총 두 번 사용된다. 메일 서버와 수신자 사이에는 다른 프로토콜이 사용된다.
메일 서버는 SMTP 서버를 가리킨다. UNIX에서 SMTP 서버 소프트웨어는 Sendmail이며, MS는 Microsoft Exchange, Novell은 Groupwise이다.
- 특징
SMTP는 이메일을 암호화하여 이메일 전송을 보호하는 기능을 전혀 지원하고 있지 않다.
SMTP 초창기에는 인터넷을 통해 한 서버에서 다른 서버로 이메일을 중계하여 보내는 비교적 비효율적인 방법을 사용했다. 오늘날에는 SMTP 서버가 사용자에게 이메일을 전달할 때 DNS(Domain Name System)을 통해 사용자의 메일 서버를 찾은 후 그 서버로 이메일을 직접 보낸다.
명령과 응답
SMTP는 명령과 응답을 사용하여 MTA 클라이언트와 MTA 서버 사이의 메시지를 전송한다.
- 명령
명령은 클라이언트에서 서버로 전송된다. 아래는 명령의 형식
Keyword:argument(s) |
키워드와 뒤에 따라오는 0 또는 그 이상의 인수로 구성된다. SMTP는 14개의 명령을 규정하고 있다.
명령코드 | 명령 | 설명 |
HELO | 인사(Hello) | SMTP 송신자가 SMTP 세션을 초기화하기 위해 SMTP 수신자에게 보내는 전통적인 명령이다. |
EHLO | 확장된 Hello | SMTP 확장 기능을 지원하는 SMTP 송신자가 SMTP 세션을 초기화하고 SMTP 수신자에게 지원하는 SMTP 확장의 목록을 보내달라고 요청하는 명령이다. |
메일 전송 시작 | SMTP 송신자가 이메일 전송을 시작하기 위해 수신자로 보내는 명령이다. | |
RCPT | 받는 사람 | 현재 전송하고자 하는 이메일 메시지를 받는 사람의 주소 하나를 지정한다. |
DATA | 메일 메시지의 데이터 | 실제 데이터를 송신하기 위해 사용한다. |
RSET | 리셋 | 메일 전송 중에 중단시킨다. MAIL 명령이나 RCPT 명령을 보내다가 오류가 발생하여 더 이상 전송을 계속 할 수 없을 때 SMTP 송신자가 사용할 수 있다. |
VRFY | 확인 | SMTP 수신자에게 편지함이 사용 가능한지를 확인하도록 요청한다. |
EXPN | 확장 | 수신 호스트에게 인수로 보내진 메일링 리스트를 확장하여 그 목록을 이루는 수신자들의 주소를 되돌려 주도록 요구한다. |
HELP | 도움말 | 인자를 명시하지 않으면 일반 도움말 정보를 요청하는 것을 의미한다. 인자를 사용하는 것은 해당 명령 코드에 관한 정보를 요청하는 것을 의미한다. |
NOOP | 무동작 | SMTP 수신자와의 통신 상태를 확인하는 것 외에는 아무런 역할을 수행하지 않는다. |
QUIT | 종료 | SMTP 세션을 종료한다. |
- 응답
응답은 서버에서 클라이언트로 전송된다. 응답은 세 자리 숫자의 코드로 뒤에 추가되는 문자 정보가 따라올 수 있다.
메시지 액세스 에이전트(POP와 IMAP)
POP3(Post Office Protocol v3)
POP3는 간단하지만 기능상의 제약이 존재한다. 클라이언트 POP3 소프트웨어는 수신자 컴퓨터에 설치되고, 서버 POP3 소프트웨어는 메일 서버에 설치된다.
전자우편 액세스는 사용자가 메일 서버에 있는 편지함에서 전자우편을 내려 받을 필요가 있을 때 클라이언트에서 시작한다. 클라이언트는 TCP 포트 110으로 서버에 연결을 한다. 그리고 편지함에 액세스하기 위해 사용자 이름(USER 명령)과 비밀번호(PASS 명령)을 송신한다.
IMAP4(Internet Mail Access Protocol v4)
IMAP4는 POP3와 비슷하나 더 많은 기능을 가지며 복잡하다.
IMAP4는 데이터를 신뢰성 있게, 제대로 된 순서로 보내고 받을 수 있게 하기 위해 TCP 143번 포트에서 IMAP4 클라이언트의 연결 요청을 대기하고 있다.
IMAP4는 다음과 같은 추가적인 기능을 제공한다.
· 사용자는 전자우편을 내려 받기 전에 헤더를 검사할 수 있다.
· 사용자는 전자우편을 내려 받기 전에 특정 문자열로 내용을 검색할 수 있다.
· 사용자는 전자우편을 부분적으로 내려 받을 수 있다.
· 사용자는 메일 서버에서 편지함을 생성, 삭제하거나 이름을 변경할 수 있다.
· 사용자는 전자우편 저장을 위해 폴더 내에 편지함들을 체계적으로 생성할 수 있다.
PEM(Privacy Enhanced Mail)
IETF에서 인터넷 드래프트로 채택한 기밀성, 인증, 무결성, 부인방지를 지원하는 이메일 보안 기술이다.
기존 전자우편 프로토콜을 이용하여 암호화된 정보, 전자서명, 암호화 방법 등의 내용을 본문에 텍스트 형식으로 전송한다.
이론 중심적이고 사양이 방대하며 구현이 복잡하여 많이 사용되고 있지는 않다.
PGP(Pretty Good Privacy)
PGP는 대표적인 이메일과 파일보호를 위해 암호화를 사용하는 암호시스템이다. PGP는 구현이 용이하여 가장 널리 사용되고 있다. 다양한 플랫폼에서 활용이 가능하다.
PGP는 전자서명을 이용하여 인증을 제공하고, 대칭 블록암호를 이용해서 기밀성을 제공하고, ZIP 알고리즘을 이용해서 압축을 제공하고, Radix-64 부호화 시스템을 이용해 전자우편 호환성을 제공하며 길이가 긴 전자우편 데이터를 전송할 수 있도록 단편화 조립을 제공한다.
- 키링
PGP에서 사용하는 구조는 각 노드에서 한 쌍의 데이터 구조를 제공해야 한다. 하나는 노드가 소유한 공개키/개인키 쌍을 저장하기 위한 것이고, 다른 하나는 이 노드가 알고 있는 다른 사용자의 공개키를 저장하기 위한 것이다.
이 데이터 구조를 각각 개인키 고리(private key ring)과 공개키 고리(public key ring)라고 부른다.
Alice는 다수의 사람들에게 메시지를 전송하고자 하는 경우도 있을 것이다. 이때 Alice는 키링이 필요하다.
PGP 동작 과정
Z = ZIP 압축
|| = 결합(이어 붙여쓰기)
Ks = 대칭암호 구조에서 사용하는 세션키
KPa = 공개키 암호구조에서 사용되는 사용자 A의 개인키
KUa = 공개키 암호구조에서 사용되는 사용자 A의 공개키
EP = 공개키 암호화
EC = 대칭키 암호화
H = 해시함수
- 기밀성
PGP가 제공하는 서비스로는 기밀성이 있는데 이것은 전송하거나 파일을 저장할 메시지를 암호화함으로써 기밀성을 유지하는 것이다.
대칭키 암호 CAST-128을 사용할 수 있다. 혹은 대신에 IDEA나 3DES를 사용할 수도 있다. 여기에서는 64비트 CFB 모드를 사용한다.
PGP에서는 키 암호화에 RSA를 사용하는 대신에 옵션으로 Diffie-Hellman을 사용할 수도 있다. 사실 PGP는 암복호화가 가능한 Diffie-Hellman을 변형한 알고리즘인 ElGamal을 사용한다.
동작순서는 위의 사진을 참고
- 인증(전자서명 서비스)
SHA-1과 RSA를 병행해서 사용하면 효과적인 전자서명 구조를 만들 수 있다. RSA의 강력한 보안성 때문에 수신자는 오직 공개키와 쌍을 이루는 개인키를 소유한 자만이 그 서명을 생성할 수 있다는 것을 확신할 수 있다.
SHA-1로 인해 수신자는 동일한 해시코드를 갖는 메시지를 만들 수 없다는 것도 확신할 수 있다. 그러므로 원래 메시지의 서명을 만들 수 없다는 것을 확신할 수 있다.
대체 방법으로 DSS/SHA-1을 이용해서 서명을 생성할 수 있다.
전자서명 과정도 위의 사진 참고
- 기밀성과 인증
먼저 평문에 대한 서명을 생성해서 메시지에 첨부한다. 그 다음 평문 메시지와 서명을 대칭키 암호 알고리즘 CAST-128(혹은 IDEA나 3DES)을 이용해서 암호화하고 세션키는 RSA(혹은 ElGamal)로 암호화한다.
순서를 반대로 하는 것보다 위의 순서를 선호한다. 일반적으로 메시지와 평문버전과 함께 서명을 저장하는 것이 편리하다.
요약하면 기밀성과 인증 두 가지 서비스가 필요하면 송신자는 우선 메시지를 자신의 개인키로 서명하고 그 다음 세션키로 메시지를 암호화한다. 그리고 세션키를 수신자의 공개키로 암호화한다.
전자서명 작성과 암호화 과정도 위의 사진 참고
- 압축
기본적으로 PGP는 먼저 서명 후, 암호화하기 전에 메시지를 압축한다. 이렇게하면 전자메일 전송과 파일저장에 있어서 저장 공간을 줄일 수 있다는 장점이 있다.
압축 알고리즘과 압축풀기 알고리즘을 어느 곳에서 수행하느냐 하는 문제는 매우 중요하다.
- 전자메일 호환성
많은 전자메일 시스템에서는 오직 ASCII 문장으로 이루어진 블록만 사용해야 하는 제약이 있다. 이런 제약 때문에 PGP는 8비트 2진 스트림을 인쇄용 ASCII 문자스트림으로 변경하는 서비스를 제공하고 있다.
이런 목적으로 radix-64 변환을 사용하는데 이 변환을 사용하면 3개의 octet으로 이루어진 2진 데이터 한 세트를 4개의 ASCII 문자로 변환할 수 있다. 이 형식에는 전송오류를 탐지하기 위해서 CRC를 사용한다.
- 단편화(Segmentation)
PGP는 기본 전자우편 프로토콜에서 허용하는 일정한 크기의 전송 단위로 생성하기 위해 Radix-64로 변환한 후에 메시지의 단편화를 허용한다.
단편화는 radix-64 변환을 포함한 다른 모든 과정 이후에 행해진다. 그래서 세션키 부분과 서명 부분은 첫 번째 단편의 앞부분에 딱 한 번만 나타난다.
PGP 인증서
PGP 인증서에는 CA가 필요 없다. 링에 속해 있는 사용자라면 링에 있는 누구라도 인증서에 서명할 수 있다. 신뢰에 대한 계층 구조가 존재하지 않으며 트리 또한 존재하지 않는다.
- 신뢰와 적법성
ⓛ PGP에서 신뢰 모델
행위의 중심으로서 사용자가 링에서 갖는 임의의 사용자에 대한 모델을 생성할 수 있다.
다이어그램은 공개키 링 테이블에서의 임의의 변경에 따라 변경될 것이다.
② 신뢰할 수 있는 웹(신뢰망, web of trust)
PGP는 공개키 신뢰성 확보를 위해 신뢰망을 구축한다.(PKI 불필요)
특정 사용자 A의 공개키를 신뢰하는 사용자들이 자신의 개인키로 사용자 A의 공개키에 디지털 서명한다.
사용자 A의 공개키를 입수한 사용자 B는 공개키에 첨부된 다른 사용자의 서명 중에 자신이 신뢰할 수 있는 사용자의 서명이 발견하면 사용자 A의 공개키를 신뢰한다.
만약 각각의 개체가 다른 개체에게 더 많은 개체를 소개한다면 각각의 개체에 대한 공개키 링은 더욱 커질 것이며 링에 있는 개체는 각각 다른 사람에게 안전한 전자우편을 전송할 수 있다.
S/MIME(Secure Multipurpose Internet Mail Extensions)
MIME
MIME은 전자우편을 통하여 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜이다.
MIME은 송신 사이트에서 ASCII가 아닌 데이터를 NVT ASCII 데이터로 변환하고 이를 인터넷을 통해 송신할 클라이언트 MTA로 배달한다. 수신자측의 메시지는 원래 데이터로 역변환된다.
ASCII가 아닌 데이터를 ASCII 데이터로 변환하고 또 그 역을 수행하는 소프트웨어 기능들의 조합을 MIME으로 간주할 수 있다.
- MIME 헤더
MIME은 변환 인수를 정의하기 위해 원래의 전자우편 헤더 부분에 추가될 수 있는 5개의 헤더를 규정한다.
① MIME 버전 : 사용된 MIME의 버전을 규정한다. 최신 버전은 1.1이다.
② 내용 유형(Content-Type) : 메시지의 몸체에서 사용되는 데이터의 종류를 규정한다.
· 내용 유형과 내용 서브유형을 사선으로 구분한다.
· 서브유형에 따라 헤더는 다른 인수들을 가질 수 있다.
· 7가지 주요 내용 유형이 있고 총 15가지 서브유형이 있다. 일반적으로 내용 유형은 일반적 데이터 유형을 선언하고 서브유형은 해당 데이터 유형의 특정 형식을 묘사한다.
③ 내용 전달 인코딩(Content-Transfer-Encoding) : 전송을 위해 메시지를 0과 1로 인코딩하는 방법을 정의한다.
④ 내용 ID : 여러 개의 메시지가 있는 상황에서 전체 메시지를 유일하게 식별한다.
⑤ 내용 기술 : 몸체가 화상인지 소리인지 영상인지를 정의한다.
S/MIME
S/MIME은 기존 전자 우편 보안 시스템의 문제점인 PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF의 작업 그룹에서 RSADIS(RSA Data Security Incorporation)의 기술을 기반으로 개발된 전자 우편 보안 시스템이다.
S/MIME은 네트워크를 통해 주고받는 메시지에 대해 송/수신자에게 전자 우편 보안 서비스를 제공할 뿐만 아니라 MIME 객체를 전송할 수 있는 모든 프로토콜에서 보안 서비스를 이용할 수 있게 만든다.
S/MIME이 제공하는 보안 서비스에는 메시지에 대한 기밀성, 무결성, 사용자 인증, 송신 사실 부인 방지가 포함된다.
- S/MIME의 동작
사용자는 수신자에게 보낼 메시지를 작성한다. 이 메시지는 RFC 822에 정의되어 있는 MIME 형태로 작성된다. 사용자는 전자우편을 보내기 전에 메시지에 대한 전자 서명을 할 것인지, 암호화를 할 것인지 또는 전자 서명과 암호화 모두 할 것인지를 선택한다.
이후 S/MIME 애플리케이션은 MIME 헤더와 바디로 구성되는 MIME 형태의 메시지를 S/MIME 메시지로 변환한다. 즉 보안 메커니즘을 적용하여 S/MIME 메시지의 형태로 변환함으로써 전자 서명과 메시지의 암호화가 이루어지게 된다.
마지막으로 사용자는 메시지 보내기를 선택하면 메일 클라이언트는 전자 우편 서버에 메일을 전송하고, 수산지의 메일 서버에 메시지가 전송되어 수신자는 S/MIME 클라이언트를 이용해 메시지를 받게 된다.
이때 보안 기능이 없는 SMTP 프로토콜이 사용되지만 이미 메시지에 암호화 또는 전자서명을 했기 때문에 네트워크로 전송되는 도중에 메시지의 도청 및 변조 등의 위험으로부터 안전하다.
- S/MIME이 제공하는 보안서비스
S/MIME은 전자 서명을 위해 DSS를 사용하고 세션키를 암호화하기 위해 DH 알고리즘을 사용한다. 또한 전자 서명과 세션키 암호화 모두를 위해 사용할 수 있는 알고리즘으로 RSA 알고리즘을 사용한다.
그리고 전자 서명을 생성하기 위한 해시함수로는 SHA-1과 MD5를 요구하고 3DES 알고리즘이 메시지 암호화를 위해 사용된다.
다만 시간이 지나면서 취약한 알고리즘들의 사용을 하지 않아 메시지 암호화에서는 AES-128 with CBC 알고리즘을 사용하는 등의 변화가 있음
RFC 2634에서는 4가지의 강회된 S/MIME 보안 서비스를 정의하였다.
· 서명된 수령증(Signed receipts) : 서명된 수령증을 돌려받으면 메시지 원 소유자는 자신이 보낸 메시지가 배달이 되었음을 확인할 수 있고 메시지 원 소유자는 수신자가 그 메시지를 받았다는 사실을 제3자에게 증명할 수 있다.
· 보안 레이블(Security labels) : 보안 레이블이란 S/MIME 캡슐화로 보호하는 콘텐츠의 중요성에 관련된 보안 정보의 집합이다. 레이블은 어떤 사용자가 객체에 접근이 허락되었는지를 표시하는 것으로 접근 제어에 사용할 수도 있다.
· 안전한 메일링 목록(Secure mailing lists) : 복수의 수신자에게 메시지를 전송할 경우 각 수신자의 공개키 사용을 포함하여 MLA(Mailing List Agent) 서비스를 사용함으로써 많은 양의 수신자별 처리가 가능하다.
· 서명 인증서(Signing Certificates) : 서명 인증서 속성으로 송신자의 인증서와 서명을 묶는다.
- S/MIME의 기능
일반적인 기능면에서 S/MIME은 PGP와 매우 흡사하다. 두 가지 다 메시지를 서명하고 암호화하는 기능을 제공한다.
S/MIME은 다음 기능을 제공한다.
① 동봉된 데이터(Enveloped data)
이것은 임의 유형의 암호화된 내용과 하나 혹은 여러 수신자를 위해 암호화된 내용 암호화키로 구성된다.
동봉된 데이터 컨텐츠 유형은 메시지의 비밀성을 제공하기 위해 사용된다.
· 단계별 절차
특정한 대칭암호 알고리즘에서 사용할 의사랜덤 세션키를 생성한다.
각 수신자를 위해 수신자의 RSA 공개키로 세션키를 암호화한다.
각 수신자를 위해 수신자 정보라고 알려진 블록을 준비한다. 이 수신자 정보 블록에는 수신자의 공개키 인증서 식별자, 세션키 암호에 사용된 알고리즘 식별자 그리고 암호화된 세션키가 들어 있다.
세션키로 메시지 내용을 암호화한다.
② 서명된 데이터(Signed data)
서명데이터는 실질적으로 한 명 또는 그 이상의 서명자에 의해 사용될 수 있다.
서명될 내용의 메시지 다이제스트를 구하고 서명자의 개인키로 그것을 암호화해서 디지털 서명을 생성한다. base64 부호화를 이용해 내용과 서명을 부호화한다. 서명된 데이터의 메시지는 S/MIME 기능을 갖춘 수신자만 볼 수 있다.
· 단계별 절차
메시지 다이제스트 알고리즘을 선택한다.
서명될 내용의 메시지 다이제스트를 계산한다.
서명자의 개인키로 메시지 다이제스트를 암호화한다.
서명자 정보(SignerInfo)라 알려진 블록을 준비한다. 이 서명자 정보에는 서명자의 공개키 인증서, 메시지 다이제스트 알고리즘 식별자 그리고 암호화된 메시지 다이제스트가 들어 있다.
③ 명문-서명 데이터(Clear-signed data)
서명된 데이터로서 내용에 대한 디지털 서명을 한다. 그러나 이 경우 오직 디지털 서명만 base64로 부호화하고 내용은 부호화하지 않는다. 결국 S/MIME 기능이 없는 수신자가 비록 서명을 인증할 수는 없지만 메시지 내용을 볼 수는 있다.
④ 서명되고 동봉된 데이터(Signed and enveloped data)
서명만 되거나 암호화된 개체는 중첩될 수 있다. 그래서 암호화된 데이터는 서명될 수 있고 서명된 데이터나 명문 서명 데이터는 암호화될 수 있다.
- S/MIME의 인증서 처리
S/MIME은 X.509v3 규정을 준수하여 공개키 인증서를 사용한다.
PGP 모델처럼 S/MIME 관리자와 사용자는 각 클라이언트에게 신뢰할 수 있는 키 목록과 인증서 취소 목록을 제공하여 클라이언트를 구성해야 한다.
즉, 수신된 서명을 확인하고 송신될 메시지를 암호화하는데 쓸 인증서를 유지 관리해야할 책임이 S/MIME을 사용하는 당사자에게 있다는 뜻이다.
스팸 메일 보안 대응 기술
스팸 메일의 기술적 대응방안
분류 | 대응 방안 | 상세 내용 | 비고 |
메일 서버 수신 차단 |
콘텐츠 필터링 | 메일의 헤더 정보, 제목, 메시지 내용의 특정 단어 및 문장 패턴을 검색하여 차단 | 가장 많이 사용 |
송신자 필터링 | 송신자 IP, 송신자 메일주소, 송신자의 URL 등의 정보를 포함한 스팸 발신처 블랙리스트를 관리하여 차단 | 지속적 관리 필요 | |
네트워크 레벨 필터링 |
패킷 필터링, DNS 변경 | ||
발송량 기준 차단 | 기준 시간 동안에 특정 용량 이상의 메일 수신 시 이후 수신 메일 차단 | 최대 수신 용량 관리 | |
시간대별 차단 | 업무 시간에는 업무용 송신 메일 이외에 외부 메일 차단 | 송신자 정보 기준 | |
메일 서버 보안 | 릴레이 스팸 방지 | 액세스 DB를 통한 송신자별 릴레이 허용 여부 설정 가능 릴레이 영역 지정 기능을 활용하여 허용되는 릴레이 도메인의 리스트 설정 |
sendmail 8.9 이상 |
Anti-SPAM 솔루션 도입 |
별도의 스팸 차단 전용 보안 솔루션을 도입하여 운영 | 대응효율성 강화 |
|
메일 클라이언트 보안 |
콘텐츠 필터링 | 특정 단어가 포함된 필터링 규칙을 적용 | |
송신자 필터링 | 수신 거부 등 별도의 블랙리스트 관리를 통해 향후 메일 수신 시 차단 |
메일 서버 등록제 SPF(Sender Policy Framework)
- SPF의 정의
메일 헤더에 표시된 발송정보(IP)가 실제로 메일을 발송한 서버(IP)와 일치하는지를 비교함으로써 발송자 정보의 위변조 여부를 파악할 수 있도록 하는 기술이다.
이메일 발송자의 서버를 DNS에 미리 등록하고 수신자의 서버에 메일이 도착하면 등록된 서버로부터 발신되었는지 확인하여 스팸 메일을 차단하는 기술이다.
- SPF의 특징
스팸 메일은 수신자에게 전달되기 전에 각 포털 업체 메일 서버에서 자동으로 차단한다.
필터링 방식에 비해 서버 및 네트워크 자원 소모가 낮고 과오 차단의 가능성이 적다.
오픈 소스를 기반으로 하기 때문에 라이선스를 고려할 필요가 없다.
- SPF의 동작 절차
포털 업체들이 송신 측 메일 서버의 정보를 자신의 DNS에 등록한다.
메일 수신 후에 발송정보(IP)가 실제로 메일을 발송한 서버 정보(IP)와 일치하는지 여부를 DNS에 질의한다.
발송자 정보의 위변조 여부를 파악한다.
스팸 필터 솔루션
- 스팸 필터 솔루션의 구성
스팸 필터 솔루션은 메일 서버 앞단에 위치하여 프락시 메일 서버로서 동작하며 SMTP 프로토콜을 이용한 DoS 공격이나 폭탄 메일, 스팸 메일을 차단한다.
또한 전송되는 메일의 바이러스까지 체크할 뿐만 아니라, 내부에서 밖으로 전송되는 메일에 대한 본문 검색 기능을 통해 내부 정보 유출도 방지한다.
- 스팸 필터 솔루션의 기능
· 메일 헤더 필터링
메일 헤더의 기본 구성은 보내는 사람, 받는 사람, 참조자, 숨은 참조자이다.
메일 헤더의 내용 중에서 ID/보내는 사람의 이름/도메인에 특정 내용이 포함되어 있는지를 검사하고, 보낸 서버의 IP/도메인/반송 주소의 유효성과 이상 유무를 검사한다.
· 제목 필터링
메일 제목에 특정 문자열이 포함되어 있는지를 검사한다.
· 본문 필터링
메일 본문에 특정 단어 혹은 특정 문자가 포함되어 있는지를 검사하고 메일 본문 크기와 메일 전체 크기를 비교하여 그 유효성을 검사한다.
· 첨부파일 필터링
첨부된 파일의 이름/크기/개수 및 첨부파일 이름의 길이를 기준으로 필터링을 수행하며 특정 확장자를 가진 첨부파일만 전송되도록 설정할 수 있다.
일반적으로 실행이 가능한 확장자를 가진 첨부파일을 필터링한다.
스팸메일 방지 보안도구
· Procmail
sendmail.cf에 포함시키거나 사용자 디렉터리에 forward 파일을 위치시켜 실행시키는 plug-in 형식으로 쓰인다.
받은 메일에서 보낸사람, 제목, 크기, 내용 등의 단일 기준 또는 다중 기준으로 메일 필터링이 가능하다.
· Sanitizer
e-mail을 이용한 모든 공격에 대해 효과적으로 대응할 수 있도록 해주는 procmail ruleset이다. 옵션을 통해 확장자를 이용한 필터링, MS Office 매크로에 대한 검사기능, 악성 매크로에 대한 score 기능, 감염된 메시지 보관 장소 설정 기능 등을 제공한다.
· Inflex
메일서버에서 로컬이나 외부로 나가는 e-mail에 대한 Inbound와 Outbound 정책을 세워 메일 필터링이 가능하다.
첨부파일만 필터링이 가능하다.
· SpamAssassin
Apache 그룹을 통해 오픈 소스 프로젝트로 진행되고 있다. Perl로 만들어졌으며 헤더 내용, 화이트 리스트와 블랙 리스트, RBL(Real-time black list) 등의 다양한 분류로 메일 필터링이 가능하다.
sendmail
sendmail은 인터넷 전자 메일의 표준규약인 SMTP 프로토콜을 통해서 메일 서비스 기능을 한다.
즉 sendmail은 메일 서버 간에 메일을 주고받는 역할을 한다.
- /etc/mail/access를 이용한 스팸 메일 방지법
제어 옵션 | 설명 |
RELAY | 메일 Relay를 허용한다. 즉, 관련(host에서 지정된) 메일의 수신 또는 발신을 허용한다. |
REJECT | RELAY와는 반대로 메일 RELAY를 허용하지 않는다. 즉 관련 메일의 수신을 거부한다. |
DISCARD | 메일을 받은 후 폐기한다. 단, 메일발신자에게 폐기통보를 전혀 하지 않는다. |
OK | 조건 없이 허용한다. 즉, 관련 메일의 모든 것을 허용한다. |
501 메시지 | 메일주소가 일부분 이상 일치할 경우 지정된 메시지로 거부하게 된다. |
502 메시지 | 발신 메일주소에 host명이 없을 경우에 메일을 받지 않는다. |
- 예시
xxxxxxxxx.com RELAY yyyyyyyyy.net REJECT 111.123.222.234 DISCARD |
'정보보안기사' 카테고리의 다른 글
웹 보안(Web Security) - 2 (0) | 2023.05.07 |
---|---|
웹 보안(Web Security) - 1 (0) | 2023.05.05 |
FTP 보안 (0) | 2023.05.01 |
최신(아님) 네트워크 보안기술 (0) | 2023.04.30 |
VPN (0) | 2023.04.29 |