Bir kaydın yolculuğu
1. Yükleme
Bölüm başlığı “1. Yükleme”Bir makine bir yükleme oturumu açar: bölüm etiketi, kip (ilk yükleme ya da artımlı) ve JSON işaretçileri. Ardından NDJSON partilerini karşılıklı TLS üzerinden gönderir; partiler isteğe bağlı olarak zstd ile sıkıştırılabilir. Her parti bir SHA-256 Content-Digest taşır ve özet tutmazsa hiçbir şey saklanmaz. İlk yükleme oturumları commit anında, artımlı oturumlar ise doğrulanan her partide yayınlanır.
2. Mühürleme
Bölüm başlığı “2. Mühürleme”Her kayıt sıkıştırılır ve kendi rastgele 32 baytlık anahtarı ile 96 bitlik nonce kullanılarak AES-256-GCM ile mühürlenir. Anahtar ve nonce asla yeniden kullanılmaz. Ek doğrulanmış veri; kiracıyı, parçayı, partiyi ve kayıt kimliğini mühüre bağlar. Kriptografi yalnızca Go standart kütüphanesiyle yapılır.
3. Parça ve anahtar bloğu
Bölüm başlığı “3. Parça ve anahtar bloğu”Mühürlenmiş kayıtlar değişmez bir parça dosyasında toplanır; her parti bir parçadır. Parçanın kayıt anahtarları, ofsetleri, zaman damgaları ve sahip takma adları bir anahtar bloğunda toplanır. Anahtar bloğu, her sürümde yeniden üretilen parça başına bir veri anahtarıyla mühürlenir.
4. Sarma
Bölüm başlığı “4. Sarma”Veri anahtarı iki kez sarılır:
- Dönem anahtarıyla (AES-256): her dönem için birincil HSM’de üretilir ve dışarı çıkarılamaz.
- DR anahtarıyla (RSA-OAEP SHA-256, en az 3072 bit): özel anahtar DR HSM’inde durur.
5. Takma adlar
Bölüm başlığı “5. Takma adlar”Kayıt ve sahip kimlikleri yalnızca mühürlü anahtar bloklarının içinde açık durur. Eşleştirme, 32 baytlık kiracı anahtarı altında HMAC-SHA256 takma adlarıyla yapılır.
Ne nerede durur
Bölüm başlığı “Ne nerede durur”| Veri | Yer |
|---|---|
| Şifreli parçalar | Özel IPFS ağı (CIDv1, sabitlenir ve CID döndürülmeden önce geri okunur) |
| Anahtar blokları | S3 uyumlu ayrı bir depo |
| Katalog, anahtar günlükleri ve API durumu | PostgreSQL |
| Dönem, kök, makbuz ve istemci CA anahtarları | İki PKCS#11 HSM bölümü: birincil ve DR |
Katalog yalnızca bölüm, gün aralığı, sayılar ve boyutlar gibi açık meta veriyi tutar. Açık metin yalnızca veri düzleminin belleğinde bulunur.
Kapalı ağ
Bölüm başlığı “Kapalı ağ”Düğümler 32 baytlık bir swarm anahtarını paylaşır ve o anahtar olmadan başlamaz. Önyükleme, DHT yönlendirmesi, sağlayıcı kayıtları, ağ geçidi, röle ve delik açma kapalıdır. Tasarımın hiçbir yerinde blokzincir yoktur.
6. Silme
Bölüm başlığı “6. Silme”Kaydı sildiğinizde ne olduğu Silme ve imha sayfasında anlatılır.