Signal, 자동 키 검증 도입

5 days ago 15

기존 안전 번호를 보완해, 상대방의 공개 암호화 키가 예기치 않게 바뀌지 않았는지 대면이나 별도 통신 채널 없이 확인할 수 있음 전화번호·사용자명과 공개 키의 변경을 키 투명성 로그에 기록하고, 사용자·상대방·제3자 감사를 결합해 모두가 동일한 기록을 보도록 함 로그 트리와 접두사 트리를 활용하면 10억 개 기록에서도 최대 30개 항목만 조사해 원하는 기록을 찾을 수 있으며, Cloudflare와 Trail of Bits가 독립 감사자로 참여함 앱은 자신의 식별자를 주기적으로 자동 검사하지만 상대방 검증은 View Safety Number에서 시작해야 하며, 상대방의 현재 전화번호를 모르면 사용할 수 없음 계정과 공개 키의 연결이 일관적인지는 확인하지만 실제 신원이나 완전한 계정 탈취까지 검증하지 않으므로, 필요하면 안전 번호 변경 확인과 수동 검증을 병행해야 함 자동 키 검증의 역할 종단간 암호화를 유지하면서 통신 양 끝 사이에 예상하지 못한 주체가 개입하지 않았는지 확인하는 절차를 간소화함 사용자 본인, Signal 연결 상대, 제3자 감사자의 검증을 결합해 안전 번호를 직접 비교할 때와 같은 보증을 제공함 안전 번호와 달리 대면 만남이나 별도의 통신 채널이 필요하지 않음 전화번호 또는 사용자명과 공개 암호화 키의 연결이 Signal 생태계 전체에서 일관되고 투명한지 검사함 Signal이 침해돼 상대방 전화번호에 다른 키가 연결되는 등, 키 소유자 모르게 키가 교체되는 공격을 탐지 대상으로 삼음 상대방 프로필의 View Safety Number에서 Verify automatically를 누르면 검증을 시작할 수 있음 성공하면 녹색 체크 표시와 Encryption verified가 나타남 이후 상대방 앱과 제3자 감사자가 지속해서 수행하는 검사와 결합됨 공개 키와 중앙 디렉터리 비대칭 암호화는 수학적으로 연결된 공개 키와 개인 키를 사용함 공개 키는 누구에게나 알려줄 수 있는 우편함 주소에 해당함 개인 키는 메시지를 열어 보는 우편함 열쇠에 해당하며 기기에만 남음 가입 과정에서 Signal 앱이 키 쌍을 생성하고, 공개 키는 중앙 디렉터리 역할을 하는 Signal로 전송함 실제 Signal protocol은 단일 키 쌍이 아니라 여러 종류의 키 쌍과 파생 키를 함께 사용함 메시지를 보낼 때 Signal에서 상대방의 공개 키를 받아 암호화하므로, 사용자는 중앙 디렉터리가 올바른 키를 돌려준다고 신뢰해야 함 중간...

Read Entire Article