- 송신자가 있는 사이트의 전자우편 서버 관리자 시스템에는 인터넷으로 하나씩 전자우편을 전송할 수 있는 큐잉 시스템이 만들어져 있다.
- 수신자가 있는 사이트의 전자우편 서버 관리자에는 서버에 연결되어 있는 모든 사용자를 위한 메일박스(Mailbox)가 만들어져 있고, 메일박스는 수신자에 의해 검색될 때까지 수신된 메시지를 저장하고 있다.
- 송신자가 메시지를 보낼 때, 메시지를 작성하기 위해 UA(User Agent) 프로그램을 호출한다.
- 그런 다음 송신자는 자신의 사이트에 있는 전자 우편 서버로 메시지를 전송하기 위해 MTA(Message Transfer Agent) 프로그램을 사용한다.
- MTA는 송신자 컴퓨터에 설지되어 있는 클라이언트와 전자우편 서버에 설치되어 있는 서버의 기능을 갖는 클라이언트/서버 프로그램이다.
- 수신자가 송신자가 보낸 메시지를 포함하고 있는 메시지를 검색하고자 할 떄, 수신자는 MAA(Message Access Agent) 프로그램을 호출한다.
- MAA는 수신자 컴퓨터에 설지되어 있는 클라이언트와 전자우편 서버에 설치되어 있는 서버의 기능을 갖는 클라이언트/서버 프로그램이다.
📌 사진 출처 : https://www.gatevidyalay.com/simple-mail-transfer-protocol-smtp-protocol/
- 전자우편을 내려 받기 전에 헤더를 검사할 수 있다.
- 전자우편을 내려 받기 전에 특정 문자열로 내용을 검색하고 부분적으로 내려 받을 수 있다.
- 사용자는 메일 서버에서 편지함을 생성, 삭제하거나, 이름을 변경할 수 있다.
- 전자우편 저장을 위해 폴더 내에 편지함들을 체계적으로 생성할 수 있다.
기능 | 알고리즘 | 설명 |
---|---|---|
기밀성(메시지 암호화) | Triple-DES,IDEA, CAST, RSA | 송신자가 생성한 일회용 세션키로 알고리즘을 이용해 메시지 암호화. 수신자의 공개키로 RSA를 이용해서 세션키를 암호화하고 메시지에 첨부. |
인증(전자 서명) | RSA, DSS, SHA-1, MD5, RIPEMD-160 | 해시 알고리즘을 이용해서 메시지 다이제스트를 생성. 메시지 다이제스트는 송신자의 개인키로 DSS나 RSA를 이용해서 암호화한 후 메시지에 첨부한다. |
압축 | ZIP | ZIP으로 메시지를 압축한다. |
전자 우편 호환성 | Radix-64 변환 | Radix-64 변환을 이용해 ASCII 부호로 변환한다. |
분할 및 재결합 | - | 최대 메시지 사이즈 제한으로 인한 데이터의 분할 및 재결합한다. |
- 사용자는 전자우편을 보내기 전에 메시지에 대한 전자 서명을 할 것인지, 암호화를 할 것인지 또는 둘 다 할 것인지를 선택한다.
- 이후 MIME 헤더와 바디로 구성되는 MIME 형태의 메시지를 S/MIME 메시지로 변환한다.(변환함으로써 전자서명과 메시지의 암호화가 이루어지게 된다.)
- 메시지를 보내면 메일 클라이언트는 저자 우편 서버에 메일을 전송하고, 수신자 메일 서버에 메시지가 전송되어 수신자는 S/MIME 클라이언트를 이용해 메시지를 받게 된다.
기능 | 일반적 알고리즘 | 기본 동작 |
---|---|---|
디지털 서명 | RSA/SHA-256 | SHA-256으로 메시지 해시 코드를 생성한다. 이 메시지 다이제스트를 송신자 개인키를 가지고 RSA로 암호화하고 메시지에 포함시킨다. |
메시지 암호화 | AES-128 with CBC | 송신자가 생성한 일회용 세션키를 이용해 CBC모드의 AES-128로 메시지를 암호화 시킨다. 세션키를 수신자의 공개키를 이용하여 RSA로 암호화하고 메시지에 포함시킨다. |
압축 | 제한 없음 | 메시지를 압축하여 저장하거나 전송한다. |
이메일 호환성 | Radix-64 변환 | 이메일 응용이 투명하도록 암호화된 메시지를 Base64로 변환하여 ASCII 스트링으로 만든다. |