Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-14.01

Identity, credential ve password authentication

Identity bir subject’i tanımlar; credential o iddiayı destekler. Password doğrulaması, session kurulması ve resource authorization birbirine bağlı ama ayrı kararlardır.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Authn + action izinli

  1. Account iddiası hazırlanır

    Identifier ve credential input’u yalnız alias ile temsil edilir; raw secret yok.

    Browser / Duru
    Account claim; no verified subject
    Application
    No request
    Trusted records
    Verifier alias + account/resource policy
  2. Login input’u Application’a ulaştı

    HTTPS request candidate input alias’ını taşır. Transport koruması supplied, TLS handshake simüle edilmez.

    Browser / Duru
    Waiting for decision
    Application
    Received identifier + candidate alias
    Trusted records
    Verifier alias + account/resource policy
  3. Local password verify sonucu

    Established verify API’nin sonucu bu fixture’da supplied boolean’dır; gerçek crypto veya record fetch wire yok.

    Browser / Duru
    Waiting for decision
    Application
    Verified: subject-duru
    Trusted records
    Verifier unchanged; account allowed
  4. Action/resource policy

    Verified subject bu action/resource ilişkisine izinli.

    Browser / Duru
    Waiting for decision
    Application
    ALLOW: read own note
    Trusted records
    Policy: no client-supplied authority
  5. Karar Browser’a ulaştı

    credentialMatches ve accountAllowed bu örnekte true; subject-duru için read own note action’ı allowed’dur. Application’ın hazırladığı private representation şimdi Browser’a ulaştı. Bu sonuç başka bir action’a izin vermez.

    Browser / Duru
    Own note delivered
    Application
    Response: accepted
    Trusted records
    Verifier unchanged; policy applied

Credential mismatch

  1. Account iddiası hazırlanır

    Identifier ve credential input’u yalnız alias ile temsil edilir; raw secret yok.

    Browser / Duru
    Account claim; no verified subject
    Application
    No request
    Trusted records
    Verifier alias + account/resource policy
  2. Login input’u Application’a ulaştı

    HTTPS request candidate input alias’ını taşır. Transport koruması supplied, TLS handshake simüle edilmez.

    Browser / Duru
    Waiting for decision
    Application
    Received identifier + candidate alias
    Trusted records
    Verifier alias + account/resource policy
  3. Local password verify sonucu

    Established verify API’nin sonucu bu fixture’da supplied boolean’dır; gerçek crypto veya record fetch wire yok.

    Browser / Duru
    Waiting for decision
    Application
    Credential mismatch; no subject
    Trusted records
    Verifier unchanged; account allowed
  4. Action/resource policy

    Credential doğrulanmadı; subject kurulmaz.

    Browser / Duru
    Waiting for decision
    Application
    DENY: credential failure
    Trusted records
    Policy: no client-supplied authority
  5. Karar Browser’a ulaştı

    Credential eşleşmediği için trusted subject kurulmadı; private representation hazırlanmadı. Browser’a generic ret sonucu ulaştı. İç karar credential failure’dır; bu, authenticated bir kullanıcının action izninin reddedilmesiyle aynı sonuç değildir.

    Browser / Duru
    No private representation
    Application
    Response: denied
    Trusted records
    Verifier unchanged; policy applied

Authn success, authz deny

  1. Account iddiası hazırlanır

    Identifier ve credential input’u yalnız alias ile temsil edilir; raw secret yok.

    Browser / Duru
    Account claim; no verified subject
    Application
    No request
    Trusted records
    Verifier alias + account/resource policy
  2. Login input’u Application’a ulaştı

    HTTPS request candidate input alias’ını taşır. Transport koruması supplied, TLS handshake simüle edilmez.

    Browser / Duru
    Waiting for decision
    Application
    Received identifier + candidate alias
    Trusted records
    Verifier alias + account/resource policy
  3. Local password verify sonucu

    Established verify API’nin sonucu bu fixture’da supplied boolean’dır; gerçek crypto veya record fetch wire yok.

    Browser / Duru
    Waiting for decision
    Application
    Verified: subject-duru
    Trusted records
    Verifier unchanged; account allowed
  4. Action/resource policy

    Subject doğrulandı; bu action için permission yok.

    Browser / Duru
    Waiting for decision
    Application
    DENY: action forbidden
    Trusted records
    Policy: no client-supplied authority
  5. Karar Browser’a ulaştı

    subject-duru doğrulandı, fakat change Atlas administration settings action’ı için izin verilmedi. Private representation hazırlanmadı; Browser’a ret sonucu ulaştı. Authentication başarısı eksik administration permission’ını oluşturmaz.

    Browser / Duru
    No private representation
    Application
    Response: denied
    Trusted records
    Verifier unchanged; policy applied

