이메일이 슬랙보다 안전하다

모두가 슬랙을 이메일의 현대적이고 안전한 후계자로 취급한다. 하지만 Enterprise Grid에서 조직 소유자는 당신이 보낸 모든 DM을 — 수정하고 삭제한 것까지 — 내보낼 수 있고, 슬랙은 그걸 할 평문을 쥐고 있다. 이메일의 전송 계층은 1982년산 재앙이다. 그런데도 이메일이 슬랙은 구조적으로 줄 수 없는 것을 준다: 보관 주권(custody). 아무도 변호하지 않는 매체를 위한 변론.

당신 슬랙 워크스페이스 어딘가에, 고용주가 절대 안 읽었으면 하는 다이렉트 메시지가 하나 있다. 매니저 험담일 수도, 반쯤 고민하던 이직 얘기일 수도, 맥락 없이 읽으면 나쁘게 보일 농담일 수도 있다. 당신은 그걸 다이렉트 메시지라고 적힌 작은 칸에 입력했고, “다이렉트”라는 단어가 그게 사적이라고 당신을 조용히 설득하는 데 꽤 많은 일을 했다.

사적이지 않았다. 슬랙의 Enterprise Grid 등급에서 조직 소유자는 — 슬랙의 Discovery API나 코퍼릿 익스포트를 통해 — 조직 전체의 모든 공개 채널, 모든 비공개 채널, 모든 다이렉트 메시지에서 모든 메시지를 끌어오는 내보내기를 실행할 수 있다. 수정본이 포함된다. 삭제한 것도 포함된다. 당신이 다시 생각해서 거둬들인 그것이 내보내기 아카이브에 앉아 있다. 내보내기는 클라이언트에 남긴 정돈된 버전이 아니라 감사 흔적(audit trail)을 보기 때문이다. 슬랙은 이걸 컴플라이언스 기능으로 판다. 실제로 그렇다. 동시에 이건 누가 당신의 “사적인” 메시지를 읽을 수 있는지에 대한 담백한 서술이기도 하다: 당신과 상대방만이 아니라, 조직 소유자 키와 이유를 가진 누구든.

이 얘기를 꺼내는 건 반사적인 서열이 정확히 거꾸로여서다. 엔지니어 한 방에 이메일과 슬랙 중 뭐가 더 안전하냐 물으면 대부분 생각 없이 슬랙을 고른다. 슬랙은 새것이다. 슬랙은 마케팅에 자물쇠가 있다. 이메일은 스팸이 타고 들어오는 삐걱대는 물건이다. 하지만 “더 안전하다”는 위협 모델에 관한 질문이고, 위협을 실제로 이름 붙이는 순간 — 대개 가장 중요한 위협에 대해 — 서열이 뒤집힌다.

이메일이 진짜로 못하는 것

앞서 다 인정하고 가자. 나는 이메일이 프로토콜 수준에서 고칠 수 없다고 전에 썼고, 아닌 척하지 않겠다.

이메일의 전송 보안은 1982년 프로토콜에 볼트로 조인 선의의 기념비다. From: 줄은 사실이 아니라 제안이다 — 그걸 위조하는 건 익스플로잇이 아니라 명세된 동작이다. 메일 서버 간 암호화는 기회주의적이다: STARTTLS는 가능하면 연결을 TLS로 올리고, 네트워크 공격자가 그 제안을 그냥 벗겨내면 조용히 평문으로 되돌아간다. 당신 제공자 — 구글, 마이크로소프트, 누구든 — 는 색인하고, 필터링하고, 갈수록 당신이 요청하지 않은 기능에 먹이려고 당신 메일을 읽는다. 작정한 공격자가 전송 중인 메시지를 읽는 걸 막는 시스템으로서, 기본 이메일은 방충망이다.

