흠…원래는 웹서버에 대해 심층적인 포스팅을 할때 인증서관련 포스트를 추가하려고 했으나, 메일서버를 제대로 구축하려다 보니 인증서를 손을 안댈 수 가 없내요.

메일서버 포스트 5강에서 Dovecot을 설정시 보안포트 993을 imap에 이용한다 했는데요. 그것을 imaps 서비스라고 합니다. imap의 풀네임은 internet message access protocol)이라면 imaps는 internet message access protocol secured 입니다.

POPs
FTPs
HTTPs

요렇게 뒤에 s 자가 붙는 서비스들은 보통 Secured(보안된) 통신이라는 의미입니다.

그럼 도대체 무엇을 어떻게 보안하느냐? 예제를 하나 들어 보겠습니다.

Copy to Clipboard
Copy to Clipboard

제가 메인보드 전문회사인 Asrock에 문의메일 보내고 회신을 받은 메일 입니다. 맨아랫 부분을 보시면 판독하기 어려운 문자열들만 나열되어 있습니다.

이것이 바로 암호화가 된 것 입니다.

딱 맞는 인증서가 없이는 암호화된 문자열을 해독할 수 없습니다. 설령 가능하다고 하더라도 엄청난 시간이 소모될 것 입니다.
비트코인 채굴기처럼 반복 무작위 연산을 수행하는 컴퓨터 수백대로도 인증서로 암호화된 문자열은 몇십년이 걸려도 못 풀 것 입니다.

메일암호화는 메일서버 관리자에게 특히 중요한데, 바로 사용자의 메일에 대한 보안 때문입니다.

암호화되어 있지 않다면 사용자의 메일이 그대로 쉽게 노출이 될테니까요.

자 그럼, NAS를 사용하는 슈퍼유저이시기 때문에 암호화에서 좀 더 집중적으로 짚고 넘어가 보겠습니다.

우리는 인터넷을 통해 하루에도 무수히 많은 정보를 주고 받습니다. 이메일, 문자메세지, 인터넷전화 등 수단은 과거 어느때보다도 다양 합니다.

그런데, 우리가 은행계좌번호와 비밀번호를 이메일로 가족 누군가에게 보내는데 그 이메일이 암호화되어 있지 않고 아스키문자를 그대로 노출한다면 누군가 이메일 계정자체를 탈취하여 메일을 열람하거나, 아예 관리자모드로 메일을 열어볼 수 있습니다.
암호화 되어 있지 않기 때문에 내용이 하나도 빠짐없이 모두 보이겠죠? 더 나아가서 패킷스니핑 같은 고도의 해킹기술을 바탕으로 네트워크상의 패킷정보를 탈취하여 그 내용을 모두 볼 수 있습니다.

그러므로 암호화는 필수 입니다.

요즘은 웹사이트들은 암호화된 HTTPS 사이트인곳이 많습니다.
아래 보시면 자물쇠 표시가 브라우져에 뜨는데, 이것이 바로 HTTPS사이트란 말입니다. 제 블로그도 HTTPS로 암호화되어 있습니다.(저는 별 필요없지만요….)

특히, 자물쇠표시가 된 사이트들은  공인인증서를 통해 암호화되어 있다는 말 입니다.
공인인증서가 아닌 사설인증서로 암호화가 되어 있다면, 자물쇠 표시가 되지 않습니다.

암호화를 통해 웹서버와 클라이언트가 주고받는 정보가 안전하게 보호되는 것이죠. 예를 들면 로그인과정에서 아이디와 비밀번호는 보호되어야 하는 중요한 정보죠. 오고가는 데이터를 암호화하여 제3자에게 노출하지 않게 하는 것이 바로 암호화 기법입니다.

암호화는 일종의 학문으로 분류되어서 깊이 들어가면 끝이 없습니다. 따라서, 아주 간단하게 무슨 원리인지만 이해해 봅시다.

이메일이나 웹사이트에서 쓰는 SSL 인증서 암호화기법은 다른말로 공개키(Public Key)와 개인키(Private Key)기법 그리고 대칭키(Symmetric Key)기법이라고 불립니다.

이것은 서버가 개인키는 혼자만 가지고 있다가, 접속하는 클라이언트에게 공개키만 알려줍니다. 클라이언트는 공개키를 통해 암호화하여 서버로 정보를 보냅니다. 이 정보는 암호화되있어서 제3자는 알아볼 수 없지만, 서버는 개인키를 통해 복호화하여 암호를 풀 수 있습니다.

실제로는 공개키 방식은 암호화/복호화 과정이 연산과정이 복잡하기 때문에, 실제 데이터는 대칭키 방식으로 주고 받습니다. 대칭키 방식은 서버와 클라이언트가 같은 키를 가지고 암호화/복호화 하는것으로 연산이 비교적 단순하여 속도가 빠르기 때문입니다.
문제는 대칭키를 최초에 주고 받는 과정에서 스니핑 당하면 그대로 해킹 당하는 것이므로 대칭키 자체를 최초에 공개키와 개인키로 암호화하여 배포 하는 기법을 현실에서는 쓰고 있지요.

이리저리 써보니 복잡하내요…..아래 그림이 이해를 돋구시는데 도움이 되겠지요?

이젠 암호화가 무엇인지 이해를 하셨으면, 암호화기법을 NAS 시스템에 도입하셔야 겠죠?

이러한 암호화를 위해서 NAS에 인증서를 설치하시면 됩니다. 인증서는 NAS에서 직접 만드실 수 있습니다.
(나보고 만들라구? 그건 아니구요)

그런데, NAS에서 직접 암호를 만들어 인증서를 배포하면 그것은 사설인증서가 됩니다. 기왕하는거 공인인증서로 하는게 좋을것 같내요. 공인인증서를 써야 브라우져의 자물쇠 표시도 이쁘게 나옵니다.

자 그럼, 여기서 말하는 공인인증서가 혹시 인터넷뱅킹할때 쓰는 그런 공인인증서를 말하는 것이냐? 네, 정확히 맞습니다. 그 공인증서를 말하는 것입니다.
즉, 지금 우리가 하려는 암호화는 인터넷뱅킹에서 쓰는 암호화 기법과 똑같습니다.
NAS좀 조립했을 뿐인데 벌써 여기까지 오셨습니다….루비콘 강의 한가운데 서 계신겁니다.

공인인증서는 일단, 돈주고 사야 합니다. 그런데 가격이 만만치 않습니다. 몇만원 부터 몇백만원까지 할 수 도 있습니다.
실제로, 소규모 인터넷쇼핑몰 사업을 하시는 분이 이러한 사이트 암호화가 의무화되어 공인인증서를 위해 상당한 비용을 써야 한다고 푸념도 하곤 합니다

.

암호화는 하고 싶은데 이런 비용이 부담은 되고…그래서 본 포스팅에서 소개할 것은 무료공인인증서 Let’s Encrypt 입니다.

포스트가 너무 길어져 여기까지 하고, 다음 포스트에서 바로 Let’s Encrypt 무료공인증서를 설치하겠습니다.