deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Meta'nın genel erişime açık zaman servisi, stateless sunucularla NTS kimlik doğrulamalı NTP ekledi

Meta'nın genel erişime açık zaman servisi artık NTS'yi (RFC 8915) destekliyor; istemciler aldıkları zamanı kriptografik olarak doğrulayabiliyor. Sunucular, cookie anahtarlarını günlük olarak paylaşılan bir master secret'tan türeterek stateless kalıyor.

Meta'nın genel erişime açık zaman servisi, stateless sunucularla NTS kimlik doğrulamalı NTP ekledi

Meta'nın zaman servisi artık kendini kanıtlayabiliyor

Şirketin mühendislik blogunda yayımlanan ve Hacker News'in ön sayfasına çıkan bir yazıya göre Meta, genel erişime açık zaman servisi için Network Time Security'yi (NTS) devreye aldı. nts.meta.com'a bağlanan istemciler artık aldıkları zamanın gerçekten Meta'dan geldiğini ve aktarım sırasında değiştirilmediğini kriptografik olarak doğrulayabiliyor — bu, 1985'ten beri kimlik doğrulaması olmayan düz NTP'nin hiç sunmadığı bir güvence. Ayrıca Meta, sunucu ve GitHub'daki Time kütüphanesi üzerinden erişilebilen bir istemciyi de içeren yığını açık kaynak yaptı.

Kimlik doğrulaması olmayan zaman neden sorun

Meta'nın argümanı, NTP'nin sadece güvensiz eski protokollerden biri olmadığı: zaman, diğer tüm güvenlik kararlarının ölçüldüğü girdidir. Sertifika geçerlilik pencereleri, token sürelerinin dolması, replay pencereleri ve log sıralaması hep yerel saate bağlıdır ve bu kontrol döngüseldir — saatinize zaten güvenmeden bir sertifikanın notBefore ve notAfter sınırlarını doğrulayamazsınız.

Yazı bunu kısalan sertifika ömürleriyle ilişkilendiriyor. CA/Browser Forum'un SC-081v3 kararı uyarınca yeni yayımlanan kamuya güvenilir TLS sertifikalarının üst sınırı Mart 2026'da 200 güne düştü, Mart 2027'de 100 güne inecek ve Mart 2029'da 47 güne ulaşacak; o noktada domain doğrulamasının yeniden kullanım süresi de 10 güne düşecek. 47 günde manuel sertifika yönetimi hiçbir ölçekte sürdürülebilir olmaktan çıkar, yenileme kabaca aylık bir gözetimsiz ACME döngüsüne dönüşür ve saati kaymış bir makine, kimsenin izlemediği bir programda sertifika yeniler ya da başarısız olur.

NTS nasıl çalışır

RFC 8915 ile standardize edilen NTS, kimlik doğrulamayı iki aşamaya böler.

İlk aşama, ALPN ntske/1 ile müzakere edilen, TCP 4460 portunda TLS 1.3 üzerinden bir anahtar değişimidir (NTS-KE). İstemci ve sunucu bir AEAD algoritması üzerinde anlaşır, RFC 5705 exporter ile TLS oturumundan doğrudan iki yönlü oturum anahtarı türetir ve sunucu sekiz cookie ile hangi NTP sunucusunun kullanılacağını belirten bir kayıt verir. Bu, paket başına değil bir kez gerçekleşir. Meta üç AEAD müzakere eder — RFC 8915'in uygulaması zorunlu kıldığı AES-SIV-CMAC-256, ayrıca AES-SIV-CMAC-512 ve AES-128-GCM-SIV — ve istemci tercihi kazanır.

İkinci aşama, NTS uzantı alanlarıyla normal NTPv4'tür, UDP 123 portunda çalışır. Her istek benzersiz bir tanımlayıcı, bir cookie ve kendisinden önceki her şeyi kapsayan ama hiçbir şeyi şifrelemeyen bir authenticator taşır. Sunucu cookie'yi açarak oturum anahtarlarını geri getirir, authenticator'ı doğrular ve tanımlayıcının yankılandığı, içine taze cookieler şifrelenmiş kendi authenticator'ını taşıyan bir yanıt verir.

