Güvenlik incelemesi yapanlar için teknik bir genel bakış. Buradaki her şey kaynak kodla doğrulanabilir — bizi daha az parlak gösteren kısımlar dahil; onları atlamak yerine açıkça yazıyoruz.
Arka uç yok. Uzantı, TOTP/HOTP kodlarını OTPAuth ile yerel olarak üreten bir Manifest V3 Chrome uzantısıdır. Sunucu işletmiyoruz, hesap tutmuyoruz ve kullanıcı verisinin bize ulaşabileceği bir kanal yok.
Sunucu olmadığı için sunucu tarafında anahtar malzemesi, anahtar emaneti ya da bizim denetimimizdeki bir kurtarma yolu da yok. Bir kullanıcı parolasını unutur ve kurtarma kodunu kaybederse yardımcı olamayız — bu tasarım gereği böyle.
Parola koruması isteğe bağlıdır ve varsayılan olarak kapalıdır. Açıkken:
Veriler hiçbir zaman doğrudan paroladan türetilen bir anahtarla şifrelenmez. Kayıtları rastgele bir ana anahtar şifreler; PBKDF2 çıktısı yalnızca bu ana anahtarı sarmalar. Bundan iki sonuç çıkar ve ikisi de önemlidir:
Parola koruması açıkken hesap kaydının tamamı, tanımlayıcısı ve parmak izi dışında şifrelenir — servis adı dahil; böylece çalınan bir profil, kullanıcının hangi servislerde hesabı olduğunu ele vermez. Koruma açıldığında uzantı kayıtları şifreler, şifresini çözüp karşılaştırarak doğrular ve ancak ondan sonra düz metin kopyaların tümünü siler: tarayıcının yerel deposu, senkronizasyon ve yedi dönüşümlü yedek anlık görüntüsünün hepsi.
Değerlendirmeniz açısından önemli olduğu için açıkça yazıyoruz:
Kısacası: bu, veriyi beklemedeyken korur. Kullanım sırasında zaten saldırganın denetiminde olan bir cihazı savunmaz, savunamaz da.
Manifest tam olarak iki izin bildirir ve hiçbir host izni istemez:
Hiç content script yok, tabs, cookies veya webRequest izinleri yok ve web'den erişilebilir kaynak yok. Uzantı hiçbir sayfanın içeriğini okuyamaz veya değiştiremez.
Kamerayla QR tarama, açılır pencerede değil sekmede açılan bir uzantı sayfasında çalışır — açılır pencere odağı kaybettiği anda yok edilir ve izin istemi tam olarak bunu yapar. Bunun için manifestte hiçbir izin gerekmez: tarayıcının standart kamera istemi kullanılır, uzantı origin'i başına verilir, site ayarlarından geri alınabilir ve kullanıcı tarayıcıyı açana kadar hiç sorulmaz. Video yerel olarak çözülür, hiçbir zaman iletilmez veya saklanmaz.
Uzantı normal kullanımda hiçbir otomatik istek yapmaz ve Manifest V3 uzak kodu yasaklar. Yapabileceği tüm bağlantılar:
| Sunucu | Ne zaman | Kullanıcı verisi taşır mı? |
|---|---|---|
| worldtimeapi.org timeapi.io | Saat sapması kontrolü, önbelleklenir, hata durumunda sessizce geçilir. Saat kayarsa TOTP bozulur. | Hayır |
| authenticator.sh | Kurulumda karşılama sayfası; kaldırma veya puanlama sırasında geri bildirim sayfası. | Hayır (sıradan web sunucusu günlükleri) |
Üçüncü taraf sunuculardan yazı tipi, betik, stil veya görsel yüklenmez. Arayüzü çizmek için gereken her şey paketin içinde gelir.
Yukarıdakilerin hiçbirini bize güvenerek kabul etmek zorunda değilsiniz. Uzantı açık kaynaktır ve her sürüm yeniden üretilebilir:
.crx dosyasını Chrome Web Store'dan indirip açınnpm ci && npm run build çalıştırındist/ dizinini açılmış paketle karşılaştırınÜretilen dist/ içindeki her dosyanın SHA-256 özeti, her GitHub sürümüyle birlikte SHA256SUMS-v<version>.txt olarak ve sha256sum biçiminde yayımlanır; böylece 4. adım tek bir sha256sum -c çalıştırmasına iner. Farklar, arşiv içindeki dosya sırası ve Node yama sürümleri arasında küçültülmüş çıktıdaki boşluklarla sınırlı kalmalıdır.
Çalışma zamanı bağımlılıkları bilinçli olarak az — OTPAuth, React, jsQR, Zustand, Framer Motion ve Lucide — ve depoya işlenmiş bir lock dosyasıyla sabitlenmiş. CycloneDX biçiminde SBOM talep üzerine verilir.
Kaynak kodu inceleyinBiz küçük ve bağımsız bir sağlayıcıyız. Aşağıdakilerden biri süreciniz için kesin bir gereklilikse, bunu bir değerlendirmenin üçüncü haftasında değil şimdi bilmeniz daha iyi:
Bunların yerine sunduğumuz şey: kaynak kodun tümüyle şeffaf olması, doğrulanabilir bir derleme, asgari izin yüzeyi ve verinizi en baştan tutabilecek hiçbir sunucu altyapısının bulunmaması.
Zafiyet bildirimleri ve güvenlik soruları: security@authenticator.sh. Açıklama politikamız, kapsam, yanıt süreleri ve safe harbour koşulları güvenlik politikası sayfasında; neyin saklandığı ve cihazdan neyin çıktığı ise gizlilik politikası içinde anlatılıyor.
Yazılı bir tedarikçi değerlendirme formunu memnuniyetle yanıtlarız ya da kodu bir güvenlik ekibiyle birlikte adım adım gözden geçiririz.
Güvenlikle ilgili olmayan her şey için — kurulum, hesap kurtarma, bir dağıtımdaki faturalandırma soruları — destek sayfasına bakın. Lütfen zafiyet bildirimlerini oraya göndermeyin; o kutu gizli kabul edilmiyor.