Parmak izi yerine beş resim: kısa doğrulama dizileri nasıl çalışır?
Havenfold ekibi ·
Kısa doğrulama dizisi (short authentication string, SAS), iki cihazın kendi anahtar alışverişinden türettiği ve kelime, sayı, emoji ya da resim olarak gösterdiği küçük bir değerdir: cihazları tutan kişiler aynı şeyi görüyorsa bağlantının ortasında kimse yoktur. Neredeyse kimsenin dikkatle yapmadığı uzun parmak izi karşılaştırmasının yerine, insanların gerçekten yapacağı bir kontrol koyar.
Bu yazı kısa doğrulama dizisinin neye karşı koruduğunu, neden resim kullanıldığını ve Havenfold'un katılım töreninin resimleri nasıl kullandığını anlatıyor. Kontrolün neye karşı korumadığını da açıkça söylüyor. Havenfold pre-alpha aşamasında ve bağımsız bir güvenlik denetiminden geçmedi; gerçek verinizle kullanmayın.
Sorun: karşı uçta kim var?
İki cihaz ağ üzerinden şifreli bir bağlantı kurarken, her biri gerçekten öbür cihazla konuştuğunu, araya giren biriyle konuşmadığını bilmelidir. Klasik cevap, anahtarların parmak izlerini karşılaştırmaktır: uzun, onaltılık karakter dizileri. Pratikte insanlar bunlara göz gezdirir ya da hiç bakmaz.
Kısa doğrulama dizisi bunu insana uygun kısa bir kontrole çevirir. İki cihaz anahtar alışverişinden aynı kısa değeri türetir. Ortada bir saldırgan olsaydı, iki tarafın alışverişi farklı olur ve çok büyük olasılıkla farklı bir değer çıkardı. İnsanlar değerleri karşılaştırır; aynıysa onaylar, değilse durur.
Fikir yeni değil. Şifreli sesli görüşmeler için geliştirilen ve IETF'in RFC 6189 olarak yayımladığı ZRTP protokolünde arayanlar kısa bir doğrulama dizisini görüşme sırasında birbirine okur. Matrix istemcileri gibi mesajlaşma uygulamaları da bir dizi emojiyi karşılaştırarak doğrulama sunar.
Neden resim?
Resimler yan yana hızla karşılaştırılır, bir dili okumaya bağlı değildir ve yüksek sesle söylemesi kolaydır ("biber, bisiklet, peynir…"). Karşılaştıranın bir büyükanne ya da bir çocuk olabileceği bir ailede bu, bir mühendis için olduğundan daha önemlidir.
Havenfold'un katılım töreni resimleri nasıl kullanıyor?
Havenfold'da bir aileye katılma töreni RFC-0028 §5'te tanımlı. Ana hatlarıyla:
- QR kodla başlar. Ailenin telefonu, tek kullanımlık bir davet sırrı ve ağda buluşmak için geçici bir anahtar içeren bir QR kod gösterir. Telefon yalnız bu sırdan türetilen anahtarla kurulan bağlantıyı kabul eder; QR kodu görmeyen biri bağlanamaz. QR kod ekranda geri sayımla yenilenir.
- İki telefon bir tören anahtarı türetir. Anahtar iki geçici anahtardan, davet sırrından ve el sıkışmayı ile iki cihazın sertifikalarını kapsayan bir transkriptten çıkar.
- Tören anahtarından beş resim. Resimler bu tören anahtarından, sabit bir resim kümesinden türetilir. Anahtar el sıkışmaya ve iki sertifikaya bağlı olduğu için, QR kodu görüp araya girmeye çalışan biri resimleri iki tarafta eşleştiremez.
- "Farklı" demek töreni bitirir. Kişilerden biri resimlerin farklı olduğunu söylerse oturum kapanır.
- Onaydan önce hiçbir şey paylaşılmaz. Ailenin imzalı üyelik kaydı yeni gelene ancak iki taraf da resimleri onayladıktan sonra gönderilir; yeni gelen onu daha önce görmez.
- İnsanlar imzalar. Resimler eşleştikten sonra davet eden ebeveynin imzalı eklemesi ve yeni gelenin imzası ailenin defterine girer.
Projenin tanıtımı bunu yerel bir test ağında gerçek çıktıyla gösteriyor: Maya, Alex'in QR kodunu açıyor ve iki telefon aynı beş resmi gösteriyor (çıktıda "Pepper, Bicycle, Cheese, Bird, Crown"). Resimler her çalıştırmada değişiyor.
Uzaktan katılım
Bazen bir aile üyesi aynı odada olamaz. RFC-0028 uzaktan töreni ek kilitlerle bir istisna olarak kabul ediyor: davet bağlantısı güvenilmez bir yoldan gönderilmiş sayılıyor ve güvence, beş resmin sesli ya da görüntülü bir aramada karşılaştırılması. Uzaktan kod yenilenmiyor ve kısa sürede doluyor, yeni üyenin etkinleşmesi belirli bir süre bekliyor ve bu sürede ailenin ebeveynlerine haber gidiyor; herhangi biri iptal edebiliyor.
Resimler neye karşı korumaz?
- Odadaki güvenilen bir kişiye: Kontrol, iki telefonun doğrudan birbiriyle konuştuğunu kanıtlar. Öbür telefonu tutan kişinin aileye girmesi gerekip gerekmediğine karar vermez. Bu bir insan kararıdır; ebeveyn imzasının istenmesinin sebebi de budur.
- Bakmadan onaylamaya: Biri karşılaştırmadan "aynı"ya basarsa kontrol işe yaramaz. Tasarım karşılaştırmayı kolaylaştırabilir, insanları buna zorlayamaz.
- Ele geçirilmiş bir telefona: Telefonlardan biri zaten bir saldırganın denetimindeyse gösterdiğine güvenilemez.
- Henüz denetim yok: Tören tanımlı ve test edildi, ama projenin dışından kimse onu denetlemedi. İncelemeye açık.
Özet
- Kısa doğrulama dizisi, insanların iki cihazın aynı anahtar alışverişini paylaştığını ve ortada kimsenin olmadığını bir bakışta doğrulamasını sağlar.
- Bilinen bir fikir: ZRTP (RFC 6189) görüşmelerde kullanıyor, mesajlaşma uygulamaları emojili biçimini kullanıyor.
- Havenfold'un töreni, el sıkışmaya ve iki sertifikaya bağlı bir anahtardan türetilen beş resim gösteriyor; "farklı" demek oturumu kapatıyor ve iki taraf onaylamadan hiçbir şey paylaşılmıyor.
- Uzaktan katılım ek kilitlerle bir istisna: resimler aramada karşılaştırılıyor, bir bekleme süresi var ve ebeveynler iptal edebiliyor.
- Resimler güvenilen bir kişiye, dikkatsiz onaya ya da ele geçirilmiş bir telefona karşı korumaz; Havenfold pre-alpha aşamasında ve denetlenmedi.
Havenfold pre-alpha aşamasında: gerçek verilerle kullanmayın. Henüz gerçek bir evde çalışmadı ve bağımsız bir güvenlik denetiminden geçmedi.
Kaynaklar