1. 배경

현재 이메일 수신확인을 하는 방법은 별도의 플러그인을 설치하거나, 별도의 메일 헤더를 추가하여 수신 응답확인 회신을 요구하거나, 이메일 본문에 이미지를 첨부하여 수신시 해당 리소스 로드 시점을 체크하는 방식을 사용하고 있다. 하지만 이 방법은 수신확인 과정이 누락될 가능성이 있으며 수신확인 결과 또한 완전히 신뢰하기는 어렵다.

2. 기존방식

(1)
(1)
a@me.com
a@me.com
b@you.com
b@you.com
(2)
(2)
Internet
Internet
(6)
(6)
Internet
Internet
(3)
(3)
SMTP
SMTP
(5)
(5)
SMTP
SMTP
(4)
(4)
Internet
Internet


기존 이메일 발신, 수신 과정은 이메일 서비스, SMTP, DNS를 이용한다. (1) 이메일 서비스를 이용해 메일 작성하는 과정 (2) 해당 서비스가 SMTP를 이용하여 메일을 발송하는 과정 (3) 수신자의 메일주소에 해당하는 DNS를 확인하고 (4) 상대방 메일박스가 있는 SMTP로 메일 전송 (5) 수신자가 사용하는 이메일 서비스를 이용하여 (6) 이메일 수신하는 과정을 거친다.

3. 제안방식

(1) 메일 작성
(1) 메일 작성
a@me.com
a@me.com
b@you.com
b@you.com
(3) 수신자의 공개키 확인
(4) 수신자의 공개키 반환
[Not supported by viewer]
SMTP
SMTP
(9) 수신자 개인키 서명 확인
<div style="text-align: left">(9) 수신자 개인키 서명 확인</div>
(8) 개인키 확인
(11) 메일 열람
[Not supported by viewer]
SMTP
SMTP
(2) 수신자에게 메일 발송
(2) 수신자에게 메일 발송
Internet
Internet
(5) 수신자의 공개키로 메일 서명
(6) 발신지 SMTP의 개인키 서명
[Not supported by viewer]
Internet
Internet
(7)발신지 SMTP의 공개키로 서명 확인
(7)발신지 SMTP의 공개키로 서명 확인
BlockChain
BlockChain
(10) 서명 확인하는 과정에서
수신확인 블록체인 기록
(10) 서명 확인하는 과정에서 <br>수신확인 블록체인 기록


제안하는 방식은 블록체인을 이용해 메일을 서명하며 이 과정에서 메시지 송신, 수신의 정보가 블록체인에 기록된다. (1) 발신자는 이메일 서비스를 이용해 메일을 작성한다. (2) 발신측 SMTP에 전송할 이메일이 전달된다. (3) 수신자의 이메일 주소를 블록체인을 이용해 확인하고 (4) 블록체인에 공개된 수신자 공개키를 확인한다. (5) 발송할 메일을 수신자의 공개키로 서명한다 (6) 발신측 SMTP의 개인키를 이용해 메일을 한번 더 서명한다. (7) 인터넷 이메일을 수신 후 발신지 SMTP 정보의 공개키를 이용해 서명을 확인한다. 이때도 블록체인을 이용하는데 서명이 유효하면 메일이 제대로 전달되었다는 것이 기록된다. (8) 수신자에게 개인키를 이용하여 (9) 수신한 이메일의 서명을 블록체인 시스템을 통해 확인한다. (10) 이메일 열람이 기록된다. (11) 메일을 확인한다.