Google Authenticator dışa aktarma QR'ı taramak güvenli mi?
Yalnızca onu kendiniz, kendi eski telefonunuzda oluşturduysanız ve kendi yeni telefonunuz ekrana yönlendirilmişse. Herhangi bir nedenle o QR'ı fotoğraflayan başka biri, demetteki her hesabın her 2FA koduna kalıcı erişim kazanır.
Google Authenticator ve birkaç uyumlu uygulama (Aegis, Raivo OTP, 2FAS), yeni bir cihaza geçiş yapabilmek için depolanan 2FA hesaplarınızı “dışa aktarmanıza” olanak tanır. Dışa aktarma, otpauth-migration:// ile başlayan URI içeren bir QR kodu biçiminde yapılır. Bu URI'nin içinde, her hesabı bir arada taşıyan tek bir protokol tamponu demeti (Google'ın MigrationPayload şeması) bulunur: ihraç eden, hesap adı, gizli tohum, algoritma, basamak sayısı, tür (HOTP / TOTP) ve sayaç.
Format başlangıçta belgelenmemişti, ancak tersine mühendislikle çözümlendi ve artık 2FA yedeklemeleri için fiili değiş tokuş formatıdır. Üçüncü taraf kimlik doğrulayıcı uygulamalar aynı QR'ı tanır ve içe aktarır.
Bir QR düzinelerce hesap içerebilir. QR, görsel olarak normal bir TOTP kurulum QR'ından ayırt edilemez; sıradan bir gözlemciye tüm demeti taşıdığını gösteren görsel bir işaret yoktur.
Tek bir demet QR'ın neden eşsiz tehlikeli olduğu
Normal bir otpauth:// kurulum QR'ı, siz istemediyseniz taraması tehlikelidir; ancak hasar yarıçapı bir hesaptır. Göç QR'ının hasar yarıçapı, kimlik doğrulayıcınızdaki her hesaptır. Bir saldırgan bu QR'ı gösteren ekranı fotoğraflayabilirse; bir kafede omzunuzun üstünden, fark etmediğiniz bir güvenlik kamerası aracılığıyla, saydam bir cam pencereden, kapsadığı her hesapta 2FA'yı atlama yeteneğiyle gider. Kalıcı olarak. Her sırrı hizmet hizmet manuel olarak değiştirene kadar; çoğu hizmet bunu kolaylaştırmaz.
Demetteki sırrın sona erme tarihi yoktur. Bir oturum belirtecinin aksine (süresi dolar), bir passkey QR'ının aksine (tek seferlik), göç demetindeki tohumlar hizmet hizmet değiştirene kadar geçerlidir.
Bu nedenle tarayıcımızın her otpauth-migration:// QR'ındaki kararı muhtemelen_tehlikeli'den başlar ve bağlamdan bağımsız olarak orada kalır. Format sorunsuz; tehdit modeli formatın varlığıdır.
Base64 gövdesi çözüldükten sonra şu üst düzey alanlarla bir MigrationPayload protokol tamponu elde edilir:
otp_parameters, tekrarlayan. Hesap başına bir giriş.
sürüm, şema sürümü.
batch_size, dışa aktarma birden fazla QR'a bölündüğünde toplam parça sayısı.
batch_index, bu parçanın konumu.
batch_id, parçaları birbirine bağlayan benzersiz kimlik.
Her otp_parameters girişinin şunları vardır:
sır, ham tohum baytları. Bu asıl anahtar materyalidir.
ad, hesap etiketi (örn. alice@acme.com).
ihraç eden, hizmet adı (örn. ACME, GitHub).
algoritma, SHA1 / SHA256 / SHA512 / MD5.
basamaklar, kod başına 6 veya 8 basamak.
tür, TOTP (zamana dayalı) veya HOTP (sayaca dayalı).
sayaç, HOTP girişleri için geçerli sayaç değeri.
Tarayıcımızın ortaya koyduğu ve kasıtlı olarak göstermediği bilgiler
✓ Ortaya çıkarılan
Demetteki her giriş için karar; ihraç edeni (ACME, GitHub, AWS), hesap adını (alice@acme.com), algoritmayı (SHA1), basamak sayısını (6) ve türü (TOTP) gösterir. Kararın ifşası “Bu demetteki izinler: ACME / alice@acme.com; GitHub / bob@github; AWS / root; …” şeklinde okunur; böylece göç ortasında olan bir kullanıcı içe aktarmadan önce listeyi denetleyebilir.
Şema sürümü, toplu dizin, toplu boyut ve toplu kimlik de ortaya çıkarılır; bir dışa aktarma birden fazla QR'a bölündüğünde kullanışlıdır.
✗ Hiçbir zaman çözümlenmez
Ham secret baytları asla karar çıktısına çözümlenmez. Çözümleyicimiz bunları yalnızca her girişin iyi biçimlendirildiğini doğrulamak için okur (sır mevcut ve boş değil), ardından bulgular oluşturulmadan önce değeri atar.
Bu, test paketiyle doğrulanmıştır; çözümleyiciye sahte dizeler içeren el yapımı protobuf yükleri (SECRET_SEED_1, SECRET_SEED_2) besleriz ve bu dizelerin serileştirilmiş karar çıktısında hiçbir zaman görünmediğini doğrularız. Oradaki bir gerileme CI'yı başarısız kılar.
Ne zaman (ve nasıl) kullanılır
Meşru kullanım durumu: bir telefondan diğerine geçiş yapıyorsunuzdur. ESKİ telefon, göç QR'ını ekranında ~30 saniye gösterir. YENİ telefonun kimlik doğrulayıcı uygulaması ekrana yönlendirilir ve içe aktarır. Odada başka kimse yok. Her şeyin içe aktarıldığını onayladıktan sonra eski telefondan dışa aktarmayı silin.
Tehlike yüzeyleri şunlardır:
QR'ın ekran görüntüleri. Buluta senkronize fotoğraflara kaydedilen bir ekran görüntüsü, QR'ı o hesapla senkronize edilen her cihaza koyar.
QR'ı sohbet üzerinden paylaşmak. Kısa bir an bile olsa, sohbete erişimi olan herhangi biri (şimdi veya sonra) demeti çıkarabilir.
QR'ı bir yardım forumu iş parçacığına göndermek. Bu düşündüğünüzden daha sık olur; insanlar yardım ister ve yanlışlıkla kimlik doğrulayıcı dışa aktarma fotoğrafı paylaşır.
Kurulum QR'ları olarak yanlış tanımlanan genel posterler / tabelalar. Format görsel olarak tek hesaplı kurulum QR'ından ayırt edilemez.
Bir göç QR'ının ifşa edildiğinden şüpheleniyorsanız
Demetteki her hesap için kimlik bilgisi sızıntısı olarak değerlendirin. Sırasıyla kurtarma adımları:
Her etkilenen hizmete giriş yapın ve 2FA sırrını değiştirin. Çoğu hizmet bunu Hesap → Güvenlik → İki faktörlü kimlik doğrulama → Devre dışı bırak sonra yeniden kaydet altında yapmanıza olanak tanır.
Değiştirmeyi desteklemeyen hizmetler için (nadir ama var), hesabı kaldırıp yeniden ekleyin.
Her etkilenen hesaptaki son oturum açma etkinliğini denetleyin.
Orijinal dışa aktarma QR'ını bunu içerebilecek her cihazdan ve buluta senkronize fotoğraf kitaplığından silin.
Demete sahip bir saldırgan, siz her birini tek tek değiştirene kadar yıllarca geçerli 2FA kodları üretebilir. Ertelemeyin.
QR görüntüsünü tarayıcımıza bırakın, otpauth-migration:// URI'sini yapıştırın veya kamerayı kullanın. Karar, sırları hiçbir zaman çözümlemeden demetteki her hesabı gösterir.