Letter Sealing 확대 적용으로 더 안전해진 LINE

지난 ‘더 안전한 대화를 위한 Letter Sealing’이라는 기사를 통해 LINE에서 1:1 대화에 종단간 암호화(End-to-End Encryption, E2EE)가 적용되었음을 전해드렸습니다. 그 이후에도 LINE에서는 Letter Sealing을 더 많은 기능에 기본 적용하기 위해 많은 노력을 해왔습니다. 이 글을 통해 지금까지의 노력을 소개드리려고 합니다.

적용된 기능은?

1:1 대화에서 Letter Sealing이 기본으로 설정됩니다

안전한 메신저 대화를 위해 1:1 대화에서 Letter Sealing이 기본으로 설정되었습니다. 이전에는 원하는 사용자가 Letter Sealing 옵션을 켜는 opt-in 방식이었지만, 이제는 사용자가 opt-out 방식으로 끄지 않으면 Letter Sealing이 기본으로 켜진 상태가 됩니다.

처음부터 모든 사용자에게 Letter Sealing 기능을 기본으로 켜지 않았던 가장 큰 이유는 iOS 기기의 push 알림 처리 방식 때문이었습니다. LINE은 전달받은 메시지 내용의 일부를 push 알림으로 보여주는 것을 기본 설정으로 하고 있습니다. Android와 다르게 iOS는 push 알림을 표시하는 과정에서 앱이 개입할 수 있는 여지가 적습니다. 따라서 서버에서 메시지 내용의 일부를 push 알림으로 전달해야 하지만, Letter Sealing 특성상 LINE의 서버는 사용자들끼리 주고 받는 대화를 읽을 수 없기 때문에 그 알림 내용을 push에 포함할 수가 없었습니다.

하지만 다행히, iOS 8부터 지원하는 VoIP Push Notification이라는 push 알림 방식을 사용하면, push 알림을 받았을 때 앱을 구동시켜 암호화된 메시지를 수신하고 그 메시지를 복호화한 뒤 알림 내용을 사용자의 휴대폰에 표시할 수 있습니다. LINE의 개발팀은 iOS 9.3.1부터 이 기능이 안정적으로 동작하는 것을 확인하고, Letter Sealing 사용자에게 이전과 비슷한 사용성을 보장한다고 판단되어 iOS 9.3.1으로 업데이트한 사용자에 대하여 Letter Sealing을 기본으로 적용할 수 있었습니다.

이제 그룹 대화방에서도 더 안전하게 메시지를 보낼 수 있습니다

이제 1:1 대화방뿐만 아니라 그룹 대화방에도 좀 더 안전하게 대화를 나눌 수 있습니다.

그룹 대화방에 Letter Sealing을 적용한다면, 그 방의 대화 내용을 같은 방 안의 사람들만 복호화할 수 있어야 합니다. 그리고 만약 어떤 사람이 그 그룹에서 탈퇴하면 그 사람은 더 이상 탈퇴한 그룹에 오가는 암호화된 대화를 풀 수 없어야 합니다. 추가로 고려할 점은 모바일 메신저의 특성상 그룹 대화방의 모든 참가자가 항상 대화방의 메시지를 실시간으로 받을 수 있는 온라인 상태가 아니라는 점입니다. 이러한 한계 때문에 그룹 대화방에 Letter Sealing을 지원하는 것은 1:1 대화방에 적용할 때보다 더 복잡하게 됩니다.

이러한 문제점을 모두 고려하여 약 1년간 개발 및 테스트를 걸쳐서 최신 버전(Android, iOS 6.5.0 이상) 그룹 대화방에서 Letter Sealing을 적용하고 있습니다. 현재는 50명 이하의 사용자들이 있는 그룹 대화방에만 적용되어 있지만, 향후에 더 많은 수의 멤버들이 있는 대화방까지 확대 적용할 예정입니다.

LINE 개발팀은 이런 문제를 어떻게 해결했는지에 대한 얘기는 이어서 올릴 블로그에서 자세하게 설명드리겠습니다.

