IT Life

메시지 저장도 이제는 암호화 시대! - 안전한 메신저 사용을 위해 우리에게 필요한 것들 -

2014.11.13 10:08

 


최근, 국내 최대 모바일 메신저인 카카오톡(Kakaotalk)이 이슈가 된 사건이 있었습니다. 도청, 감청이라는 명목 하에 검찰의 영장 내용에 따라, 서버에 저장된 대화 내용을 제공한 것인데요. 이것은 정치권뿐만 아니라 일반 사용자들 사이에서도 큰 논란이 되었습니다. 이후 텔레그램(Telegram)과 같은 해외 메신저에 대한 관심이 증가했고, '사이버 망명'이라는 웃지 못할 상황이 벌어지기도 했죠. 그리고 이것은 지금도 계속 진행 중입니다. 오늘은 안전한 메신저 사용을 위해 보안에는 어떤 기술적인 면이 필요한지 함께 알아보겠습니다. 

 

일반적으로 모바일 메신저는 '메신저 서버'가 존재하는데요. 사용자들이 메신저 서버에 접속하여 서버에 접속되어 있는 다른 사용자에게 접근하면, 메신저 서버에 대화 창구가 만들어지는 것이죠. 그리고 이 창구를 통해 메시지를 주고받습니다. 즉 '사용자 A→ 서버 대화 창구→ 사용자 B' 순서로 메시지가 전달된다는 것이죠. 서버의 대화 창구에는 사용자 A와 B의 대화 내용이 저장되는 것이 일반적인데요. 저장의 가장 큰 목적은 메시지 전달의 확인입니다. 또한 기존 메시지를 편하게 다시 보려는 이유도 있죠. 그리고 메신저 서비스마다 다르긴 하지만, 보통은 대화가 끝난 후 짧게는 하루에서 길면 일주일 정도까지 내용을 보관합니다. 복구 작업에 사용될 것을 대비해서 말이죠.


예전에는 모바일 메신저 대화가 일반 평문으로 오갔고 도청이나 감청도 쉬웠습니다. 하지만 요즘은 기본이 암호화 통신입니다. 앞서 잠시 언급했지만 서버를 통해 메시지를 주고받는 경우, 서버와 모바일 메신저 클라이언트 사이에 암호화 세션이 만들어집니다. 그리고 인터넷을 통한 메시지 전송은 모두 암호화되어 오가게 되는 것이죠. 따라서 중간에 메시지 패킷(packet)을 스니핑(sniffing: 네트워크상 전달되는 패킷을 분석하여 사용자의 계정과 암호를 알아내는 것) 한다고 하더라고 그 내용을 보는 것은 거의 불가능합니다. 암호화 시 사용했던 키를 모르면 내용을 복원할 수 없기 때문인데요. 뿐만 아니라 요즘은 대부분의 메신저가 AES 128Bit 이상의 암호화 알고리즘을 사용하므로, 메시지 내용 확인은 더욱 어렵습니다.


결국 철저한 보안을 위해서는 대화 내용이 평문으로 저장되어서는 안 된다는 것인데요. 이번 카카오톡 사건의 경우도 여기에 해당됩니다. 카카오톡 또한 대화 내용이 평문(Plain Text)으로 저장되어 있고, 이 내용을 가져가서 확인할 수 있었다는 것이죠. 물론 이 서버의 접근 방법을 강화하여 외부의 침입은 막았지만, 문제는 내부의 적에 대해서는 무방비 상태였다는 것입니다. 그래서 이번 논란 이후, 카카오톡은 내부에 저장되는 대화 내용을 암호화하고 저장 기간도 2~3일로 줄인다고 발표했는데요. 다시 말해, 안전한 메시징 조건 중의 하나는 모든 단계에서 암호화가 진행되어야 한다는 것입니다.   

 

앞서 카카오톡 사건을 잠시 언급했는데요. 카카오톡의 안전성 논란 중 하나는 바로 '종단간 암호화(End to End Encryption)'와 관련된 내용이었습니다. 종단간 암호화란 처음 입력하는 단계부터 최종적으로 수신하는 모든 단계에서, 메시지를 평문으로 저장하지 않고 모두 암호화하는 방식을 의미하는데요. 


종단간 암호화 이야기가 나온 것은 메신저와 메신저 사이에서만 통용되는 암호화 방식을 쓰자는 것입니다. 어차피 메시지 내용을 서버가 알 필요는 없기 때문이죠. 서버는 메시지의 보관 및 전달의 역할만 잘하면 됩니다. 따라서 시간 값과 내용만 있으면 되고, 대화 내용이 암호화되어 있더라도 큰 문제가 없다는 이야기입니다. 종단간 암호화를 하게 되면 두 메신저 사이에서만 사용할 수 있는 암호화 방식 및 키를 사용하는데요. 그로 인해 중간 단계에서 대화 내용이 평문으로 바뀌어 처리되는 경우는 없습니다. 또한 서버를 거친다고 해도, 암호화되어 있기 때문에 서버 쪽에서의 스니핑도 어려운 것이죠. 저장된다고 하더라도 암호화 저장이므로, 평문 저장보다는 훨씬 더 안전한 셈입니다.     


