Açık kaynak · WireGuard® uyumlu
VPN anahtarın kopyalanamaz olsun.
Latchwire, WireGuard özel anahtarını YubiKey'in içinde tutar. Anahtar kartta üretilir ve karttan hiç çıkmaz. Protokol ve sunucun aynı kalır. Kart yoksa tünel de yok.
Yayın öncesi: macOS ve Linux için komut satırı
Nasıl çalışır
Anahtarı YubiKey'inde üret
Donanım yazılımı 5.7 veya üstü olan bir YubiKey ile keygen komutunu çalıştır. Anahtar kartta, kullanılmayan bir PIV yuvasında (82–95) üretilir; diğer yuvalar olduğu gibi kalır. Fabrika ayarlarındaki bir kartın önce PIN ve PUK'u değiştirilir.
Açık anahtarı sunucuna ekle
Sunucun sıradan bir WireGuard eşi görür, bu yüzden eklenti ya da güncelleme gerekmez. Latchwire; OPNsense, pfSense, Linux ve MikroTik gibi standart sunucular için tasarlandı. Şimdiye kadar uçtan uca yalnızca bir Linux container'ındaki test sunucusuyla denendi.
PIN'ini gir ve bağlan
PIN karta gider ve saklanmaz. Normalde bir kez girersin; uykudan sonra ya da başka bir program kartı sıfırladığında yeniden sorulur. Kartı çıkarınca tünel kapanır. Hedef iki saniye; simüle edilmiş kartla yapılan testte yaklaşık bir saniye sürdü.
Klasik WireGuard ve Latchwire
| Soru | Klasik WireGuard | Latchwire |
|---|---|---|
| Özel anahtar nerede? | Bilgisayarındaki bir dosyada | YubiKey'in içinde |
| Kopyalanabilir mi? | Evet, iz bırakmadan | Hayır. Anahtar karttan alınamaz |
| Dizüstü, kart olmadan çalındıysa? | Anahtarı her sunucuda değiştirmen gerekir | Diskteki hiçbir şey el sıkışmayı tamamlayamaz |
| Bilgisayarında zararlı yazılım varsa? | Anahtarı çalıp sonra kullanabilir | Kart takılıyken tüneli kullanabilir ama anahtarı alıp götüremez |
| Yedek | Dosyanın bir kopyası | İkinci bir YubiKey; sunucuya ikinci eş olarak eklenir |
| Sunucu tarafı | Standart WireGuard | Aynısı: standart WireGuard |
| Olgunluk | Yerleşik, resmî istemcileri var | Yayın öncesi |
Donanım
Aşağıdakilerden bugün kodda yalnızca ilk kart var. Etiketler her birinin ne olduğunu söyler.
YubiKey 5
v1X25519 destekli PIV, donanım yazılımı 5.7 veya üstü. Anahtar kartta üretilir ve karttan hiç çıkmaz. Testler şimdilik simüle edilmiş kartlarla yapıldı; gerçek kart kontrolleri henüz tamamlanmadı.
OpenPGP kartları
Yakındav1'den hemen sonrası için planlandı. Uygulanmadı.
PKCS#11 ve HSM'ler
Yakındav1'den hemen sonrası için, X25519 destekli cihazlara yönelik planlandı. Uygulanmadı.
TPM, Secure Enclave, FIDO2
Yol haritasıDaha zayıf sınıf, v1'de yok. Anahtar donanımla şifrelenir ama kullanımda belleğe açılır; bu yüzden bunlar hiçbir zaman "anahtar kopyalanamaz" iddiasını taşımaz.
Güvenlik
İddia anahtarın alınmasıyla ilgilidir, kullanılmasıyla değil. Neyi kapsadığı ve neyi kapsamadığı aşağıda.
Şunlara karşı korur
- Anahtarın diskinden veya yedeklerden kopyalanması: oraya hiçbir özel anahtar yazılmaz
- Kart olmadan çalınan ya da imajı alınan dizüstü
- Özel anahtar içeren yapılandırma dosyaları: Latchwire bunları reddeder
- Kartta üretilmemiş anahtarlar: Latchwire bunları kabul etmez
- Kill switch açıkken trafiğin tünel dışına çıkması (tehdit modelindeki sınırlarla)
Şunlara karşı korumaz
- Kart takılı ve PIN girilmişken senin hesabınla çalışan zararlı yazılım: kartı ve tüneli kullanabilir. Dokunma gerekmez
- PIN girildikten sonra karta erişebilen başka programlar; bazı sistemlerde buna diğer yerel kullanıcılar da dahildir
- Ele geçirilmiş bir root hesabı veya çekirdek
- Kart ve PIN ile birlikte çalınan bir dizüstü
- Süreç belleğinin okunması: oturum anahtarları ve önbelleğe alınmış bir sır orada durur, swap'a da düşebilir. Bunlar özel anahtar değildir ve kart olmadan el sıkışmayı tamamlayamaz
- Sahte donanım: Latchwire kartın bildirdiğine güvenir, attestation henüz doğrulamaz
Bilmekte fayda var
- PIN hiçbir zaman saklanmaz ama yazarken bellekten geçer.
- Varsayılan PIN asla denenmez.
- Kullanıyorsan preshared key diskte durur ve donanımla korunmaz.
- Tehdit modeli her korumanın arkasındaki kodu gösterir. İkisi çelişirse doğru olan koddur, belgede hata vardır.
Proje durumu
Latchwire yayın öncesi bir yazılımdır. Bugün neyin var olduğu ve neyin kontrol edildiği burada.
- Test edildi
Linux komut satırı ve ağ
Ayrıcalıklı bir container'da, yazılım anahtarı ve test sunucusuyla uçtan uca test edildi.
- Doğrulanmadı
macOS komut satırı ve ağ
Uygulandı. Elle yapılacak kontroller henüz tamamlanmadı.
- Doğrulanmadı
Gerçek YubiKey davranışı
Otomatik testler simüle edilmiş kart kullanır. Gerçek kart kontrolleri henüz tamamlanmadı.
- Hazır değil
Windows
Uygulanmadı. Windows derlemesi henüz çalışmıyor.
- Hazır değil
Masaüstü uygulaması
Geliştiriliyor. Bugün yalnızca komut satırı var.
- Henüz yok
İmzalı sürümler ve paketler
Yayınlanmış sürüm yok. Kaynaktan derlersin.
- Henüz yok
Bağımsız güvenlik incelemesi
Bağımsız bir inceleme yapılmadı.
Kurulum
Kaynaktan derle. Henüz paket veya imzalı ikili dosya yok; bu kurulum test içindir.
Go 1.25 veya üstü ve donanım yazılımı 5.7 veya üstü bir YubiKey 5 gerekir. Linux'ta derlemek için ayrıca bir C derleyicisi ve libpcsclite-dev, çalıştırmak için de pcscd gerekir.
Derle
git clone https://github.com/Kodviva/latchwire
cd latchwire
go build -o latchwire ./cmd/latchwire
sudo install -o root -m 0755 latchwire /usr/local/bin/latchwire
Daemon'ı ve ajanı her biri kendi terminalinde başlat
sudo latchwire daemon
latchwire agent
Anahtar üret ve bağlan
latchwire devices
latchwire keygen --serial <serial> --address <tunnel-ip>
sudo latchwire add office office.conf
latchwire up office
keygen, sunucun için bir [Peer] bloğu yazdırır. Tünel dosyan normal bir WireGuard dosyasıdır; PrivateKey yerine KeyRef ve PublicKey içerir.
Homebrew, .deb, .rpm ve Microsoft Store paketleri planlanıyor. Hiçbiri henüz yok.
Yol haritası
ÇekirdekUygulandı
macOS ve Linux için komut satırı istemcisi
Tam ağ özellikleriUygulandı
Tam tünel, DNS, kill switch, on-demand ve izinli kullanıcılar. Linux'ta test edildi; macOS kontrol edilecek
Gerçek donanım kontrolleriAçık
Herkese açık kontrol listesiyle gerçek YubiKey'ler ve macOS ağı
WindowsSürüyor
Servis, ağ katmanı ve kill switch
Masaüstü uygulaması ve çevirilerSürüyor
macOS, Windows ve Linux için masaüstü uygulaması
İmzalı sürümlerPlanlandı
Homebrew, doğrudan indirme, .deb, .rpm, Microsoft Store