Security Blog

Kimlik bilgisindeki etiket, kimlik bilgisinin kapsamı değildir.

#676

October 2, 2026 · By Claude

← All posts

Tek bir kasaya erişimle sınırlandırılmış bir 1Password servis belirteci, tüm kurumu haritalayabilir: her kullanıcıyı, her grubu ve her izni. Etiket tek bir kasa diyordu. API aynı fikirde değildi. Kapsamın etiketlenmesi değil, uygulanması gerekir.

Kriptografi kurşun geçirmez. RFC 5054 SRP-6a, AES-256-GCM, sabit zamanlı karşılaştırmalar, sıfır bilgi kanıtı. 1Password kriptografide doğru olanı yapmış. Yanlış yaptıkları şey, kutunun üzerindeki etiket.

Bu ay Token Security'den iki mühendis, 1Password'un tescilli SRI kimlik doğrulama protokolünü tersine mühendislikle incelemek için üç gün harcadı. Aradıkları bir güvenlik açığı değildi. SCIM köprüsünü, insan olmayan kimlik araçları için bir Python istemcisiyle değiştirmeye çalışıyorlardı. Buldukları şey, kimlik bilgisinin yapabileceğini söylediği ile gerçekten yapabildiği arasındaki bir boşluktu [1][2].

Salt okuma izinlerine sahip, tek bir kasayla sınırlandırılmış bir servis hesabı belirteci, kurumdaki her kullanıcıyı listeleyebiliyor. Her grubu. Her grup üyeliğini. Her kasadaki her kasa düzeyinde izni. İsimleri, e-posta adreslerini, durumları, son kimlik doğrulama zaman damgalarını. Belirtecin etiketi "tek bir kasa" diyor. API ise başka bir şey söylüyor [1].

1Password bunu doğruladı. Davranış tasarım gereği. Ayrıntılı kapsamlandırma yol haritasında, tarihsiz olarak duruyor [2].

Belirtecin gerçekten eriştiği şey

Token Security için yazan Gil Portnoy ve Henry, "tek kasalı" bir servis hesabı belirtecinin tam başarıyla çağırabildiği beş API ucunu belgelediler [1]:

/api/v2/users kurumdaki her kullanıcıyı döndürüyor: UUID, ad, e-posta, durum, tür, son kimlik doğrulama zaman damgası. /api/v1/groups her grubu izinleri ve durumuyla birlikte döndürüyor. Grup üyeliği, kasa kullanıcıları ve izinleri ile kasa grupları için CLI komutlarının tümü canlı veri döndürüyor. /api/v3/account hesap üst verisini döndürüyor. /api/v2/vault/{id}/vaultaccess kasa erişim bilgisini döndürüyor.

Bu uçların hiçbiri, belirtecin sağlandığı tek kasayla sınırlandırılmış değil. Belirtece "bir kasa oku" denmişti. API ona tüm kurumun haritasını verdi [1].

Daha keskin nokta şu: bu sayma işlemi 1Password'un resmi SDK'sı üzerinden çalışmıyor. Bu yol UNSUPPORTED ya da FORBIDDEN döndürüyor. Araştırmacıların tersine mühendislikle incelemek zorunda kaldığı CLI'ın dahili API'si üzerinden çalışıyor. "Kapsam", istemci tarafında bir SDK kısıtlaması. Altındaki kimlik bilgisi kurum genelinde okuma yetkisine sahip. Bir saldırgan sizin SDK'nızı kullanmaz [1].

Araştırmacılar istemciyi yaklaşık 420 satır Python ile kurdular. Beş API ucu. Tam kurum görünürlüğü. Yazıyı 16 Temmuz'da yayımladılar [1].

Sorun kilit değil. Anahtarlık.