ROLLER · STATE · VERİ AKIŞI

Identity bir bağlam içindeki subject’tir

Duru görünen ad, duru.reader login identifier, subject-duru ise Atlas uygulamasının iç subject referansı olabilir. Bunların görevleri aynı değildir. Görünen ad değişebilir veya başka bir kullanıcıyla aynı olabilir; trusted authorization referansı yalnız görünen metne bağlanmamalıdır.

Digital identity, belirli bir service içindeki subject temsilidir. Password ile bir hesabın kontrolünü kanıtlamak, o hesabın gerçek hayattaki kişinin kimliğine bağlanmasının bütün adımlarını yaptığı anlamına gelmez. Identity proofing ve günlük authentication farklı sorulardır.

Credential identifier’dan farklıdır

Login identifier “hangi hesabı iddia ediyorum?” sorusunu çözer. Credential ise bu iddiayı desteklemek için kullanılan password, security token veya başka authenticator bilgisiyle ilgilidir. Duru’nun subject ID’sini bilmek password’ünü bildiğini göstermez.

Credential bir authorization listesi olmak zorunda değildir. Password tek başına “kitap notunu düzenleyebilir” iznini taşımaz; önce doğrulanır, sonra trusted subject context’i ile policy değerlendirilir. API key ve bearer token gibi farklı credential taşıma biçimleri sonraki derste ayrı incelenir.

Authentication ve authorization iki farklı karar

Authentication, sunulan authenticator’ın ilgili identity iddiasını yeterince destekleyip desteklemediğini değerlendirir. Authorization, trusted actor’ın belirli resource üzerinde belirli action’ı mevcut context’te yapıp yapamayacağını belirler.

Fixture’da Duru doğru credential ile authenticate olabilir ama Atlas yönetim ayarlarını değiştirme izni olmayabilir. Bu durumda password yeniden doğrulamak eksik permission’ı üretmez. Tersi de mümkündür: public kitap kapağını görmek için authorization policy anonim erişime izin verebilir; her allow için login zorunlu değildir.

Bir UI action’ı gizlemek authorization kararı değildir. Trusted server, gateway veya serverless boundary erişim koşullarını her request için uygulamalıdır. Identity, tenant, action ve resource ilişkisini client’tan gelen role string’i yerine trusted kaynaktan çöz.

Password saklama: plaintext değil verifier

Kayıt anında uygulama password’ü geri okunacak plaintext olarak saklamak yerine password hashing/KDF desteğiyle verifier üretir. Password’e özel, güncel ve maliyeti ayarlanabilir bir algoritma gerekir; sıradan hızlı SHA-256 digest’i password storage için yeterli seçim değildir.

Unique random salt, aynı password’ün farklı hesaplarda aynı verifier’a dönüşmesini önlemeye ve önceden hazırlanmış karşılaştırmaları etkisizleştirmeye yardım eder. Salt secret değildir; verifier record’uyla tutulabilir. Pepper kullanılırsa salt’tan farklı olarak verifier database dışında korunan ek secret’tır; bu dersin fixture’ı pepper modellemez.

