Tehdit Modeli & OWASP ASVS L1 Öz-Tasdik

Vaulted'ın karşı koymak üzere tasarlandığı tehditler, karşı koymadıkları ve bir sektör temel çizgisine göre kontrol bazlı tasdik.

Sürüm 1.0 · Yayımlandı 2026-04-27 · Kaynak: main · Yazar: Maxim Novak

Bu belge hakkında

Bu bir öz-tasdiktir, üçüncü taraf denetimi değil. Vaulted'ın tam olarak neyi korumayı iddia ettiğini, neleri korumadığını ve her tasarım kararının tanınmış kontrollerle nasıl eşleştiğini görebilmen için mevcuttur. Bütçe imkân tanıdığında bağımsız bir inceleme yaptırıp raporunu bu sayfanın yanında yayımlayacağız. O zamana kadar temel sıfır bilgi iddiasını kendin doğrulayabilirsin — tarayıcı DevTools ile beş dakikada.

1. Kapsam & varsayımlar

Bu model, web ön yüzü, API rotaları ve Upstash Redis depolama alanı dahil olmak üzere vaulted.fyi üretim ortamını kapsar. Aynı API ile etkileşime girdikleri ölçüde yayımlanan CLI ve MCP sunucusunu da kapsar.

Kapsam dışında:

  • Kullanıcının uç noktası (tarayıcı, işletim sistemi, uzantılar, pano, ekran).
  • Paylaşım bağlantısının iletildiği iletişim kanalı (e-posta, Slack, SMS vb.).
  • Alıcının düz metni sonradan nasıl işlediği.
  • Kullandığımız API yüzeyinin altındaki Vercel veya Upstash güvenlik açıkları.

2. Varlıklar & güven sınırları

Birincil varlık: düz metin gizli bilgi. Sunucuya asla ulaşmamalı, gönderenin ve alıcının tarayıcıları dışında hiçbir yerde kalıcı olmamalı ve yalnızca sunucu tarafı durumdan kurtarılamamalıdır.

İkincil varlıklar: şifreli metin, IV'ler, görüntüleme sayaçları, son kullanma zaman damgaları ve hizmetin bütünlüğü / kullanılabilirliği.

Güven sınırları (azalan güven sırasıyla):

  1. Gönderenin tarayıcısı — düz metin ve anahtara güvenilir.
  2. Alıcının tarayıcısı — bağlantıyı açtıktan sonra düz metin ve anahtara güvenilir.
  3. İstemci ile sunucu arasındaki ağ — güvenilmez; TLS 1.3 ve yalnızca şifreli metnin üzerinden geçmesi tasarım kararıyla azaltılmış.
  4. Vaulted sunucusu (biz) — yarı güvenilir. Pasif bir şifreli metin deposu olarak değerlendirilir. Tehdit modeli, Vaulted'ın kendisi ele geçirilse bile düz metnin açığa çıkmayacağını varsayar.
  5. Upstash Redis — sunucuyla aynı güven düzeyi. Yalnızca şifreli bloblar.

3. Tehdit aktörleri

Pasif ağ gözlemcisi. TLS meta verilerine erişimi olan ISP, yol üzerindeki aktör. TLS ve iletim hattında düz metin veya anahtar bulunmamasıyla engellenir.

Aktif ağ saldırganı. MitM girişiminde bulunabilir. TLS, HSTS ön yüklemesi ve sertifika doğrulamasıyla engellenir. Başarılı bir TLS ele geçirmesi yine de yalnızca şifreli metin verir.

Ele geçirilmiş sunucu / düşman operatör. Bizi de içerir. Anahtar hiç gelmediğinden depolanan gizli bilgileri okuyamaz. Hizmet reddi yapabilir veya sunulan JS paketini değiştirebilir — aşağıdaki artık risklerde ele alınmıştır.

Geçerli paylaşım bağlantısına sahip kimlik doğrulamasız saldırgan. Tasarım gereği, tam bağlantıya sahip herkes şifreyi çözebilir. Görüntüleme limitleri, son kullanma ve isteğe bağlı parola ifadesi pencereyi daraltır. Bu kasıtlı bir özelliktir, hata değil.

Belirli bir gönderenin veya alıcının hedef alındığı saldırgan. Uç noktayı, iletim kanalını veya alıcının şifre çözme sonrası davranışını istismar edebilir. Vaulted'ın kontrolü dışında; dürüstlük adına belgelenmiştir.