하지만 문제가 없는 것은 아닙니다. 1:1 대화가 아닌, 단체 대화일 경우인데요. 1:1 대화의 경우, 서로 암호화 키를 공유하면 되지만, 1:N 방식이라면 문제가 된다는 것이죠. 예를 들어, 1, 2, 3, 4, 5라는 사용자가 단체 대화방에서 대화를 하고 있을 때, 종단간 암호화가 적용되면 1이 2에게 메시지를 보내면 2는 볼 수 있지만 3, 4, 5는 못 보게 됩니다. 1, 2 사이에는 키가 공유되어 있지만 3, 4, 5는 키가 없기 때문이죠. 결국 다 볼 수 있으려면 모두가 서로의 키를 다 갖고 있어야 합니다. 아니면 공통키를 사용해야 하는데요. 이 방식은 초기 대화 시, 시스템의 부하를 가져올 수 있습니다. 그래서 카카오톡도 종단간 암호화를 도입하겠다고는 했지만, 단체 대화방에서는 좀 더 고민하겠다고 하는 이유가 여기에 있습니다. 하지만 이제는 1:1 대화에서 종단간 암호화가 안전한 메신저를 위한 필요 조건처럼 받아들여지고 있다는 것입니다. 

 


안전한 메신저의 첫째 조건은 '보안의 강화'입니다. 그 핵심에는 '암호화'가 있죠. 통신 상에서의 암호화는 이미 많이 도입되어 있어서 큰 문제가 아니지만, 문제는 저장 내용의 암호화입니다. 1:1 통신에서의 종단간 암호화도 필수 요소가 되어 가고 있는 요즘, 무엇보다 '암호화 키'를 어떻게 관리하고 공유시키냐 하는 것이 관건입니다. 


최근의 해킹을 살펴보면 암호화 알고리즘을 공격하는 경우는 별로 없습니다. 대신, 전에 공유하는 암호화 키 공유 방법을 공격합니다. 아무리 암호화 알고리즘이 견고하더라도, 키가 노출되면 무용지물이기 때문이죠. 안전한 키 공유 방식에는 여러 가지 있지만, 그 중 하나는 '공개키 알고리즘'을 이용하는 것입니다.



암호화에는 '공개키 알고리즘' 방식과 '대칭키 알고리즘' 방식이 있는데요. 많이 사용하는 'AES (Advanced Encryption Standard, 미국 연방 표준 알고리즘) '나 국내에서 만든 'ARIA', 'SEED'와 같은 암호화 알고리즘은 대칭키 알고리즘 방식입니다. 하나의 키가 있고, 그것을 통해 암/복호화를 진행하기 때문이죠. 


반면, 'RSA(Rivest Shamir Adleman) ' 암호화 알고리즘이라 불리는 방식이 있는데요. 이게 바로 공개키 암호화 알고리즘입니다. 공개키 암호화 알고리즘은 공개키와 비밀키 두 가지를 사용하는데요. 공개키로 암호화하고, 비밀키로 복호화하는 방식이죠. 이 두 키가 다르기 때문에, 모두 유출되지 않는 이상 안전합니다. 그래서 공개키를 상대방에게 보내고, 그 키로 암호화 통신을 위한 키를 암호화하여 보냅니다. 이렇게 암호화되어 온 키를 비밀키를 이용하여 풀고 공유하는 방식인 것이죠. 물론 이 방식도 문제가 없는 것은 아닙니다. 하지만 아직까지는 가장 무난한 키 공유 방식으로 알려져 있습니다.         


지금까지 안전한 메신저 사용을 위해 강화되어야 할 보안에 대해 생각해 보았습니다. 결국 암호화를 이용한 보안 강화는 필수이며, 이와 더불어 키를 안전하게 공유하는 방식이 함께 어우러져야 한다는 점인데요. IT의 발전은 우리 생활을 편리하게 하지만, 그 내부에 감춰진 보안이 잘 이뤄지고 있는지 자꾸 의심하게 되는 요즘입니다. 비단 특정 메신저뿐만이 아니겠죠. 개인 정보 유출로 인해 많은 사람들이 사생활 침해를 받고 있는 것이 현실이니까요. 앞으로 국내외 많은 기업들이 보안에 대한 지속적인 관심과 노력을 기울여 주기를 기대합니다.    


글 l 이학준(http://poem23.com/ 필명: ‘학주니’)



Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS
위로