OWASP Password Storage rehberi Argon2id gibi güncel seçenekleri ve platforma göre alternatifleri belirtir. Cost parametreleri algorithm ve ortam kapasitesine bağlıdır; çalışma yükü üzerinde benchmark yapmadan evrensel bir sayı önermemek gerekir. Established library’nin salt ve encoded metadata yönetimini kullan; kendi KDF formatını uydurma.

Login: decrypt etmeden doğrulama

Login request’i identifier ve password input’unu güçlü transport korumasıyla application’a ulaştırır. HTTPS/TLS in-transit gizlilik ve integrity sağlar; server’ın password saklama politikasını kendiliğinden düzeltmez. Login form’u ve authenticated sayfalar için transport sınırı birlikte düşünülür.

Application credential record’u çözer ve library verify API’sini kullanır. Library kayıtlı salt, algorithm ve cost metadata ile candidate’ı kontrol eder; password hash’i “decrypt ederek” password elde etmez. Account status ve tamamlanması gereken ek factor/policy koşulları da login acceptance’ın parçası olabilir.

Bu fixture tek-factor password authentication’ı öğretir. credentialMatches supplied bir boolean’dır; gerçek KDF çalıştırıldığı iddia edilmez. Başarılı doğrulama trusted subject-duru context’ini kurar. Yeni authenticated session ayrı session lifecycle primitive’iyle oluşturulur; password raw input’u audit log’a yazılmaz.

Credential lifecycle, yalnız ilk login değildir

Password değişimi ve recovery hesabın gelecekteki kontrolünü değiştirir. Aktif session tek başına hassas credential değiştirme için yeterli assurance sayılmayabilir; mevcut authenticator veya uygun reauthentication koşulu uygulanır. Password değişti diye bütün mevcut session ve token’ların sihirli biçimde invalid olduğunu varsayma; revocation policy gerekir.

Verifier cost profile zamanla yükseltilebilir. Başarılı verify sonrası library’nin rehash-needed sonucuyla güncel profile geçmek bir yaklaşımdır. Eski verifier’ı “decrypt” ederek yeni profile taşıyamazsın; password doğrulama sırasında candidate mevcutken güvenli yeniden hashing yapılır.

Generic login failure metni, bilinmeyen hesabı yanlış password’den ayıran gereksiz ipuçlarını azaltır. Response biçimi, code ve işlem davranışı birlikte değerlendirilir. Login throttling ve MFA ayrı savunmalardır; bu model attempt timing, lockout threshold veya factor coverage ölçmez.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Credential yanlış

  1. Credential kararı kapsamlandı

    Bu branch credentialMatches ve accountAllowed alanlarıyla başlar. Verifier ve salt artifact’te alias’tır; bu sahne gerçek password veya KDF hesabı yapmaz.

    Credential check
    Predicate incelenmedi
    Subject binding
    Subject kurulmadı
    Resource policy
    Resource verilmedi
  2. Match ve account koşulu ayrıldı

    credentialMatches=false ve accountAllowed=true olarak verilmiştir. Account policy, credential sonucuyla aynı alan değildir; ikisi gerektiğinde ayrı kontrol edilir.

    Credential check
    credentialMatches=false
    Subject binding
    Subject kurulmadı
    Resource policy
    Resource verilmedi
  3. Trusted subject sınırı uygulandı

    Credential mismatch nedeniyle subject=null kalır. Login identifier duru.reader’ın bilinmesi veya UI’da Duru yazması authenticated subject üretmez.

    Credential check
    Match=false
    Subject binding
    subject=null
    Resource policy
    Resource verilmedi
  4. İstenen action ayrı değerlendirildi

    Action read own note olarak seçilidir. Authenticated subject kurulamadığı için bu private note action’ı authorized=false kalır.

    Credential check
    Match=false
    Subject binding
    subject=null
    Resource policy
    authorized=false
  5. Resource teslimi durduruldu

    resourceDelivered=false sonucu bu branch’in olumsuz sınırıdır. Authentication başarısı bütün sensitive action’lara grant vermez; credential failure’da ise identity bile kurulmaz.

    Credential check
    Match=false
    Subject binding
    subject=null
    Resource policy
    resourceDelivered=false
  6. Reddin anlamı korundu

    Bu sonuç credential failure’dır; subject veya resource authority eklenmez. Salt ve cost profile alias’ları bu policy sonucuna gerçek cryptographic doğrulama kanıtı katmaz.

    Credential check
    Authn rejected
    Subject binding
    Trusted subject yok
    Resource policy
    Authz deny; delivery yok

