← Sesame/
Sesame · Bölüm 02 cryptography / sesame

2. Ön Bilgiler

2.1. Genel Bakış

X3DH gibi asynchronous key agreement protocols, bir tarafın message encryption session oluşturmasına ve bu session’ı kullanarak recipient’a initial message encrypt etmesine olanak verir; recipient offline olsa bile [1]. Recipient daha sonra message’ı retrieve edebilir ve message’ı decrypt etmek için kullanılan matching session’ı hesaplayabilir.

Double Ratchet gibi ratcheting algorithms, forward secrecy için bu iki tarafın session keys’i iletişim kurdukça güncellemesine izin verir [2].

Bu algoritmaları pratik bir bağlamda birleştirmek bazı yeni konular ortaya çıkarır:

Yukarıdakilerin herhangi bir çözümü, message’ların kaybolabileceğini veya sıra dışı gelebileceğini, clock synchronization’ın güvenilir olmadığını ve attacker’ların device’ları compromise edebileceğini ve/veya iletişime müdahale edebileceğini dikkate almak zorundadır.

Sesame algorithm, bu gereksinimleri desteklemek için session’ların oluşturulmasını, silinmesini ve kullanımını yönetir. Merkezî bir fikir olarak, her device iletişim kurduğu her diğer device için bir “active” session takip eder ve o device’a message gönderirken active session’ı kullanır. Bir message “inactive” bir session üzerinde alındığında, o session yeni active session olur. Bu süreçle her device, iletişim kurduğu her remote device için tek bir session kullanma konusunda birleşir.

2.2. Varsayımlar

Sesame aşağıdaki varsayımlara dayanır:

Server

Users

Devices

Mailboxes

Sessions

Göndericiler için session creation

Recipient’lar için session creation