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

4. İsteğe Bağlı Özellikler

4.1. Yeniden Deneme İstekleri ve Teslim Alındıları

Gönderen ya da alıcı cihazın durumu geri alındıysa veya alıcı cihazın durumu silindiyse, alıcı cihazın şifresini çözemediği geçerli bir mesaj alması mümkündür.

Bunu mesaj kaybı olmadan ele almak için gönderen cihaz; her şifreli mesaj için benzersiz bir MessageID ile dizinlenen bir MessageRecords kümesi saklayabilir. Tek bir mesaj birden çok alıcı cihaza şifrelenmişse, gönderen her alıcı cihaz için ayrı bir MessageRecord saklar; her biri benzersiz bir MessageID'ye sahiptir. Her MessageRecord şu değerleri saklar:

Alıcı cihaz, şifresi çözülemeyen bir mesaj aldığında; özgün gönderen cihazın posta kutusuna, şifresi çözülemeyen mesajın MessageID'sini içeren şifrelenmemiş bir yeniden deneme isteği (retry request) mesajı gönderir.

Özgün gönderen cihaz, yeniden deneme isteğini gönderen cihazın ilgili UserID ve DeviceID'siyle birlikte bir yeniden deneme isteği aldığında, aşağıdaki yeniden gönderme sürecini yürütür:

MessageRecords; belirli bir süre geçtikten sonra ya da atıfta bulundukları düz metin kullanıcı tarafından gönderen cihazdan silindiğinde silinebilir. Cihazlar ayrıca başarılı mesaj çözümü üzerine teslim alındıları (delivery receipts) gönderebilir. Teslim alındıları bir MessageID'ye atıfta bulunur ve göndericiye ilgili MessageRecord'un silinebileceğini bildirir. Teslim alındıları şifreli ya da şifrelenmemiş olabilir (her alınan mesajın peşinden geldikleri için, onları şifrelemek pek bir şey kazandırmaz).

Aşırı yeniden göndermeden kaçınmak için cihazlar, bir mesajı yeniden göndermeye razı oldukları sayıya bir sınır koymalıdır. Başka herhangi bir hata oluşursa, yeniden gönderen cihaz durum değişikliklerini iptal eder ve süreci sona erdirir.

4.2. Oturum Sonlandırma

Güvenlik amacıyla cihazların eski oturumları zaman zaman yeni oturumlarla değiştirmesi arzu edilebilir. Bir yaklaşım, her oturuma bir zaman damgası vermektir. Zaman damgası; bir başlatma oturumu kurulduğunda geçerli zamana ayarlanır. Başlatma mesajları alındığında sunucu, alıcı cihaza mesajın posta kutusuna ulaştığı an ile geçerli zaman arasındaki farkı bildirir. Alıcı cihaz, başlatılan herhangi bir oturumun zaman damgasını geçerli zamandan bu farkı çıkararak ayarlar.

MAXSEND ve MAXRECV zaman sabitleri tanımlanır; burada MAXRECV, MAXSEND + 2(MAXLATENCY) değerinden büyük olmalıdır. Zaman damgasının üzerinden MAXSEND kadar süre geçtikten sonra bir oturum şifreleme için artık kullanılmamalı ve etkin durumdaysa etkin olmayan oturumlar listesinin başına alınmalıdır. Böyle bir oturumu etkinleştirme girişimleri etkisizdir. Zaman damgasının üzerinden MAXRECV kadar süre geçtikten sonra, önce tüm posta kutusu mesajları alınıp işlendikten sonra oturum silinebilir.