그러니 당신 위협 모델이 “낯선 자가 전선에서 메시지 하나를 가로챈다”면, 모든 걸 잘 운영되는 단일 백엔드로 TLS 위에서 돌리는 슬랙이 진짜로 이긴다. 그걸 우기지 않겠다.

하지만 그건 좁은 위협이고, 대부분의 사람이 실제로 노출된 위협은 아니다.

위협은 전선이 아니라 보관 주권이다

흥미로운 질문은 누가 전송 중 메시지를 낚아채나가 아니다. 누가 당신 메시지를 저장 상태로 쥐고, 누가 읽을 수 있고, 누가 넘길 수 있고, 당신이 거기서 벗어날 수 있나이다. 이걸 보관 주권(custody)이라 부르자. 보관 주권에서는 두 시스템이 근처에도 안 온다.

슬랙은 집주인이 딱 하나인 사일로다. 모든 메시지가 슬랙 소유 인프라에 산다. 슬랙은 세일즈포스 소유다. 기본적으로 슬랙은 당신 콘텐츠를 자신이 읽을 수 있는 형태로 쥔다 — 검색하고, 링크 미리보기를 렌더링하고, AI 기능을 돌리려면 그래야 한다. 워크스페이스의 보존 정책은 당신이 아니라 관리자가 정한다. 그들이 전부 영원히 보관하면 전부 영원히 보관되고, 그들이 지우면 그것도 당신이 못 막는다. 소환할 회사도 하나, 침해당할 회사도 하나, 호기심 많은 직원과 당신 DM 사이에 선 내부 접근 통제도 한 회사의 것이다. 슬랙은 고객이 자기 암호화 키를 가져올 수 있게 Enterprise Key Management를 제공한다 — 하지만 그건 키를 당신 조직의 손에 쥐여주는 엔터프라이즈 부가 기능이지 당신 손이 아니고, 슬랙은 여전히 제품을 굴리려고 당신 메시지를 평문으로 처리한다. EKM은 누가 당신을 잠글 수 있는지를 바꾼다. 당신 DM을 당신 조직이 못 읽게 만들지는 않는다. 슬랙의 무엇도 그렇게 못 한다.

이제 이메일을 같은 질문 세트에 대보고, 답이 얼마나 다른지 보라 — 이메일이 잘 설계돼서가 아니라 탈중앙이라서.

집주인이 하나가 아니다. 이메일은 연합(federated)이다: RFC 5321은 어떤 서버든 다른 어떤 서버에 메시지를 건넬 수 있는 시스템을 기술한다. 주소 you@yourdomain.com은 오늘은 구글이, 내일은 랙에 꽂힌 당신 머신이 같은 주소로 서빙할 수 있다. 주소가 플랫폼이 아니라 당신이 통제하는 도메인에 속하기 때문이다. 제공자를 못 믿겠으면 떠나면 되고, 정체성을 들고 갈 수 있다. 슬랙을 어느 회사가 호스팅하는지 바꿔보라.

자가 호스팅할 수 있다. 자기 메일 서버를 돌리는 건 진짜 고통이다 — 아닌 척 안 하겠다 — 하지만 가능하고, 수백만 도메인이 그렇게 한다. 그러면 메시지는 당신이 소유한 하드웨어에, 당신 접근 통제 아래 앉고, 당신을 통해서만 소환 가능하다. 슬랙에는 이에 상응하는 게 없다. 자기 슬랙을 돌릴 수 없다. 당신 대화의 보관 주권은 설정이 아니라 비즈니스 모델 전체다.

그리고 이메일에는 슬랙에 없는 진짜 천장이 있다: 당신 제공자조차 못 읽는, 공개 표준으로 된 진짜 종단간 암호화가 이메일엔 존재한다. S/MIME(RFC 8551)과 OpenPGP(RFC 9580, 옛 PGP 표준의 2024년 개정판)는 발신자가 수신자의 공개키로 메시지를 암호화해 오직 수신자의 개인키만 열 수 있게 한다. 당신 메일 제공자는 해독 못 하는 암호문을 저장하고 전달한다. 이걸 위해 아무도 기능을 추가할 필요가 없다 — 30년째 이메일 생태계의 일부였다. 이메일 기밀성의 천장은 당신이 올릴 수 있는 것이고, 누구 허락도 필요 없다.