무료통화와 영상통화에도 Letter Sealing이 적용되었습니다

LINE에서는 2011년부터 언제 어디서나 무료로 음성 및 영상 통화가 가능한 무료통화 기능을 제공하고 있습니다. LINE 내부적으로는 일반 대화 메시지 외에 추가로 Letter Sealing을 적용할 대상을 고민한 결과, 더 안전한 통화를 위해 무료통화에서도 종단간 암호화를 개발하여 적용하였습니다. 대화의 송수신과 마찬가지로 1:1 통화 시에도 서버는 알 수 없는 암호화 키를 사용자들과 교환하고, 이 암호화 키를 이용해 사용자의 통화 내용이 암호화되어 전송되므로 LINE 서버에서도 사용자의 통화 내용을 알 수 없습니다.

무료통화(왼쪽)와 영상통화(오른쪽)에 Letter Sealing이 적용된 화면

새로 추가된 무료통화의 보안 기능을 사용하기 위해서 별도의 설정 과정이 필요하지 않습니다. LINE 6.5(iOS, Android) 및 LINE 4.8(Windows Desktop) 이후 버전을 사용하는 사용자들은 기존의 Letter Sealing 옵션을 켜두었다면 추가적인 설정 없이 보안이 강화된 무료통화를 사용할 수 있습니다.

대화방의 Letter Sealing 적용여부도 한눈에 알 수 있습니다

LINE에서의 대화는 Letter Sealing을 켜지 않더라도 사용자의 단말기와 서버 사이의 통신은 암호화되고 있으므로 안전합니다. 공격자가 사용자의 네트워크를 감시하고 있다고 하더라도 사용자의 대화 내용을 볼 수 없습니다. 하지만, 개인의 민감한 대화 내용을 송신자와 수신자의 단말에서만 볼 수 있고 서버에는 암호화된 채 안전하게 보관하는 것이 Letter Sealing을 고안한 이유입니다.

Letter Sealing 기능 적용 후 LINE의 프로젝트 멤버들은 Letter Sealing이 적용되고 있는 대화창을 구분할 수 있는 상태 표시(status indicator)를 제공해야 하는지에 대한 많은 논의가 있었습니다. 혹시나 ‘Letter Sealing이 적용되지 않은 대화창은 안전하지 않다’라는 오해를 심어줄 수도 있다고 생각했습니다. 그래서, Letter Sealing이 거의 모든 대화방에 가능하기 전까지는 어떤 사용자와는 Letter Sealing 대화가 가능하고 어떤 사용자와는 불가능한지에 대해 사용자에게 혼란을 드리고 싶지 않았습니다.

이제는, Letter Sealing이 기본 적용이 되었기 때문에 이러한 걱정보다는 사용자에게 Letter Sealing 적용되는지에 대한 상태 정보를 표시해주는 것이 바람직하다고 결정하였습니다. 그래서 Letter Sealing이 적용된 1:1 대화방, 그룹 대화방, 1:1 무료통화에서 자물쇠 모양이 표시되어 Letter Sealing임을 알려주도록 하였습니다.

앞서 설명드린 향상된 보안기능들은 iOS, Android, Desktop(Windows, Mac)1 버전의 지원을 시작으로 다른 플랫폼에도 점차 지원을 확대해 나가고 있습니다. 또한, 9월 초까지 최신 버전 사용자에게 순차적으로 적용을 마칠 계획입니다. 앞으로도 LINE에서는 사용자의 안전한 메신저 사용을 위해 최선을 다하겠습니다.

1: LINE Desktop (Windows, Mac) 4.8 버전에서는 1:1 대화와, 그룹 대화에 대하여 상태 표시(indicator)를 표시합니다. 무료통화 창에서 상태 표시는 다음 버전에서 지원될 예정입니다.

저자 소개

이 블로그 글은 LINE에서 메신저 서버 개발자로 일하고 있는 신기빈 님이 작성했습니다.