Action yasak

  1. Credential kararı kapsamlandı

    Bu branch credentialMatches ve accountAllowed alanlarıyla başlar. Verifier ve salt artifact’te alias’tır; bu sahne gerçek password veya KDF hesabı yapmaz.

    Credential check
    Predicate incelenmedi
    Subject binding
    Subject kurulmadı
    Resource policy
    Resource verilmedi
  2. Match ve account koşulu ayrıldı

    credentialMatches=true ve accountAllowed=true olarak verilmiştir. Account policy, credential sonucuyla aynı alan değildir; ikisi gerektiğinde ayrı kontrol edilir.

    Credential check
    credentialMatches=true
    Subject binding
    Subject kurulmadı
    Resource policy
    Resource verilmedi
  3. Trusted subject sınırı uygulandı

    Credential match başarılı olduğu için subject-duru bağlanır. Display name Duru ile trusted subject aynı tür alan değildir; UI metninden identity kurulmaz.

    Credential check
    Match=true
    Subject binding
    subject-duru
    Resource policy
    Resource verilmedi
  4. İstenen action ayrı değerlendirildi

    Action change Atlas administration settings olarak seçilidir. Authenticated subject olsa da Atlas administration ayarı için authorized=false’tur.

    Credential check
    Match=true
    Subject binding
    subject-duru
    Resource policy
    authorized=false
  5. Resource teslimi durduruldu

    resourceDelivered=false sonucu bu branch’in olumsuz sınırıdır. Authentication başarısı bütün sensitive action’lara grant vermez; credential failure’da ise identity bile kurulmaz.

    Credential check
    Match=true
    Subject binding
    subject-duru
    Resource policy
    resourceDelivered=false
  6. Reddin anlamı korundu

    Bu sonuç authn success/authz deny’dır; login başarısız diye daraltmak hangi boundary’nin karar verdiğini gizler.

    Credential check
    Authn accepted
    Subject binding
    Trusted subject var
    Resource policy
    Authz deny; delivery yok

VARSAYIM · SINIR · KONTROL

Subject, credential ve permission’ı ayrı gözle

Defensive incelemede Duru adının UI’da görünmesini authenticated subject kanıtı sayma. Login acceptance, resolved subject ve resource decision ayrı evidence alanları olmalıdır. Credential failure’da subject kurulmadığını; authn success/authz deny durumunda subject kurulsa da resource verilmediğini izle.

Modelin credential mismatch branch’i supplied predicate false sonucunun decision’a etkisini gösterir. Başarılı predicate ise bütün sensitive action’ların otomatik izinli olduğu anlamına gelmez.

Verifier’ın koruduğu boundary’yi doğru yorumla

Salt ve slow hashing, verifier database disclosure riskini azaltır; weak password, credential reuse veya authenticated session disclosure gibi bütün riskleri çözmez. Salt’ı gizlemeyi password security’nin temel şartı gibi sunma.

Bir frontend secret veya browser-readable verifier kopyası, server tarafında tutulması gereken credential materyalini geniş bir trust boundary’ye yayabilir. Review’de kayıtların, backup’ların, recovery path’in ve logs’un gereksiz credential içermemesini kontrol et.

3. Blue · Güvenli geliştirme ve savunma

Hareket olmadan bütün senaryoları oku