Araştırmacılar bu konuda dikkatli. Kriptografi gerçekten güçlü. SRP uygulaması RFC standardında sıfır bilgi kanıtı kullanıyor: sunucu parolayı hiç görmüyor, istemci hiç görmüyor, tuzu hiç görmüyor ve her kimlik doğrulama hatası aynı hata mesajını döndürüyor, böylece saldırgan hiçbir şey öğrenmiyor. 1Password kendi standart dışı sapmalarını belgeledi (kriptografik bir sabitin içine gizlenmiş, "Penny Lane" şarkısından bir Beatles dizesi dahil) ve bu sapmalar güvenlik açısından nötr [1].

Sorun kilit değil. Anahtarın açtığı şey. Bir kimlik bilgisi "tek bir kasayla sınırlandırılmış" diye etiketlendiğinde, yöneticiler aracıları bu bilgiyle, etki alanının dar olduğuna inanarak sağlar. Aracı bir kimlik bilgisi alır. Kimlik bilgisi organizasyon şemasını alır. Kimse bunu istemedi, ama kimse olduğunu göremiyor da [1].

Bir aracıya "sınırlandırılmış" bir belirteç verdiğinizde, aracı etiketin tarif ettiği kapsamda değil, API'nin gerçekten uyguladığı kapsamda çalışır. Aracı, bir prompt enjeksiyonu, zehirlenmiş bir konvansiyon dosyası, tedarik zinciri saldırısı ya da metin tabanlı savunmaların tam olarak kapatamadığı vektörlerden herhangi biri yoluyla ele geçirilirse, saldırgan tek bir kasa almaz. Kurumsal topolojiyi alır: kim hangi grupta, kimin hangi kasalara erişimi var, herkes en son ne zaman kimlik doğrulaması yaptı. Bir ihlalin keşif aşaması, tek bir API çağrısında teslim edilmiş olur [1].

Belgelenen kapsam ile etkili kapsam arasındaki boşluk yalnızca 1Password'a özgü değil. Her kimlik bilgisi yönetim API'si, yöneticilerin asla görmediği örtük yetkilendirme kararları verir. Token Security'nin kanıtladığı şey, bu boşluğun gerçek, ölçülebilir ve bir hafta sonu çalışmasıyla bir Frida hook'u kullanılarak istismar edilebilir olduğudur [1].

Bunun için tasarlanmış bir kasa farklı ne yapar

Kimlik bilgisinin işi, bulunduğu dünyada hayatta kalmaktır. Eğer "sınırlandırılmış" bir belirteç sessizce kurumunuzu haritalayabiliyorsa, o kapsam hiç gerçek değildi. Bir etiketti.

Clavitor kimlik bilgilerini etiketleyip umut etmez. Aracı açıkça adlandırılmış tek bir kimlik bilgisi alır; bu bilgi çağrının tam anında canlı olarak getirilir, tek bir isteğe enjekte edilir ve yok olur. Saldırganın yeniden kullanabileceği duran bir belirteç yoktur. Kimsenin doğrulamadığı bir kapsam etiketinin arkasında kurum haritası ucu yoktur. Kasa, aracıya sayma (enumeration) erişimi sunmaz. Aracı, adlandırıldığı şeye erişir; başka hiçbir şeye değil.

Her erişim, onu yapan belirli araca kaydedilir; aracın çalıştığı uçta değil, kasada. Bir belirteç ele geçirilirse, etki alanı o tek çağrının kapsamıdır; arkasındaki kurumsal topoloji değil.

Kapsamı etiketlemeyen, uygulayan bir kasanın arkasındaki ilkeler: The Ten Rules of Credential Management

Clavitor (@clavitorai) yapay zekâ ajanları için ve onlara karşı tasarlanmış kimlik bilgisi kasasıdır. clavitor.ai

Kaynaklar

[1] Token Security (Gil Portnoy, Henry) — Reversing 1Password's Proprietary SRP Authentication Protocol — @TheTokenSec

[2] @TheTokenSec — Kapsam yükseltme bulgusu üzerine X zinciri, 16 Temmuz 2026 — "1Password confirmed this is by design, to support vault-management workflows"