4. Kontroller

  • Rastgele 96 bit IV'ler ile istemci tarafı AES-256-GCM, kaynaktan: crypto.getRandomValues.
  • Gizli bilgi başına 256 bit anahtar üretildi: crypto.subtle.generateKey; URL fragment'ına yerleştirildi, hiçbir zaman iletilmez.
  • PBKDF2 (yüksek iterasyon sayısı) ve AES-GCM anahtar sarmalama ile isteğe bağlı parola ifadesi sarmalama.
  • Redis HINCRBY aracılığıyla atomik görüntüleme sayısı uygulaması ve limitte aynı işlemde silme.
  • TTL tabanlı otomatik sona erme, 30 günle sınırlı; oluşturulduktan sonra uzatma yok.
  • Oluşturma ve görüntüleme uç noktalarında IP başına kayan pencere hız sınırlaması.
  • noindex /s/[id] görüntüleme sayfalarında, gizli URL'lerin arama yoluyla sızmaması için.
  • HSTS ön yüklemesiyle TLS 1.3, güvenli güvenlik başlıkları, hız limiti pencereleri dışında IP günlüğü yok.

5. Artık riskler (karşı konulmayan)

Bunlar kasıtlı sınır kararlarıdır; kullanıcıların Vaulted'ın tehdit modellerine uyup uymadığına karar verebilmesi için belgelenmiştir.

  • Uç nokta ele geçirme. Bir keylogger, virüslü tarayıcı veya düşman uzantı, şifre çözümünden sonra düz metni DOM'dan okuyabilir.
  • İletim kanalı sızıntısı. Paylaşım bağlantısı iletilirse, arşivlenirse veya yanıtlanan bir e-posta zincirinde alıntılanırsa, o kanal saldırı yüzeyine dönüşür.
  • Hedefli paket değişimi. Ele geçirilmiş bir CDN veya Vercel edge, belirli bir kullanıcıya farklı bir JS sunabilir. Subresource Integrity ve yeniden üretilebilir derlemeler kısmi azaltma önlemleridir ve yol haritasındadır.
  • Alıcı davranışı. Şifre çözüldükten sonra alıcı kopyalayabilir, ekran görüntüsü alabilir veya iletebilir.
  • Zayıf parola ifadesi. Kullanılırsa, zayıf bir parola ifadesi sarmalanmış anahtara sahip herkes tarafından kaba kuvvetle kırılabilir.
  • Zorlama / baskı. Her türlü teknik kontrolün kapsamı dışında.

6. OWASP ASVS L1 Öz-Tasdik

Aşağıdaki matris, Vaulted'ın uygulamasını seçili OWASP ASVS Seviye 1 gereksinimlerine göre eşler. Geçerli olmayan kategoriler (oturumlar, kimlik doğrulama, dosya yükleme), atlanmak yerine N/A ve kısa bir gerekçeyle işaretlenmiştir; böylece bir girişin yokluğu kaçınma olarak yorumlanmaz.