Tam decision

  1. Observation kapsamı seçildi

    Bu branch normal satırın credential, subject, action ve delivery alanlarını birlikte inceler. Eksik alanlar başarılı sonuçlarla doldurulmaz.

    Decision observation
    normal decision: tam satır
    Boundary eşleştirme
    Boundary eşleştirilmedi
    Integrity hükmü
    Delivery bilinmiyor
  2. Credential ve account sonucu okundu

    credentialMatches=true ve accountAllowed=true olarak verilmiştir. Observation raw password, verifier veya salt byte’ları taşımaz; gereksiz credential kopyası gerekmez.

    Decision observation
    normal decision: tam satır
    Boundary eşleştirme
    Match ve account allowed
    Integrity hükmü
    Delivery bilinmiyor
  3. Resolved subject ilişkilendirildi

    subject=subject-duru kaydı identity sonucunu gösterir. DisplayName Duru ve loginIdentifier duru.reader ayrı roller taşır; metin eşitliği permission kanıtına dönüştürülmez.

    Decision observation
    normal decision: tam satır
    Boundary eşleştirme
    Resolved subject: subject-duru
    Integrity hükmü
    Delivery bilinmiyor
  4. Action kanıtı ayrı arandı

    Tam satır action=read own note ve authorized=true gösterir. Bu grant yalnız seçilen action’a aittir; administration yetkisine genişletilmez.

    Decision observation
    normal decision: tam satır
    Boundary eşleştirme
    Authz: own note allowed
    Integrity hükmü
    Delivery bilinmiyor
  5. Delivery alanı karşılaştırıldı

    resourceDelivered=true tam satırda kayıtlıdır. Bu alanla iki önceki gate arasında tutarlılık aranır; HTTP status veya gerçek browser görüntüsü eklenmez.

    Decision observation
    normal decision: tam satır
    Boundary eşleştirme
    Authn+authz biliniyor
    Integrity hükmü
    Delivery=true
  6. Integrity hükmü kapsamlandı

    Ana selector iki gate’den biri false iken delivered true satırı arar ve 0 verir. Bu complete satır uyumludur; gerçek password performansı veya timing güvenliği bundan ölçülmez.

    Decision observation
    normal decision: tam satır
    Boundary eşleştirme
    Decision uyumlu
    Integrity hükmü
    Matrix integrity uyumlu

Action kanıtı yok

  1. Observation kapsamı seçildi

    Bu branch normal satırın yalnız credential ve subject alanlarını inceler. Eksik alanlar başarılı sonuçlarla doldurulmaz.

    Decision observation
    normal decision: authn prefix incelemesi
    Boundary eşleştirme
    Boundary eşleştirilmedi
    Integrity hükmü
    Delivery bilinmiyor
  2. Credential ve account sonucu okundu

    credentialMatches=true ve accountAllowed=true olarak verilmiştir. Observation raw password, verifier veya salt byte’ları taşımaz; gereksiz credential kopyası gerekmez.

    Decision observation
    normal decision: authn prefix incelemesi
    Boundary eşleştirme
    Match ve account allowed
    Integrity hükmü
    Delivery bilinmiyor
  3. Resolved subject ilişkilendirildi

    subject=subject-duru kaydı identity sonucunu gösterir. DisplayName Duru ve loginIdentifier duru.reader ayrı roller taşır; metin eşitliği permission kanıtına dönüştürülmez.

    Decision observation
    normal decision: authn prefix incelemesi
    Boundary eşleştirme
    Resolved subject: subject-duru
    Integrity hükmü
    Delivery bilinmiyor
  4. Action kanıtı ayrı arandı

    Bu prefix’te action authorization sonucu okunmaz. Authenticated subject’in bulunması object veya sensitive action sonucunu tamamlamaz.

    Decision observation
    normal decision: authn prefix incelemesi
    Boundary eşleştirme
    Authz kanıtı eksik
    Integrity hükmü
    Delivery bilinmiyor
  5. Delivery alanı karşılaştırıldı

    Delivery alanı bu kapsamın dışındadır. Resource verildi veya verilmedi diye kesin hüküm kurulmaz; ayrı delivery kaydı gerekir.

    Decision observation
    normal decision: authn prefix incelemesi
    Boundary eşleştirme
    Yalnız authn biliniyor
    Integrity hükmü
    UNKNOWN: delivery
  6. Integrity hükmü kapsamlandı

    Authn prefix’i ile bütün integrity predicate’i değerlendirilmez. Action ve delivery eksikliği bir leak kanıtı değildir; eksik kanıt olarak korunur.

    Decision observation
    normal decision: authn prefix incelemesi
    Boundary eşleştirme
    Action kanıtı gerekir
    Integrity hükmü
    UNKNOWN: resource outcome

UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA

Verified subject sonrası resource policy uygula

Authentication component’in sonucu explicit subject ve assurance context olmalıdır. Downstream policy action/resource/tenant ilişkisini trusted verilerle değerlendirir; username veya displayName eşleşmesini permission yerine kullanmaz.

Public resource için anonymous allow gerekçesini, private resource için gerekli subject ve permission koşullarını ayrı tanımla. Bu iki ürün akışı aynı password zorunluluğuyla yönetilmek zorunda değildir.

Password handling’i library boundary’sinde tut

Established password-hash verify API, unique salt, recorded algorithm/cost metadata ve gerektiğinde rehash akışını kullan. Production parametrelerini güncel rehber ve workload ölçümüyle seç; bu dersin cost-profile alias’ını configuration olarak kopyalama.

Input handling, generic failure, throttling, MFA ve secure recovery password hash’in dışında kalan savunmalardır. Kendi timing veya KDF primitive’ini yazmak yerine framework/library davranışını ve hata sınırlarını doğrula.

Audit’te decision kalsın, credential kalmasın

Credential match sonucu, resolved subject alias’ı, account policy sonucu ve action decision’ı gözlem için yeterli olabilir. Raw password, verifier ve session secret yazmak gerekli değildir. Hash profile upgrade’i de credential içermeyen bir policy olayına bağlanabilir.

Sentetik matrix’te üç sonuç vardır: authn+authz başarı, credential failure ve authn başarı/authz deny. Bunları tek “login failed” satırına indirgemek sistemin hangi boundary’de karar verdiğini gizler; public response ve internal audit ayrımı ayrıca korunur.

ŞİMDİ VAKAYA UYGULA

Credential doğrulaması hangi action’ı otomatik izinli yapmaz?

Duru adı, credential sonucu, trusted subject ve resource policy farklı alanlardır. Olumsuz decision ve eksik observation birbirine karıştırılmaz.

Vakadaki doğrulanmış actor, tenant ilişkisi ve requested action için gereken kararları ayır. Authentication veya proof başarısını object permission yerine kullanma.

Bağlı vaka dosyasını aç ↗

ÖRNEĞİ BİRLİKTE OKUYALIM

Identity ve authentication decision matrix

Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.

Ham kaydı ve alan açıklamalarını oku
{
  "identity": {
    "displayName": "Duru",
    "loginIdentifier": "duru.reader",
    "trustedSubject": "subject-duru",
    "tenant": "Atlas"
  },
  "credentialRecord": {
    "verifier": "VERIFIER_ALIAS_ONLY_NOT_A_HASH",
    "salt": "UNIQUE_SALT_ALIAS_NOT_RANDOM_BYTES",
    "algorithmClass": "password-specific adaptive KDF",
    "costProfile": "LIBRARY_PROFILE_ALIAS_NOT_PARAMETERS",
    "plaintextStored": false
  },
  "cases": [
    {
      "case": "normal",
      "credentialMatches": true,
      "accountAllowed": true,
      "subject": "subject-duru",
      "action": "read own note",
      "authorized": true,
      "resourceDelivered": true
    },
    {
      "case": "wrong-credential",
      "credentialMatches": false,
      "accountAllowed": true,
      "subject": null,
      "action": "read own note",
      "authorized": false,
      "resourceDelivered": false
    },
    {
      "case": "authenticated-forbidden",
      "credentialMatches": true,
      "accountAllowed": true,
      "subject": "subject-duru",
      "action": "change Atlas administration settings",
      "authorized": false,
      "resourceDelivered": false
    }
  ],
  "selector": {
    "xml": "<authentication><decision case=\"normal\" authenticated=\"true\" authorized=\"true\" delivered=\"true\"/><decision case=\"wrong-credential\" authenticated=\"false\" authorized=\"false\" delivered=\"false\"/><decision case=\"authenticated-forbidden\" authenticated=\"true\" authorized=\"false\" delivered=\"false\"/></authentication>",
    "xpath": "count(/authentication/decision[@delivered=\"true\" and (@authenticated!=\"true\" or @authorized!=\"true\")])",
    "expected": 0,
    "positiveFixtureXml": "<authentication><decision authenticated=\"true\" authorized=\"false\" delivered=\"true\"/></authentication>",
    "positiveExpected": 1
  }
}
loginIdentifier / trustedSubject
İddia edilen account ile successful verify sonrası kurulan trusted subject farklıdır.
credentialRecord
Salt/verifier/cost alanlarının anlamını gösteren alias record; gerçek hashing formatı değildir.
credentialMatches / authorized
Authentication predicate ile resource policy sonucunu ayrı tutar.
resourceDelivered
Yalnız gerekli authn ve authz koşulları geçince private representation verilir.