Meta'nın sunucuları asla NTS NAK göndermez, bu yüzden sahte bir paket paket kaybından ayırt edilemez ve istemciyi yeni bir anahtar değişimine itmek için kullanılamaz. Replay saldırıları, yankılanan tanımlayıcının bekleyen hiçbir istekle eşleşmemesi nedeniyle başarısız olur. Ve yenileme cookieleri şifrelenmemiş halde değil, şifreli authenticator içinde taşıdığı için bir gözlemci her etkileşimde farklı bir opak kütle görür ve bir istemciyi ağlar arasında izleyemez.

State olmadan cookieler

Cookie, istemciye emanet edilen sunucu durumudur: oturum anahtarları, sadece bir sunucunun açabilmesi için AES-SIV ile mühürlenmiş halde. Aklınıza ilk gelen uygulama, bir anahtarlığını her sunucuya çoğaltmak olurdu; bu da zaman servisini dağıtık durum sorununa dönüştürürdü.

Bunun yerine Meta, her günün mühürleme anahtarını HKDF-SHA256 ile paylaşılan bir master secret'tan türetiyor; gün sayısı — Unix epoch'tan beri tam 24 saatlik dönemler, yani saat dilimi ya da yaz saati yok — salt olarak kullanılıyor. Bu tamsayı hem cookie'nin anahtar kimliği olarak hizmet eder hem de açıkta taşınır; yani herhangi bir sunucu anahtarı yeniden türetebilir ve hiç görmediği bir cookie'yi, hiç konuşmadığı bir makinenin mühürlediği cookieleri bile açabilir. Sunucular, dönüşüm sınırlarındaki sapmayı karşılamak için iki gün geriye ve bir gün ileriye ait cookieleri kabul eder. Yazıya göre sonuç: anahtarlık yok, çoğaltma yok, oturum tablosu, senkron bozulabilecek paylaşılan durum yok ve saldırganın tüketebileceği bir şey yok. Anahtar değişimi sunucuları ile NTP yanıtlayıcıları ayrı makinelerdir ve hiçbir şey paylaşmazlar; kimlik doğrulaması olmayan NTP yoluna dokunulmamıştır.

Tek satırlık chrony

Chrony kullanıcıları tek bir direktifle etkinleştirebilir: pool nts.meta.com nts iburst maxsources 5. Meta, server yerine pool öneriyor çünkü yapılandırılan host, sonuçta konuştuğunuz host değil — nts.meta.com yalnızca anahtar değişimini sonlandırır ve istemcileri time.meta.com yanıtlayıcılarına yönlendirir — ve NTP, kötü bir kaynağı geride bırakacak birkaç bağımsız kaynak ister. Her association kendi anahtar değişimini yürütür ve yazıdaki chronyc authdata çıktısı, o tek yapılandırma satırından beş bağımsız kimlik doğrulamalı kaynak gösterir.

Neden önemli

Zaman senkronizasyonu genelde altyapı olarak görülür ama sertifika doğrulamasına, kimlik bilgisi sürelerine ve replay korumasına temel oluşturur; 47 günlük sertifikalara geçiş, güvenilir saatlerde çalışan gözetimsiz yenileme döngüleri varsayar. Meta'nın stateless cookie tasarımı, çoğaltmalı bir yaklaşımın yaratacağı dağıtık durum sorunundan kaçınır ve sunucunun açık kaynaklanması diğer zaman operatörleri için eşiği düşürür. Kalan boşluk istemciler: NTS ancak zamanı soran cihazlar yanıtı doğrulayabiliyorsa işe yarar; bu yüzden Meta, Android ve iOS'taki NTP istemcilerinin bakımcılarından doğrudan destek eklemelerini istiyor.

  • #ntp
  • #nts
  • #time-sync
  • #meta
  • #open-source

İlgili yazılar