Internet Engineering Task Force (IETF) R. Barnes
Request for Comments: 9420 Cisco
Category: Standards Track B. Beurdouche
ISSN: 2070-1721 Inria & Mozilla
R. Robert
Phoenix R&D
J. Millican
Meta Platforms
E. Omara
K. Cohn-Gordon
University of Oxford
Temmuz 2023
Mesajlaşma Katmanı Güvenliği (MLS) Protokolü
Özet
Mesajlaşma uygulamaları, mesajlara yalnızca iletişim kuran uç noktaların erişebilmesini ve mesajların iletimine dahil olan sunucuların bunlara erişememesini sağlamak için giderek daha fazla uçtan uca güvenlik mekanizması kullanmaktadır. Bu tür korumaları sağlayacak anahtarların kurulması, ikiden fazla istemcinin bir anahtar üzerinde uzlaşması gerektiği ancak aynı anda çevrimiçi olmayabileceği grup sohbeti ortamlarında zordur. Bu belgede, büyüklüğü ikiden binlere uzanan gruplar için ileriye dönük gizlilik (FS) ve ele geçirilme sonrası güvenlik (PCS) sağlayan, verimli ve eşzamansız grup anahtarı kurulumuna yönelik bir anahtar kurulum protokolü tanımlıyoruz.
Bu Belgenin Durumu
Bu belge, Internet Standards Track kapsamındaki bir belgedir.
Bu belge, Internet Engineering Task Force'un (IETF) bir ürünüdür. IETF topluluğunun uzlaşısını yansıtır. Kamuya açık incelemeden geçmiş ve Internet Engineering Steering Group (IESG) tarafından yayımlanmak üzere onaylanmıştır. İnternet standartları hakkında daha fazla bilgi RFC 7841'in 2. bölümünde bulunabilir.
Bu belgenin güncel durumu, varsa errata kayıtları ve buna nasıl geri bildirim verileceğine ilişkin bilgilere şu adresten ulaşılabilir: https://www.rfc-editor.org/info/rfc9420.
Telif Hakkı Bildirimi
Telif hakkı (c) 2023 IETF Trust ve belge yazarları olarak belirtilen kişilere aittir. Tüm hakları saklıdır.
Bu belge, BCP 78'e ve bu belgenin yayımlandığı tarihte yürürlükte olan IETF Trust'ın IETF Belgelerine İlişkin Hukuki Hükümlerine (https://trustee.ietf.org/license-info) tabidir. Bu belgeler, bu belgeye ilişkin haklarınızı ve kısıtlamalarınızı açıkladığı için lütfen dikkatle inceleyin. Bu belgeden çıkarılan Kod Bileşenleri, Trust Legal Provisions'ın 4.e bölümünde açıklandığı şekilde Revised BSD License metnini içermelidir ve yine Revised BSD License'da açıklandığı üzere herhangi bir garanti olmaksızın sağlanır.
İçindekiler
1. Giriş
2. Terminoloji
2.1. Gösterim Dili
2.1.1. İsteğe Bağlı Değer
2.1.2. Değişken Boyutlu Vektör Uzunluk Başlıkları
3. Protokole Genel Bakış
3.1. Kriptografik Durum ve Evrimi
3.2. Örnek Protokol İşleyişi
3.3. Harici Katılımlar
3.4. Epoch'lar Arasındaki İlişkiler
4. Ratchet Ağacı Kavramları
4.1. Ratchet Ağacı Terminolojisi
4.1.1. Ratchet Ağacı Düğümleri
4.1.2. Ratchet Ağacı İçindeki Yollar
4.2. Ratchet Ağacına Dair Görünümler
5. Kriptografik Nesneler
5.1. Şifre Takımları
5.1.1. Açık Anahtarlar
5.1.2. İmzalama
5.1.3. Açık Anahtarlı Şifreleme
5.2. Hash Tabanlı Tanımlayıcılar
5.3. Kimlik Bilgileri
5.3.1. Kimlik Bilgisi Doğrulaması
5.3.2. Kimlik Bilgilerinin Süresinin Dolması ve İptali
5.3.3. İstemcilerin Benzersiz Biçimde Tanımlanması
6. Mesaj Çerçeveleme
6.1. İçerik Kimlik Doğrulaması
6.2. Açık Bir Mesajın Kodlanması ve Çözülmesi
6.3. Özel Bir Mesajın Kodlanması ve Çözülmesi
6.3.1. İçerik Şifreleme
6.3.2. Gönderici Verisinin Şifrelenmesi
7. Ratchet Ağacı İşlemleri
7.1. Ebeveyn Düğüm İçeriği
7.2. Yaprak Düğüm İçeriği
7.3. Yaprak Düğüm Doğrulaması
7.4. Ratchet Ağacının Evrimi
7.5. Ağaca İlişkin Görünümlerin Eşzamanlanması
7.6. Güncelleme Yolları
7.7. Yaprak Ekleme ve Kaldırma
7.8. Ağaç Hash'leri
7.9. Parent Hash'ler
7.9.1. Parent Hash'lerin Kullanımı
7.9.2. Parent Hash'lerin Doğrulanması
8. Anahtar Çizelgesi
8.1. Grup Bağlamı
8.2. Transcript Hash'leri
8.3. Harici Başlatma
8.4. Önceden Paylaşılmış Anahtarlar
8.5. Exporter'lar
8.6. Yeniden Başlatma PSK'si
8.7. Epoch Doğrulayıcıları
9. Gizli Ağaç
9.1. Şifreleme Anahtarları
9.2. Silme Çizelgesi
10. Anahtar Paketleri
10.1. KeyPackage Doğrulaması
11. Grup Oluşturma
11.1. Gerekli Yetenekler
11.2. Yeniden Başlatma
11.3. Alt Grup Dallanması
12. Grubun Evrimi
12.1. Teklifler
12.1.1. Add
12.1.2. Update
12.1.3. Remove
12.1.4. PreSharedKey
12.1.5. ReInit
12.1.6. ExternalInit
12.1.7. GroupContextExtensions
12.1.8. Harici Teklifler
12.2. Teklif Listesi Doğrulaması
12.3. Teklif Listesinin Uygulanması
12.4. Commit
12.4.1. Commit Oluşturma
12.4.2. Commit İşleme
12.4.3. Gruba Üye Ekleme
13. Genişletilebilirlik
13.1. Ek Şifre Takımları
13.2. Teklifler
13.3. Kimlik Bilgisi Genişletilebilirliği
13.4. Uzantılar
13.5. GREASE
14. Durum Değişikliklerinin Sıralanması
15. Uygulama Mesajları
15.1. Dolgu
15.2. Kısıtlamalar
15.3. Geciken ve Sırası Değişen Uygulama Mesajları
16. Güvenlik Hususları
16.1. Taşıma Güvenliği
16.2. Grup Sırlarının Gizliliği
16.3. Gönderici Verisinin Gizliliği
16.4. Grup Meta Verisinin Gizliliği
16.4.1. GroupID, Epoch ve Mesaj Sıklığı
16.4.2. Grup Uzantıları
16.4.3. Grup Üyeliği
16.5. Kimlik Doğrulama
16.6. İleriye Dönük Gizlilik ve Ele Geçirilme Sonrası Güvenlik
16.7. Ratchet Ağacı Anahtar Çiftlerinin Benzersizliği
16.8. KeyPackage Yeniden Kullanımı
16.9. Teslimat Hizmetinin Ele Geçirilmesi
16.10. Kimlik Doğrulama Hizmetinin Ele Geçirilmesi
16.11. Ek İlke Uygulaması
16.12. Kötü Niyetli İç Katılımcılar Nedeniyle Grubun Parçalanması
17. IANA Hususları
17.1. MLS Şifre Takımları
17.2. MLS Wire Formatları
17.3. MLS Uzantı Türleri
17.4. MLS Teklif Türleri
17.5. MLS Kimlik Bilgisi Türleri
17.6. MLS İmza Etiketleri
17.7. MLS Açık Anahtarlı Şifreleme Etiketleri
17.8. MLS Exporter Etiketleri
17.9. MLS Belirlenmiş Uzman Havuzu
17.10. "message/mls" Medya Türü
18. Kaynaklar
18.1. Normatif Kaynaklar
18.2. Bilgilendirici Kaynaklar
Ek A. Örnek Ağaçların Protokol Kökenleri
Ek B. Parent Hash'lerin Evrimi
Ek C. Dizi Tabanlı Ağaçlar
Ek D. Bağlantı Tabanlı Ağaçlar
Katkıda Bulunanlar
Yazarların Adresleri