Shamir sır paylaşımı: kaybolan bir telefonla anlatım
Havenfold ekibi ·
Shamir sır paylaşımı, bir sırrı (örneğin bir kurtarma anahtarını) birkaç paya böler: seçilen sayıda pay (eşik) bir araya gelince sır yeniden kurulur, daha azı ise sır hakkında hiçbir şey söylemez. Kaybolan telefon sorununa iyi uyar: verinizi geri getirecek anahtarı güvendiğiniz kişiler ve cihazlar tutar, ama hiçbiri onu tek başına açamaz.
Bu yazı fikri kaybolan bir telefonla anlatıyor, Havenfold'un tasarımında nasıl kullanıldığını ve dürüst sınırlarını gösteriyor. Önce bir not: Havenfold'un kasa kodu var ve test edildi, ama bağımsız bir güvenlik denetiminden önce yayımlanmayacak. Havenfold pre-alpha aşamasında; gerçek verinizle kullanmayın.
Sorun: anahtar yalnız telefondaydı
Uçtan uca şifreleme doğru yapıldığında anahtarlar bir şirketin sunucusunda değil, sizin cihazlarınızda durur. Amaç zaten budur. Ama bu, tek telefonunuz kaybolursa geçmişinizi açan anahtarların da onunla gidebileceği anlamına gelir. "Şifremi unuttum" düğmesi yoktur, çünkü anahtarı başka kimse tutmaz.
Bilinen çözümlerin her birinin bir zayıflığı var:
- Anahtarı kâğıda yazmak: Kâğıdı bulan anahtara da sahip olur.
- Bir kopyasını güvendiğiniz tek bir kişiye vermek: O kişi ya da ondan çalan biri anahtara sahip olur.
- Bir kopyasını ev sunucusunda tutmak: Sunucuyu çalan anahtara da sahip olur.
İstenen şey aradaki yoldur: anahtar yeniden kurulabilsin, ama yalnız yeterince güvenilen taraf razı olunca.
Fikir tek paragrafta
Adi Shamir 1979'da "How to share a secret" (Bir sır nasıl paylaşılır) adlı makaleyi yayımladı. Fikir basit bir gerçeğe dayanır: Bir doğruyu belirlemek için iki nokta, bir parabolü belirlemek için üç nokta gerekir; genel olarak t − 1 dereceli bir polinom için t nokta gerekir. Sırrı polinomun içine koyun, her pay sahibine polinomun bir noktasını verin: herhangi t pay sahibi polinomu ve onunla birlikte sırrı yeniden kurabilir, t − 1 pay sahibi ise sır hakkında hiçbir şey öğrenemez. Uygulamada hesap sonlu bir cisimde, çoğu zaman GF(256)'da, bayt bayt yapılır.
Kaybolan telefon, adım adım
Bir ailede bir ebeveynin yedek anahtarının, üç pay sahibinden herhangi ikisinin yeniden kurabileceği biçimde bölündüğünü düşünün: öbür ebeveynin telefonu, yetişkin bir çocuğun telefonu ve evin dışında güvenilen birinde duran bir kâğıt pay.
- Ebeveynin telefonu kaybolur. Yeni telefon aileye yüz yüze törenle katılır.
- Yeni telefon pay sahiplerinden pay ister. Her kişi telefonunda bir istek görür ve biyometriyle onaylar.
- İki payla yeni telefon yedek anahtarını yeniden kurar, yedeği açar ve kaybolanları geri getirir.
- Hemen ardından sır döndürülür: yeni bir anahtar üretilir ve yeni paylar dağıtılır; eski paylar işe yaramaz hâle gelir.
Bunu kimse tek başına yapamazdı: tek payı olan bir kişi hiçbir şey öğrenmez.
Havenfold'un tasarımı bunu nasıl kullanıyor?
Havenfold'un kasası RFC-0004'te tanımlı. Bazı seçimler dikkat çekici:
- İki sır: Her üye için yedek dizinini şifreleyen bir yedek anahtarı ve her kasa koleksiyonu için o kasanın anahtarlarını şifreleyen bir kasa kurtarma anahtarı.
- Kişiler ve cihazlar: Payları ebeveyn ve yetişkinlerin telefonları, evin dışında saklanan kâğıt paylar ve ev kutusu ile TPM'li işçiler tutabilir. Çocuk telefonları ve misafirler pay tutmaz.
- Cihazlar tek kişi sayılır: Cihaz payı TPM'ye mühürlüdür, ama kutuda kök yetkisi olan biri onu açabilir. Bu yüzden RFC cihaz paylarını hepsine tek bir kişi ulaşabilirmiş gibi sayar: yedek anahtarında, bir kişinin payı ile bütün cihaz payları birlikte asla eşiğe ulaşamaz. Bir ebeveyn kutuya erişerek başka bir üyenin yedeğini tek başına açamaz.
- Pay sahiplerini sırrın sahibi seçer: Arayüz bir varsayılan önerir. Çocuk için varsayılan, iki ebeveynin birlikte çocuğun yedeğini açabileceği anlamına gelir ve RFC arayüzün bunu açıkça yazdığını söylüyor. Çocuk bunu yalnız kâğıt paylara çevirebilir.
- Evdeki kâğıt sayılmaz: Kâğıt paylar her zaman "evin dışında, güvendiğiniz birinde saklayın" notuyla basılır.
- Şüpheli cihaz değişiminde bekleme: Pay isteyen telefon, eski telefonun imzalamadığı bir cihaz değişimiyle geldiyse pay sahipleri pay vermeden önce bekler ve eski telefona haber gider.
- Denetlenmiş bir kütüphane: Hesap yeni yazılmış kodla değil, bağımsız olarak denetlenmiş mevcut açık kaynak bir kütüphaneyle yapılır; kütüphaneyi değiştirmek RFC gerektirir.
Dürüst sınırlar
- Yayımlanmadı: Kasa bağımsız bir denetimden önce yayımlanmayacak ve Havenfold henüz bağımsız bir denetimden geçmedi.
- Varsayılan tercihler: Varsayılan ayarda iki ebeveyn birlikte çocuğun yedeğini açabilir. Bu gizlenmiş değil, yazılı bir tasarım tercihi.
- Pay sahiplerine ulaşılmalı: Yeterli sayıda pay sahibi hayatta, ulaşılabilir ve razı değilse Shamir işe yaramaz. Pay sahiplerini seçmek teknik değil, ailevi bir karardır.
- Pre-alpha: Havenfold'u gerçek verinizle kullanmayın.
Özet
- Shamir sır paylaşımı bir anahtarı böler: eşik kadar pay sahibi onu yeniden kurabilir, daha azı hiçbir şey öğrenemez.
- Kaybolan telefon sorununa uyar: anahtarı ne bir şirket ne de tek bir kişi tutmadan kurtarma.
- Havenfold'un kasa tasarımı payları güvenilen kişilere, evin dışındaki kâğıda ve TPM'li cihazlara dağıtır, cihazları tek kişi sayar ve kurtarmadan sonra sırrı döndürür.
- Kasa kodu var ve test edildi, ama bağımsız denetimden önce yayımlanmayacak; Havenfold pre-alpha aşamasında.
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