정보보안기사

[정보보안기사] SECTION 32 이메일 보안

tnvori 2026. 2. 16. 13:42

뭉크스부처. 채식주의자를 겨냥한 듯한 음식을 즐길 수 있다. 난 고기가 좋아

  1. 이메일 관련 프로토콜
    1. 전자우편의 구조
      1. 메일 서버 구조
        • MUA(Mail User Agent)
          • 사용자가 메일을 송수신하기 위해 사용하는 메일 클라이언트 프로그램
          • 메일을 작성하거나 메일함에 도착한 메일을 확인하는 기능
          • Outlook, Thunderbird
        • MTA(Mail Transfer Agent)
          • 메일 서버 프로그램
          • 수신한 메일의 수신자가 자신이 아닌 메일 주소라면 해당 주소의 메일 서버로 전송(메일 릴레이 기능)
          • 수신자가 자신의 메일 주소라면 MDA를 통해 각 사용자 메일함에 저장하도록 함
          • Sendmail, Qmail
        • MDA(Mail Delivery Agent)
          • 사용자 메일함에 메일을 저장 해주는 프로그램
          • 메일이 MTA에 도착했을 때 메일 서버는 MDA에 메일을 전달하고 MDA는 해당 사용자 메일함에 메일 저장
          • Procmail
        • MRA(MAil Retrieval Agent, Message Access Agent)
          • 메일 클라이언트(MUA)가 확인을 요청하는 메일을 사용자 메일함에서 사용자로 전달해주는 프로그램
          • POP3, IMAP 기반
    2. SMTP
      1. 개요
        • 기본 개념
          • 인터넷에서 MTA 클라이언트와 서버를 규정하는 공식적인 프로토콜
          • 2번 사용됨
            • 송신자와 송신자의 메일 서버 사이
            • 두 메일 서버 사이
          • 메일 서버 = SMTP 서버
            • UNIX — Sendmail
            • MS — Mircrosoft Exchange
            • Novell — GroupWise
        • 특징
          • 암호화 기능 없음
          • DNS를 통해 사용자의 메일 서버를 찾은 후 이메일 직접 전송
      2. 명령과 응답
        • 개요 — 명령과 응답을 사용하여 MTA 클라이언트와 MTA 서버 사이의 메시지 전송
        • 명령
          • 클라이언트에서 서버로 전송됨
          • Keyword:argument(s)
          • 키워드와 0개 이상의 인수로 구성
          • HELO — SMTP 송신자가 SMTP 세션을 초기화하기 위해 수신자에게 보내는 전통적인 명령
          • EHLO — Extended Hello. 송신자가 SMTP 세션을 초기화하고 수신자에게 지원하는 SMTP 확장의 목록을 보내달라고 요청하는 명령. 인자로 송신자의 도메인 이름 사용
          • MAIL — 메일 전송 시작. 송신자가 이메일 전송을 시작하기 위해 메시지를 받는 사람의 주소 지정
          • DATA — 실제 메시지를 송신하기 위해 사용
          • RSET — 메일 전송 중 중단. MAIL, RCPT 도중 오류가 발생하여 전송을 계속할 수 없을 때 송신자가 사용
          • VRFY — 수신자에게 편지함이 사용 가능한지 확인하도록 요청
          • EXPN — 수신 호스트에게 인수로 보내진 메일링 리스트를 확장하여, 그 목록을 이루는 수신자들의 주소를 되도려주도록 요구
          • HELP — 인자를 명시하지 않으면 일반 도움말 정보 요청. 인자 사용은 해당 명령 코드에 관한 정보를 요청
          • NOOP — 수신자와의 통신 상태를 확인하는 것 외에 아무런 역할을 하지 않음
          • QUIT — SMTP 세션 종료
        • 응답 — 세 자리 숫자의 코드로 뒤에 추가적인 문자 정보가 따라올 수 있음. HTTP 응답과 유사
    3. 메시지 액세스 에이전트(POP과 IMAP)
      1. POP3(Post Office Protocol 버전 3)
        • 간단하지만 기능상 제약 존재
        • 클라이언트 POP3는 수신자 컴퓨터에, 서버 POP3는 메일 서버에 설치
        • 전자우편 액세스는 사용자가 메일 서버에 있는 편지함에서 전자우편을 내려받을 필요가 있을 때 클라이언트에서 시작
        • 클라이언트는 TCP 포트 110으로 서버에 연결
        • 편지함에 액세스하기 위해 사용자 이름(USER 명령)과 비밀번호(PASS 명령) 송신
        • MS Outlook, Eudora Email 등
      2. IMAP(Internet Mail Access Protocol 버전 4)
        • 더 많은 기능
        • 신뢰성. 순서 보장
        • TCP 143 포트에서 IMAP4 클라이언트의 연결 요청 대기
        • 메일을 내려받기 전 헤더 검사
        • 메일을 내려받기 전 특정 문자열로 내용 검색
        • 메일을 부분적으로 내려받을 수 있음
        • 메일 서버에서 편지함을 생성, 삭제하거나, 이름을 변경할 수 있음
        • 폴더 내 편지함을 체계적으로 생성할 수 있음
  2. 이메일 콘텐츠 보안을 위한 보안 기술
    1. PEM(Privacy Enhanced Mail)
      1. 개요
        • IETF에서 인터넷 드래프트로 채택한 기밀성, 인증, 무결성, 부인 방지를 지원하는 이메일 보안 기술
        • 전자우편 프로토콜을 이용하여 암호화된 정보, 전자서명, 암호화 방법 등의 내용을 본문에 텍스트 형식으로 전송
        • 이론 중심적, 큰 사양, 복잡한 구현으로 인해 많이 사용되지 않음
        • 중앙집중화된 키 인증
        • 인터넷 표준
        • 높은 보안
    2. PGP(Pretty Good Privacy)
      1. 개요
        • 이메일과 파일 보호를 위해 암호화를 사용하는 암호 시스템
        • 구현이 용이하여 널리 사용
        • 전자서명을 이용하여 인증 제공
        • 대칭 블록 암호를 이용하여 기밀성 제공
        • ZIP 알고리즘을 이용하여 압축 제공
        • 기수-64 부호화 시스템을 이용하여 전자우편 호환성 제공
        • 단편화 조립 제공
        • 여러 버전 무료 제공. 안전. 매우 다양한 영역에 응용 가능
      2. 키링
        • 각 노드에서 한 쌍의 데이터 구조를 제공해야 함
          • 노드가 소유한 공개키/개인키 쌍을 저장하기 위한 것
          • 이 노드가 알고 있는 다른 사용자의 공개키를 저장하기 위한 것
        • 개인키 고리와 공개키 고리
      3. PGP 보안 서비스
        • 기밀성
          • 3DES, IDEA, CAST, RSA
          • 송신자가 생성한 일회용 세션키로 CAST-128, IDEA, 3DES를 이용해서 메시지 암호화
          • 수신자의 공개키로 RSA를 이용해서 세션키를 암호화하고 메시지에 첨부
        • 인증 — RSA, DSS, SHA-1, MD5, RIPEMD-160
        • 압축 — ZIP
        • 전자 우편 호환성 — Radix-64 변환을 이용해 ASCII 부호로 변환
        • 분할 및 재결합 — 최대 메시지 사이즈 제한으로 인한
        • 송신 부인 방지
        • 수신 부인 방지 미지원
      4. 동작 과정
        • 동작 과정
        • 기밀성 — 64비트 CFB 모드 사용
        • 인증
        • 기밀성과 인증 — 서명 후 암호화
        • 압축
          • 서명 후 암호화 전에 압축
          • 메일 전송과 파일 전송에 있어 저장 공간을 줄일 수 있음
        • 전자메일 호환성
          • 많은 전자메일 시스템에서는 오직 ASCII 문장으로 이루어진 블록만 사용해야 하는 제약 존재
          • PGP는 8비트 2진 스트림을 인쇄용 ASCII 문자 스티림으로 변경하는 서비스 제공
          • 기수-64(radix-64)
            • 3개의 옥텟으로 이루어진 2진 데이터 한 세트를 네 개의 ASCII 문자로 변환
            • 전송 오류 탐지를 위해 CRC 사용
        • 단편화(Segmentation)
      5. PGP 인증서
        • PGP 인증서
          • CA 필요 없음
          • 링에 속해 있는 사용자라면 누구라도 인증서에 서명 가능
          • 신뢰에 대한 계층 구조와 트리 없음
        • 신뢰와 적법성
          • PGP에서 신뢰 모델
            • 사용자가 링에서 갖는 임의의 사용자에 대한 신뢰 모델을 생성할 수 있음
            • 다이어그램은 공개키 링 테이블에서의 임의의 변경에 따라 변경될 것
          • 신뢰할 수 있는 웹(신뢰망, web of trust)
            • PGP는 공개키 신뢰성 확보를 위해 신뢰망을 구축함(PKI 불필요)
            • A의 공개키를 신뢰하는 사용자들이 자신의 개인키로 A의 공개키에 디지털 서명함
            • A의 공개키를 입수한 B는 공개키에 첨부된 다른 사용자의 서명 중 자신이 신뢰할 수 있는 사용자의 서명을 발견하면 A의 공개키 신뢰
    3. S/MIME(Secure Multipurpose Internet Mail Extensions)
      1. MIME
        • 개요
          • 전자우편을 통해 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜
          • 송신 사이트에서 ASCII가 아닌 데이터를 NVT ASCII로 변환하고, 이를 인터넷을 통해 송신할 클라이언트 MTA로 전송. 수신자측의 메시지는 원래 데이터로 역변환
        • 헤더
          • MIME 버전
          • Content-Type
            • 메시지의 몸체에서 사용되는 데이터 종류 규정
            • 내용 유형과 내용 서브 유형을 사선으로 구분
            • 7가지 주요 내용 유형이 있고 총 15가지 서브 유형(subtype) 존재
            • 내용 유형은 데이터 유형을, 서브 유형은 해당 데이터 유형의 특정 형식 묘사(Text, Multipart, Message, Image, Video, Aduio, Apllication)
          • Content-Transfer-Encoding — 전송을 위해 메시지를 0과 1로 인코딩하는 방법 정의
          • Content-Id — 여러 개의 메시지가 있는 상황에서 전체 메시지를 유일하게 식별
          • Content-Description — 몸체가 화상인지, 소리인지, 영상인지 정의
      2. S/MIME
        • 개요
          • PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF의 작업 그룹에서 RSADSI의 기술을 기반으로 개발된 전자 우편 보안 시스템
          • MIME 객체를 전송할 수 있는 모든 프로토콜에서 보안 서비스를 이용할 수 있게 함
          • 기밀성, 무결성, 사용자 인증, 송신 사실 부인 방지
        • 동작
          1. RFC 822에 정의되어 있는 MIME 형태로 메시지 작성. 전송 전에 전자서명, 암호화 여부 선택
          2. S/MIME 애플리케이션은 MIME 헤더와 바디로 구성되는 MIME 형태의 메시지를 S/MIME 메시지로 변환
          3. 전송과 수신
        • 보안 서비스
          • 전자서명 — RSA/SHA-256
          • 메시지 암호화 — AES-128 with CBC
          • 압축
          • 이메일 호환성 — Radix-64
          • RFC 2634에서 강화된 S/MIME 보안 서비스를 정의했음
            • 서명된 수령증(Signed receipts) — 서명된 수령증을 돌려받으면 메시지 원 소유자는 자신이 보낸 메시지가 전송되었음을 확인하고, 메시지 원 소유자는 수신자가 그 메시지를 받았다는 사실을 제3자에게 증명할 수 있음
            • 보안 레이블(Security labels) — S/MUME 캡슐화로 보호하는 콘텐츠의 중요성에 관련된 보안 정보의 집합. 레이블은 어떤 사용자가 객체에 접근이 허락되었는지 표시하는 것으로 접근제어에 사용할 수 있음
            • 안전한 메일링 목록(Secure mailing lists) — 복수에게 메시지를 전송할 경우, 각 수신자의 공개키 사용을 포함하여 MLA 서비스를 사용함으로써 많은 양의 수신자별 처리 가능
            • 서명 인증서(Signing Certificates) — 서명 인증서 속성으로 송신자의 인증서와 서명을 묶음
        • 기능
          • 메시지 서명과 암호화
          • 동봉된 데이터(Enveloped data)
          • 서명된 데이터(Signed data)
            • 내용과 서명을 base64로 부호화
            • 서명된 데이터는 S/MIME 기능을 갖춘 수신자만 볼 수 있음
          • 명문-서명 데이터(Clear-signed data)
            • 디지털 서명만 부호화
            • S/MIME 기능이 없는 수신자가 메시지 내용 확인 가능
          • 서명되고 동봉된 데이터(Signed and enveloped data)
        • 인증서 처리
          • 개요
            • X.509 버전 3 규정을 준수하여 공개키 인증서 사용
            • 관리자와 사용자는 각 클라이언트에게 신뢰할 수 있는 키 목록과 인증서 취소 목록을 제공하여 클라이언트를 구성해야 함
            • 인증서를 유지, 관리할 책임이 당사자에게 있음
            • 인증서는 인증기관에 서명
          • 베리사인 인증서
            • S/MIME이 다양한 다른 응용프로그램과 호환되도록 CA 서비스 제공
            • 베리사인 Digital ID라는 제품명으로 X.509 인증서 발향
            • 운영 규정
              • 클래스1 — 메일 주소로 본인 확인을 한다.
              • 클래스2 — 제3자 DB로 본인 확인을 한다.
              • 클래스3 — 대면 인증과 신분 인증서로 본인 확인을 한다.
  3. 스팸 메일 보안 대응 기술
    1. 이메일 인증 기술
      1. 메일 서버 등록제(SPF, Sender Policy Framework)
        • 개요
          • 발신 메일 서버 정보를 사전에 발신 도메인 DNS 서버에 공개적으로 등록함으로써 수신한 메일의 발신자 IP 주소가 발신자 메일 주소 도메인(MAIL FROM 정보)의 실제 메일 서버 정보(IP 주소)와 일치하는지 검사할 수 있도록 하는 이메일 인증 기술
          • 스팸 메일 발송자의 신원 조작 여부 확인
        • 동작 절차
          • 포털 업체들이 송신 측 메일 서버의 정보를 자신의 DNS에 등록
          • 메일 수신 후에 발송 정보(IP)가 실제로 메일을 발송한 서버 정보와의 일치 여부를 DNS에 질의
          • 발송자 정보의 위변조 여부 파악
      2. 도메인 키 인증 메일(DKIM, DomainKeys Identified Mail)
        • 개요 — 발신자가 발신 메일의 메시지 헤더와 바디에 대한 디지털 서명을 메일 헤더에 삽입하여 수신된 이메일이 위변조되지 않았는지 수신자 측에서 검증할 수 있는 이메일 인증 기술
        • DKIM 전략
          • 최종 사용자에게 투명한 전자우편 인증 기술을 제공하도록 설계
          • 사용자의 메시지는 전자우편 발신지 관리 도메인의 개인키에 의해 서명됨
          • S/MIME은 메시지 내용만을 서명함 → 출처와 관련된 RFC 5322 헤더 정보가 손상될 수 있음
          • DKIM은 클라이언트 프로그램에 구현되지 않아 사용자에게 투명함
      3. 도메인 기반 이메일 인증(DMARC, Domain-based Message Authentication, Reporting and Conformance)
        • SPF와 DKIM을 DMARC 인증 정책을 통해 모두 적용하여 정당한 발신자인지 여부와 메일의 위변조 여부를 검사하고 수신자 측에서 정책 처리 결과에 대한 DMARC 보고서를 발신 측에 전달함으로써 발신 측에서 메일 모니터링을 할 수 있는 이메일 인증 기술
    2. 스팸 메일 대응 방안
      1. 스팸 메일의 기술적 대응 방안
        • 메일 서버 수신 차단
          • 콘텐츠 필터링
          • 송신자 필터링
          • 네트워크 레벨 필터링 — 패킷 필터링, DNS 변경
          • 발송량 기준 차단
          • 시간대별 차단
        • 메일 서버 보안
          • 릴레이 스팸 방지
            • 액세스 DB를 통한 송신자별 릴레이 허용 여부 설정 가능
            • 릴레이 영역 지정 기능을 활용하여 허용되는 릴레이 도메인의 리스트 설정
          • Anti-SPAM 솔루션 도입
        • 메일 클라이언트 보안
          • 콘텐츠 필터링
          • 송신자 필터링
      2. 스팸 필터 솔루션
        • 구성
          • 메일 서버 앞단에 위치하여 프록시 메일 서버로서 동작
          • SMTP를 이용한 DoS 공격, 폭탄 메일, 스팸 메일 차단
          • 바이러스 확인
          • 아웃바운드 메일에 대한 본문 검색 기능을 통해 내부 정보 유출 방지
        • 기능
          • 메일 헤더 필터링
            • 메일 헤더 — 보내는 사람, 받는 사람, 참조자(Cc), 숨은 참조자(Bcc)
            • 메일 헤더 내용 중 특정 내용이 포함되어 있는지 검사하고, 보낸 서버의 IP/도메인/반송 주소의 유효성과 이상 유무 검사
          • 제목 필터링
          • 본문 필터링
          • 첨부파일 필터링
  4. 샌드 메일(sendmail)
    1. 정의
      • SMTP를 통한 메일 서비스 기능
      • 메일 서버간 메일을 주고받는 기능
    2. sendmail 관련 주요 파일 및 디렉터리
      • /usr/bin/sendmail — 주 데몬 실행 파일
      • /usr/bin/makemap — 맵 생성 실행 파일(access, virtualtable 등의 db 파일 생성)
      • /var/spool/mqueue — 큐 디렉터리(수신한 메일을 임시 저장하는 디렉터리)
      • /var/spool/mail — 개별 메일 사용자에게 도착한 메일을 보관하는 디렉터리(사용자별로 별도 메일 파일로 존재)
      • /etc/mail/access
        • 스팸 메일 및 Relay 차단을 위한 설정 파일
        • access 파일은 설정을 위한 텍스트 파일로, 실제 정책을 적용하기 위해서는 makemap 명령을 이용하여 access.db 파일을 생성해야 함
      • /etc/mail/sendmail.cf — sendmail 설정 파일
    3. /etc/mail/access를 이용한 스팸 메일 방지법
      • /etc/mail/access 파일의 설정 제어 옵션
        • RELAY
          • 지정한 대상의 메일 릴레이 허용
          • 기본은 로컬 호스트(메일 서버)만 허용
        • REJECT — 지정한 대상의 메일 거부. 거부 메시지 전송
        • DISCARD — 지정한 대상의 메일 폐기. 메시지 미전송
        • OK — 지정한 대상의 메일을 조건 없이 모두 허용
        • 501 “메시지” — 지정한 메일 주소와 일치할 경우, 메일을 거부하고 설정한 메시지 전송
  • 포트
    • POP3 — 110
    • IMAP — 143
    • IMAP3 — 220
    • SMTP — 25