재택근무에 필요한 IT 기술 중 1편 - 화상 회의 기술에 이어 2편에서는 협업 메시징 서비스를 골랐다. 메시징(messaging)이란 온라인상에서 커뮤니케이션이 필요한 개인과 팀, 그룹, 조직 간의 텍스트 메시징을 의미한다. 하지만 비단 문자열 기반의 평문 통신뿐만 아니라 문서, 이미지, 오디오, 비디오 파일 공유 및 실시간 협업을 통한 문서 업데이트 등이 가능하다. 협업용 메시징은 비(非) 대면 상황에서도 즉각적인 반응과 응답이 가능하다는 측면에서 이메일과는 또 다른 효과를 가져다준다.

이번 글에서는 메시징 서비스에서 가장 필요한 기능과 그것을 구현하기 위한 기술을 소개하였다.

◇ 메시지 전달 프로토콜
메시지 전달은 전통적으로 TCP/IP 기반의 소켓(socket), HTTP 기반의 Long Polling 등을 사용해왔다. 좀 더 실시간성으로 빠르게 많은 이들에게 메시지를 보내기 위해 웹 소켓(WebSocket) 및 TCP 보다 가벼운 경량의 MQTT(Message Queuing Telemetry Transport) 프로토콜이 사용되고 있다. 본래 MQTT는 IoT 및 M2M 통신에서 시작된 프로토콜이지만, 메시징이 1:1 통신에서 1:N 통신 및 Publishing/Subscription 구조의 대화 채널(channel) 개념으로 옮겨가면서 많은 인스턴트 메신저에서 사용되고 있다. 일반적으로 메시지는 휘발성이 아닌 저장형 데이터이기 때문에 전송된 메시지는 중앙 서버를 통해 데이터베이스에 저장되고, 수신이 필요하거나 메시지 검색을 하는 사용자에게 데이터베이스에서 질의하여 메시지를 전달하는 구조를 가지고 있다.

◇ 디바이스 인식과 인증
기업에서 사용하는 엔터프라이즈 버전의 메시징 도구는 기업의 LDAP이나 Active Directory 등의 인증 시스템과 연동을 지원하기 위해 SAML(Security Assertion Markup Language) 형태의 SSO를 지원해야 한다. 이 과정을 통해 인증이 완료된 사용자의 개인 정보, 조직 정보와 메시징 시스템에서 인가된 권한을 취득한다. 메신저는 접속한 디바이스가 기존에 등록된 소유주의 것이 맞는지 기기 인증을 진행하고, 맞는다면 Always-On 상태를 유지하는 것이다. 이 과정에서 보안 강도를 높이기 위해 이중 인증(Two-Factor Authentication)을 사용하기도 한다.

◇ 메시지 보안
사용자 간 전달하는 메시지의 보안에는 크게 두 가지가 있다. 첫째는 전달 채널 자체의 보안으로 TLS/SSL, HTTPS나 DTLS를 사용한다. 이것은 메시지 자체의 암호화(encryption)가 아닌 보안 채널(secure channel)을 확보하는 것이다. 두 번째는 전달하는 메시지와 문서 파일 등을 암호화 키(key)를 사용하여 암호화하고, 수신자는 대칭키를 사용하여 복호화 하는 방식이다. 최근에는 메시징 서비스를 제공하거나, 암호화 키를 관리하는 조직에서조차 중간에서 메시지 해독을 할 수 없도록 종단 간 암호화(End-to-End Encryption) 방식을 사용한다.

종단 간 암호화(End-to-End Encryption) 방식
종단 간 암호화(End-to-End Encryption) 방식

◇ 종단 간 암호화의 구현
종단 간 암호화는 메시지를 주고받는 양쪽에서만 암호화, 복호화를 수행하고 이를 전달하는 메시징 서버는 단순히 암호문을 전달할 뿐 중간에서 메시지를 해독하지 못한다. 중요한 점은 1:1 통신에서 종단 간 암호화의 성능은 빠르고 복잡도는 낮지만, 그룹 메시징이나 대용량 첨부파일 형태의 데이터를 주고받는 채널에서는 시스템의 복잡도가 증가하고, 암복호화를 위한 시스템 리소스의 사용량이 증가되어 전반적인 성능에도 영향을 줄 수 있다는 점이다.

메시징 서비스 업체 혹은 이를 사용하는 엔터프라이즈 기업들이 엄격한 보안 정책을 모두 준수하는 키 관련 시스템을 사내에 구현하고 유지하는 것은 적잖은 부담이 될 수 있다. 따라서 보안 강도를 충족하는 시스템을 분리하기 위해 클라우드 상의 키 관리 시스템(KMS:Key Management System)을 사용하는 경우도 많다. KMS에 메시징 업체의 마스터키 - CMK(Customer Master Key)를 준비하고, 대화의 메타데이터에 알맞은 짧은 생명주기를 가진 데이터 키(Data Key)를 생성하여 암호화, 복호화에 사용하는 것이다.

Slack의 암호화 도구 - EKM / 출처=Slack
Slack의 암호화 도구 - EKM / 출처=Slack

◇ 메시징 시장의 고찰
국내 협업 메신저 시장을 살펴보면 크게 세 가지 양상이다. 첫 번째로 글로벌 점유율이 높고 메시징을 비롯한 협업 기능이 뛰어난 외산 솔루션 슬랙(Slack), 팀즈(Teams), 플로우(Flow) 등이 점유한 시장, 두 번째는 국내 토종 솔루션인 라인 웍스, 잔디 등이 국내 입맛에 맞게 커스터마이징한 자체 서비스로 시장 점유율을 쫓고 있으며, 세 번째는 엔터프라이즈 - 대기업의 경우는 대부분 인트라넷 내부의 자체 ERP와 연동한 전통적인 사내 메신저를 사용하고 있다.

글로벌 서비스의 경우 문서 공유 등의 타 서비스 연동이나, 외부 서비스가 앱을 활용할 수 있는 API 등을 지원하고 있어서 보다 유연하게 기존 시스템과 연동 및 활용이 가능한 장점이 있다. 국내 서비스는 후발 주자로서 보다 국내 사용자에게 친근한 UI와 필요한 기능을 내세우고 기존의 B2C 메신저와 연계하여 기능성을 더하는 전략을 가지고 있다. 금년 하반기 카카오는 카카오톡 기반 협업용 메신저를 출시할 계획이기에 국내 서비스간 경쟁은 더욱 치열해지겠지만, 국내외 시장에서 COVID-19 사태로 인해 재택근무와 온라인 협업에 대한 기존의 부정적인 인식이 많이 바뀌었고, 업무용 메시징 시장의 파이 자체가 커지면서 더 많은 기회가 만들어질 수 있을것으로 예상한다.

강상진 sangjin@brandonkang.net 필자는 삼성SDS, 마이크로소프트, 아카마이 테크놀로지스 등에서 소프트웨어 개발과 프로그램 매니저, 아키텍트 경험을 쌓았다. 기술 블로그 'Tech유람'을 운영하고 있으며 다양한 IT 관련 지식을 글과 컨퍼런스, 교육을 통해 많은 이들에게 공유하며 상호 작용하는 삶을 즐기고 있다.

관련기사

저작권자 © 넥스트데일리 무단전재 및 재배포 금지