IDKategoriGereksinimDurumKanıt
V1.1.1MimariUygulama için tehdit modellemeyle güvenli SDLCPassBu belge. Her önemli mimari değişiklikte gözden geçirilir.
V1.4.1MimariGüvenilen uygulama noktaları erişim kontrollerini uygularPassAPI rota işleyicileri girdileri doğrular ve görüntülemeleri src/lib/redis-secrets-store.ts içindeki Redis HINCRBY aracılığıyla atomik olarak tüketir.
V2.10.xKimlik DoğrulamaHizmet / kullanıcı kimlik doğrulamasıN/AVaulted anonimdir. Kullanıcı hesabı yok, hizmetten hizmete kimlik doğrulama yok. Yetkilendirme, gizli ID ve URL fragment anahtarının bilinmesine dayanır.
V3.xOturum YönetimiOturum yönetimi gereksinimleriN/AOturum yok, kimlik doğrulamalı durum için çerez yok.
V5.1.3Girdi DoğrulamaGüvenilen hizmet katmanında girdi doğrulamaPasssrc/app/api/secrets/route.ts içinde manuel çalışma zamanı doğrulaması. Yük ≤ 1000 karakter sunucu tarafında uygulanır; maksimum görüntüleme ve TTL sınırlıdır.
V5.2.5TemizlemeBağlama göre çıktı kodlaması (HTML, JS, URL)PassReact varsayılan olarak tüm interpolasyonlu değerleri kaçar. Tek dangerouslySetInnerHTML çağrıları, sunucu tarafında yazılı veriden oluşturulan JSON-LD literallerini render eder.
V6.2.1Depolanan KriptografiGüvenli varsayılanlarla onaylı kriptografik algoritmalar kullanPassWeb Crypto API aracılığıyla AES-256-GCM. NIST SP 800-38D. Bkz. src/lib/crypto.ts.
V6.2.2Depolanan KriptografiKriptografik olarak güçlü rastgele sayı üretimiPassIV'ler ve anahtar materyali için crypto.getRandomValues. AES anahtarları için crypto.subtle.generateKey.
V6.2.5Depolanan KriptografiGüvensiz veya kullanımdan kaldırılmış kriptografik primitifler yokPassKriptografik yolun hiçbir yerinde MD5, SHA-1, DES, RC4, ECB veya CBC-MAC'siz yok.
V6.3.1Depolanan KriptografiAnahtarlar yetkisiz erişime karşı korunmuşPassŞifreleme anahtarı sunucuya asla ulaşmaz. Yalnızca URL fragment'ında yaşar, RFC 3986 uyarınca istemci tarafında işlenir. İsteğe bağlı parola ifadesi, paylaşmadan önce PBKDF2 ile anahtarı sarar.
V7.1.1Hata İşleme & GünlüklemeGünlüklerde hassas bilgi yokPassSunucu yalnızca istek şeklini ve hız limiti kararlarını günlükler. Şifreli metin yok, çapraz ilişkilendirilebilecek biçimde gizli ID yok, hız limiti penceresinin ötesinde IP kalıcılığı yok.
V7.4.1Hata İşleme & GünlüklemeGenel hata mesajlarıPassAPI rotaları genel HTTP durum kodları ve kısa hata dizeleri döndürür. Yığın izi veya iç durum sızıntısı yok.
V8.1.1Veri KorumaHassas veriler tanımlanmış ve korunmuşPassDüz metin sunucu tarafından hiçbir zaman alınmaz. Şifreli metin, TTL tabanlı silme ve atomik görüntüleme limiti uygulamasıyla Upstash Redis'te şifreli olarak depolanır.
V8.3.1Veri KorumaHassas veriler URL'lerde veya yönlendirici başlıklarında açıkta değilPassŞifreleme anahtarı URL fragment'ında yaşar; fragment'lar RFC 3986 §3.5 uyarınca tarayıcılar tarafından hiçbir zaman sunucuya gönderilmez ve document.referrer'dan çıkarılır.
V9.1.1İletişimTüm istemci bağlantısı için TLSPassVercel edge'de TLS 1.3 zorunlu. HSTS ön yüklenmiş. HTTP istekleri HTTPS'ye yönlendirilir.
V10.3.2Kötü Amaçlı KodUygulama kodu kötü amaçlı kod açısından incelenmişPassTek bakımlı kod tabanı. Tüm commit'ler proje sahibi tarafından yazılmış; desteklendiği yerlerde imzalı commit'ler. Dependabot aracılığıyla bağımlılık güncellemeleri birleştirmeden önce incelenir.
V11.1.1İş MantığıMantık akışları kötüye kullanıma karşı korunmuşPassUpstash Ratelimit aracılığıyla IP başına hız sınırlaması (10 oluşturma/dk, 30 görüntüleme/dk). Görüntüleme sayaçları atomik olarak azaltılır.
V12.xDosya & KaynaklarDosya yükleme ve işleme gereksinimleriN/AVaulted dosya yüklemeyi kabul etmez.
V13.2.1API & Web HizmetleriRESTful uç noktalar istek şemasını doğrularPassTüm POST/GET işleyicileri, işlem öncesinde yol parametrelerini, gövde şeklini ve content-type'ı doğrular.
V14.4.3YapılandırmaStandart güvenlik başlıkları yapılandırılmışPassHSTS, X-Content-Type-Options, Referrer-Policy ve Permissions-Policy Next.js yapılandırması aracılığıyla ayarlanmış. Content-Security-Policy, nonce tabanlı strict-dynamic script-src ile src/proxy.ts içinde istek başına uygulanır; API rotaları kilitli bir default-src none politikası alır.

Numaralandırma ASVS 4.0 yapısını izler. Liste seçicidir, kapsamlı değil — durumsuz, hesapsız şifreli metin deposuna anlamlı biçimde uygulanan kontroller hakkında dürüstlük hedeflenmektedir.

7. Değişim süreci

Bu belgedeki herhangi bir öğeyi etkileyen her değişiklik — yeni uç nokta, kriptografik değişiklik, bağımlılığı etkileyen yeniden düzenleme, altyapı değişikliği — aynı PR'da bu sayfanın gözden geçirilmesini tetiklemelidir. Belge güncellendiğinde yukarıdaki sürüm ve yayımlanma tarihi artırılır; önceki sürüm genel git geçmişinde erişilebilir kalır.

Onay

Bu tehdit modeli, Vaulted'ın bakıcısı tarafından iyi niyetle yayımlanmıştır. Yukarıdaki tasdiklerle ilgili hatalar, eksiklikler ve anlaşmazlıklar açıkça davet edilmektedir — lütfen bunları [email protected] adresine veya sorumlu açıklama programı.

Maxim Novak — bakıcı, vaulted.fyi · 2026-04-27