Single-factor conceptual fixture. credentialMatches ve accountAllowed supplied input’tur; password, KDF, MFA, timing veya gerçek login endpoint’i çalıştırılmadı. Alias record production configuration değildir.

İki yanlış kanı

Doğru password, identity’nin gerçek kişiye doğrulandığını ve her resource’a izin verildiğini kanıtlar.

Authentication account iddiasını destekler; identity proofing ve action/resource authorization ayrı süreçlerdir.

Password hash login’de decrypt edilir; salt gizli kaldığı için güvenlidir.

Verify API candidate’ı salt/algorithm/cost metadata ile kontrol eder; decrypt yapılmaz. Salt secret değildir, uygun password KDF ve credential lifecycle gerekir.

SIRA SENDE

Bu hikâyeyi sen çöz.

Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.

Credential eşleşiyor, fakat action Atlas admin settings. Subject’in kurulması resource delivery için yeterli mi?

  1. Evet. Password verification bütün action’ları açar.
  2. Hayır. authenticated-forbidden sonucunda authorized=false.
Gerekçeli cevabı oku

Hayır. authenticated-forbidden sonucunda authorized=false. — Güvenilen subject kurulabilir, fakat bu subject’e administration action izni verilmemiştir.

Verifier ve salt alias’ları, gerçek password hash güvenliğinin ölçüldüğünü gösterir mi?

Dersten seçilen artifact alanları; öğretim örneği

credentialRecord
{"verifier":"VERIFIER_ALIAS_ONLY_NOT_A_HASH","salt":"UNIQUE_SALT_ALIAS_NOT_RANDOM_BYTES","algorithmClass":"password-specific adaptive KDF","costProfile":"LIBRARY_PROFILE_ALIAS_NOT_PARAMETERS","plaintextStored":false}
  1. Hayır. Gerçek hash, random byte ve parametreler burada yok.
  2. Evet. Salt alias, random generation ve cost calibration kanıtıdır.
Gerekçeli cevabı oku

Hayır. Gerçek hash, random byte ve parametreler burada yok. — Password-specific adaptive KDF’in rolü anlatılır; costProfile yalnız LIBRARY_PROFILE_ALIAS_NOT_PARAMETERS etiketidir.

loginIdentifier=duru.reader, displayName=Duru ve trustedSubject=subject-duru hangi ayrı işleri yapar?

Gerekçeli cevabı oku

displayName UI etiketidir. loginIdentifier credential lookup sırasında account’ı seçebilir. trustedSubject ise başarılı verification ve policy değerlendirmesi sonrasında kurulan principal’dır. Aynı display name iki kimliği birleştirmez. Verifier saklama modeli de geri okunabilen password plaintext’iyle eşitlenmez.

□ Display name, lookup identifier ve principal rollerini ayırdım.

□ Verifier’ı geri okunabilir password plaintext’i olarak anlatmadım.

Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç

Kaynaklar ve kapsam