제목이 도발적이고 그래도 참인 이유

내 주장의 정직한 버전은 “이메일은 요새다”가 아니다. 이것이다: 이메일의 보안 천장은 높고 당신 것인 반면, 슬랙의 천장은 벤더가 당신 대신 정하고, 슬랙의 바닥 — 당신 자신의 조직이나 단 한 건의 법적 요구가 당신 사적 메시지를 읽는다는 특정 위협에 대해 — 은 사실상 지면이다.

단서(caveat)는 진짜고 담백하게 말하겠다. S/MIME나 PGP를 켜는 사람은 거의 없다. 키 관리가 비참하고 양쪽 다 수고해야만 되기 때문이다. 본문을 암호화해도 헤더는 — 누구에게, 언제, 무슨 제목으로 보냈는지 — 평문으로 이동한다. 표준 기구들이 아직 그 틈을 메우려 애쓰고 있다(RFC 9788이 이메일 헤더를 보호하려는 최신 시도다). 종단간 이메일은 옵트인이고, 서투르고, 드물다. 대형 제공자의 중간값 이메일 계정은 당신을 불편하게 해야 할 정도로 스캔되고 프로파일링된다.

하지만 그 단서들이 무엇인지 보라: 채택기본 설정에 관한 것이다. 존재하지만 대개 안 쓰이는 능력을 서술한다. 슬랙의 문제는 바꿀 수 있는 기본값이나 켤 수 있는 기능이 아니다. 구조적이다. 슬랙의 어떤 구성에서도 당신 다이렉트 메시지가 그걸 호스팅하는 회사와 그 값을 내는 조직에게 안 읽히게 되는 경우는 없다. 호스팅되고, 검색 가능하고, 관리자가 내보낼 수 있는 사일로가 당신이 사는 제품이기 때문이다. 팔리지도 않은 주권에 옵트인할 수는 없다.

”안전하다”를 어떻게 생각해야 하는가에 관한 부분

나는 도메인과 서버의 보안 태세를 뜯어보는 도구를 만드는데, 그 일이 가장 빨리 가르쳐 주는 건 안전이 기술의 속성이 아니라는 것이다. 그건 시스템과 특정 적수 사이의 관계다. 발신자를 위조하는 스패머 상대로 이메일은 가망 없고 어떤 현대 메신저든 이긴다. 당신 자신의 고용주, 법적 디스커버리 명령, 당신 아카이브를 물려받는 인수 회사, 내보내기 권한을 가진 내부자 상대로는, 당신이 걸어 나갈 수 있고 종단간 암호화할 수 있는 연합 시스템이 당신이 떠날 수도 잠글 수도 없는 우아한 사일로를 이긴다.

우리는 더 새롭고 반질반질한 시스템에 손을 뻗으며 보안이 설계에 딸려 왔다고 가정한다. 대개 안 딸려 왔다. 대개 설계된 건 정반대다 — 수집, 보존, 합법적 접근의 중앙 지점을, 메시지가 실제로 어디 사는지 누가 읽을 수 있는지 아무도 안 묻게 할 만큼 매끄러운 인터페이스로 감싼 것. 낡고, 못생기고, 연합된 프로토콜은 당신에게 매끄러운 인터페이스를 약속한 적이 없다. 대신 우연히 준 건 아무도 지켜주기를 신뢰받을 필요가 없는, 당신 자신의 대화 사본이었다.

그건 아무것도 아닌 게 아니다. 당신에게 실제로 닿을 가능성이 가장 큰 위협에 대해서는, 그게 전부일 수도 있다.

토론 참여

← 블로그로 돌아가기