모든 WillSignal 메시지는 일반 또는 잠김 모드로 작성됩니다. 두 모드는 제공하는 보호가 서로 다릅니다.
보안 문구는 쉽게 과장됩니다. 이 페이지에서는 반대로, 각 모드가 무엇을 보호하는지, 어떤 키가 그 보호를 가능하게 하는지, 그리고 어디까지 보장할 수 있는지를 구체적으로 설명합니다.
일반은 기본 모드입니다.
일반 메시지의 본문은 WillSignal로 이동하는 동안 암호화되며, 서버에 저장된 뒤에도 암호화된 상태로 보관됩니다. 제목은 그렇지 않습니다. 일반 메시지의 제목은 서비스가 목록에 표시할 수 있도록 암호화하지 않은 채로 저장됩니다. 어느 쪽이든 본문을 여는 키는 WillSignal의 키 관리 시스템으로 보호되기 때문에 서비스가 필요할 때 그 키를 복구할 수 있습니다.
따라서 외부 공격자로부터는 내용을 보호하지만 WillSignal 자체로부터 숨기지는 않습니다. WillSignal은 일반 메시지를 읽을 수 있습니다. 대신 사용자나 수신자가 별도의 수신함 암호를 준비하지 않아도 메시지를 전달할 수 있습니다.
일반 모드는 종단간 암호화가 아닙니다. WillSignal도 이를 종단간 암호화라고 설명하지 않습니다.
일반 모드를 선택하면 WillSignal이 내용을 읽을 수 있다는 점을 받아들이는 대신, 사용자와 수신자 모두 별도의 수신함 암호 없이 메시지를 전달하고 읽을 수 있습니다.
잠김 메시지는 제목과 본문 모두 사용자 기기에서 암호화된 뒤 WillSignal로 전달됩니다. 제목까지 봉인된다는 점이 일반 모드와의 분명한 차이입니다. 수신자의 기기에서만 열 수 있습니다.
메시지를 잠글 때는 공개 키만 있으면 되므로, 잠김 메시지를 작성하는 동안에는 수신함 암호를 묻지 않습니다. 여는 쪽에서는 필요합니다. 수신자는 수신자의 수신함 암호가 있어야 하고, 내가 보낸 사본을 다시 열거나 수정하려면 내 수신함 암호가 있어야 합니다.
WillSignal 서버에는 서비스가 열 수 없는 봉인된 데이터만 도착합니다. 메시지가 전달되는 과정에서는 평문도, 암호화되지 않은 콘텐츠 키도, 수신함 암호도 WillSignal에 전달되지 않습니다. 다만 수신자가 메시지를 신고하면 그 이후에 잠김 메시지의 내용이 WillSignal에 전달될 수 있으며, 이 경우는 아래 보장의 한계에서 설명합니다.
암호화에는 널리 쓰이고 검증된 표준 방식을 사용하며, 전체 구현은 libsodium을 기반으로 합니다.
잠김 메시지를 읽으려면 수신자에게 WillSignal 계정과 수신함 암호가 모두 있어야 합니다.
아직 계정과 연결되지 않은 이메일 주소에는 잠김 메시지를 전달할 수 없습니다. 이런 경우 메시지 작성 화면에서 안내합니다. 메시지를 잠김 상태로 유지하면서 해당 수신자를 제외하거나, 그 수신자까지 포함할 수 있도록 일반 모드로 바꿀 수 있습니다.
계정을 만들 때 수신함 암호를 정하고 복구 코드를 받습니다.
수신함 키는 사용자 기기에서 생성됩니다. 개인 키는 같은 기기에서 두 가지 방식으로 보호됩니다. 하나는 수신함 암호로, 다른 하나는 복구 코드로 보호됩니다. WillSignal에는 이렇게 보호된 사본만 전달됩니다.
수신함 암호와 복구 코드 자체는 WillSignal에 전달되지 않습니다.
이 구조 때문에 무엇을 잃었는지에 따라 결과가 달라집니다.
두 가지를 모두 잃으면 새 수신함 키를 만들어 다시 시작하게 됩니다.
기존 키로 봉인된 잠김 메시지는 보낸 사람이 새 키로 다시 봉인하기 전까지 읽을 수 없습니다. 다시 봉인하려면 보낸 사람이 직접 로그인해 조치해야 하므로, 이미 시그널이 꺼진 사람이 보낸 메시지는 다시 봉인되지 않을 가능성이 높고 영영 읽지 못할 수 있습니다. 이전에 내가 보낸 잠김 메시지도 내 기기에서 다시 읽을 수 없게 될 수 있습니다.
다시 봉인하는 작업은 항상 누군가가 직접 선택해야 합니다. 키가 바뀌었다는 이유만으로 기존 잠김 메시지에 자동으로 접근할 수는 없습니다. 오래된 키로 봉인된 데이터는 접근을 허용하지 않는 방향으로 처리됩니다.
WillSignal은 로그인과 암호화된 메시지의 잠금 해제를 의도적으로 분리합니다.
복구 코드는 수신함 암호 쪽에만 사용됩니다. 수신함 키에 다시 접근하기 위한 수단이며 로그인과는 관계가 없습니다.
WillSignal의 모든 보안 경계가 암호화에만 의존하는 것은 아닙니다. 일부 정보는 애초에 필요한 범위 밖으로 내보내지 않는 방식으로 보호합니다.
개발 과정에서 WillSignal의 설계와 구현에 보안상 문제가 없는지 반복해서 내부 검토했습니다.
WillSignal은 아직 독립된 제3자의 보안 감사를 받지 않았습니다.