Nerzen NTP Durum alınıyor EN
Şeffaflık günlüğüMerkle ağacı · SHA-256Ed25519dakikada bir

Zaman kanıtı

"Saatiniz dün gece 03:14'te doğru muydu?" sorusunun yanıtını sonradan uyduramayalım diye, sunucunun saat durumunu dakikada bir imzalı bir günlüğe yazıyoruz. Bir kez yazılan kayıt, imza bozulmadan değiştirilemez ya da silinemez. Geçmiş bir anı aşağıdan sorgulayın; doğrulama sizin tarayıcınızda yapılır.

Bir anı sorgula

günlük — tarihinde başlıyor · saat, cihazınızın yerel saatidir

Günlük yükleniyor…

Nasıl çalışır

  1. Kayıt: her dakika, saat disiplin yazılımının o anki ölçümleri tek satırlık bir JSON kaydına yazılır: durum, stratum, sapma, hata üst sınırı, kaynak sayısı ve varsa olaylar.
  2. Ağaç: bir UTC gününün kayıtları bir Merkle ağacının yapraklarıdır. Ağacın kökü, o günün bütün kayıtlarının tek bir 32 baytlık özetidir; tek bir kaydın tek bir harfi değişse kök değişir.
  3. İmza: her yeni kayıtta günün başlığı — gün, kayıt sayısı, kök ve bir önceki günün kökü — günlük anahtarıyla imzalanır.
  4. Zincir: her gün, bir önceki günün kökünü taşıdığı için günler birbirine bağlıdır; geçmiş bir günü değiştirmek sonraki bütün günlerin imzasını bozar.
  5. Doğrulama: yukarıdaki sorgu günün kayıtlarını indirir, kökü tarayıcınızda yeniden hesaplar ve imzayı denetler. Sunucuya güvenmeniz gerekmez; yalnızca açık anahtarı bilmeniz yeterlidir.

Günlük açık anahtarı (Ed25519, base64) — tıkla, kopyala:

—

Kayıt alanları

AlanAnlamı
tKaydın yazıldığı an (UTC, ISO 8601)
seqKaydın o gün içindeki sıra numarası; ağaçtaki yaprak dizini
statelocked kaynaklara kilitli · holdover kaynak yok, kendi osilatörüyle sürüyor · unsynchronised eşitlenmemiş
stratumO anki katman
referenceSaati süren kaynak: ülke / tür / koruma / sıra
offsetSistem saatinin seçilen kaynağa göre anlık sapması (saniye)
rms_offsetSapmanın uzun dönem ortalaması (saniye)
root_delay · root_dispersionBirincil saate gidiş-dönüş ve birikmiş belirsizlik (saniye)
error_boundYayımlanan hata üst sınırı: kök gecikme ÷ 2 + kök dağılım (saniye)
frequency_ppm · skew_ppmOsilatör düzeltmesi ve belirsizliği
leapArtık saniye durumu
sourcesToplam, kullanılabilir ve NTS korumalı kaynak sayısı
eventslogger_start, state_change, reference_change, stratum_change

Dosyalar

/timelog/index.jsonGünlüğün ilk ve son günü, açık anahtar
/timelog/latest.jsonSon kayıt ve son imzalı başlık
/timelog/YYYY/AA/GG.jsonlO günün kayıtları, satır başına bir kayıt
/timelog/YYYY/AA/GG.head.jsonO günün imzalı başlığı
/timelog/pubkey.pem · pubkey.txtGünlük açık anahtarı
/timelog/verify.pyKanıt paketi doğrulayıcısı

Başlığın imzalanan gövdesi beş satırdır: günlük adı, gün, kayıt sayısı, kök (base64) ve önceki günün kökü. Yaprak özeti SHA-256(0x00 ‖ satır), düğüm özeti SHA-256(0x01 ‖ sol ‖ sağ) biçimindedir (RFC 6962).

Komut satırından doğrulama

İndirdiğiniz kanıt paketi tek başına yeterlidir: kaydı, kaydı köke bağlayan yolu, imzalı başlığı ve açık anahtarı içerir. Doğrulayıcı hiçbir sunucuya bağlanmaz.

Paketi doğrula
curl -O https://ntp.nerzen.com/timelog/verify.py
python3 verify.py nerzen-timeproof-*.json \
  --key "$(curl -s https://ntp.nerzen.com/timelog/pubkey.txt)"
Bütün bir günü elle denetle
curl -s https://ntp.nerzen.com/timelog/latest.json   # son kayıt + imzalı başlık
curl -s https://ntp.nerzen.com/timelog/2026/10/01.jsonl | wc -l   # başlıktaki kayıt sayısıyla aynı olmalı

Sınırlar

  • Öz beyandır. Günlük, sunucunun kendi ölçtüğünü kaydeder; saatin gerçekten doğru olduğunu değil, o anda ne bildirdiğimizi ve bunu sonradan değiştirmediğimizi kanıtlar.
  • İmza anahtarı sunucudadır. Sunucuyu ele geçiren biri yeni kayıtlar imzalayabilir. Ancak o günün başlığını önceden kaydetmiş biri varken eski bir günü fark edilmeden değiştiremez.
  • Bağımsız tanık yok. Başlıklar şimdilik yalnızca bizim anahtarımızla imzalı. Güvenceyi artırmak isterseniz latest.json'u düzenli aralıklarla kendiniz saklayın; elinizdeki başlıkla çelişen bir geçmiş sunamayız.
  • Çözünürlük bir dakikadır. İki kayıt arasındaki kısa bir olay günlükte görünmeyebilir.
  • Kalibrasyon belgesi ya da yasal zaman damgası değildir.
  • Günlük kesilirse o dakikaların kaydı olmaz; boşluk kayıt zamanlarından açıkça görülür ve sonradan doldurulamaz.

Sık sorulan sorular

Bu günlük ne işe yarar?

Sistemlerinizin zamanı bizden aldığı bir olayı sonradan incelerken, o anda sunucumuzun durumunu — kilitli miydi, hata sınırı neydi, kaynak değişti mi — bizim sözümüze değil, o an imzalanmış bir kayda dayanarak görebilirsiniz.

Kanıt paketi nedir?

Tek bir kaydı, onu günün köküne bağlayan özet yolunu, imzalı başlığı ve açık anahtarı içeren küçük bir JSON dosyasıdır. Olay raporuna ekleyebilir, yıllar sonra bile çevrimdışı doğrulayabilirsiniz.

NTS ile aldığım zamanı da kanıtlar mı?

Hayır. Günlük sunucunun durumunu kaydeder, tek tek istemcilere verilen yanıtları değil. İmzalı tekil yanıt için Roughtime kullanın.

Neden kendi biçiminiz yerine bilinen yapılar?

Merkle ağacı ve özet kuralları sertifika şeffaflığı günlüklerinde kullanılanla aynıdır (RFC 6962); imza Ed25519'dur. Böylece doğrulama için bizim yazılımımıza değil, herkesin elindeki araçlara ihtiyaç olur.