Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-03.04

Domain sınırları ve resolver seçenekleri

DNS view ve encrypted resolver seçimini browser origin/site sınırından ayır.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Public view / DoH

  1. URL ve resolver context hazır

    IP adayı henüz yok. Kanal kurulmuş kabul edilir; TLS veya bootstrap yeniden oynatılmaz.

    Client ve URL
    https://notes.example.org/book; awaiting A
    Seçilmiş resolver
    DoH; HTTPS; warm authenticated
    View verisi
    public view; A=198.51.100.200
  2. DNS query arrival

    Query seçilmiş authenticated kanal üzerinden resolver’a ulaştı; view lookup local’dir.

    Client ve URL
    https://notes.example.org/book; awaiting A
    Seçilmiş resolver
    query received: notes.example.org A; DoH; HTTPS
    View verisi
    public view; A=198.51.100.200
  3. Local view seçimi

    Policy context seçilmiş view’ı belirler. View verisi ayrı storage sorgusu diye çizilmez.

    Client ve URL
    https://notes.example.org/book; awaiting A
    Seçilmiş resolver
    public selected locally; A=198.51.100.200; TTL=120
    View verisi
    public view; A=198.51.100.200
  4. DNS answer arrival

    Cevap client’a ulaştı; bu TCP/TLS/HTTP uygulama başarısı değildir.

    Client ve URL
    notes.example.org A=198.51.100.200; TTL=120
    Seçilmiş resolver
    public selected locally; A=198.51.100.200; TTL=120
    View verisi
    public view; A=198.51.100.200
  5. Local candidate context

    URL origin korunur; candidate hazır. DNS sonrası server identity ve uygulama sonuçları hâlâ bu modelin dışında.

    Client ve URL
    origin=https://notes.example.org; candidate=198.51.100.200; server identity not checked
    Seçilmiş resolver
    public selected locally; A=198.51.100.200; TTL=120
    View verisi
    public view; A=198.51.100.200

Employee view / DoT strict

  1. URL ve resolver context hazır

    IP adayı henüz yok. Kanal kurulmuş kabul edilir; TLS veya bootstrap yeniden oynatılmaz.

    Client ve URL
    https://notes.example.org/book; awaiting A
    Seçilmiş resolver
    DoT strict; TCP 853; warm authenticated
    View verisi
    employee view; A=192.0.2.40
  2. DNS query arrival

    Query seçilmiş authenticated kanal üzerinden resolver’a ulaştı; view lookup local’dir.

    Client ve URL
    https://notes.example.org/book; awaiting A
    Seçilmiş resolver
    query received: notes.example.org A; DoT strict; TCP 853
    View verisi
    employee view; A=192.0.2.40
  3. Local view seçimi

    Policy context seçilmiş view’ı belirler. View verisi ayrı storage sorgusu diye çizilmez.

    Client ve URL
    https://notes.example.org/book; awaiting A
    Seçilmiş resolver
    employee selected locally; A=192.0.2.40; TTL=120
    View verisi
    employee view; A=192.0.2.40
  4. DNS answer arrival

    Cevap client’a ulaştı; bu TCP/TLS/HTTP uygulama başarısı değildir.

    Client ve URL
    notes.example.org A=192.0.2.40; TTL=120
    Seçilmiş resolver
    employee selected locally; A=192.0.2.40; TTL=120
    View verisi
    employee view; A=192.0.2.40
  5. Local candidate context

    URL origin korunur; candidate hazır. DNS sonrası server identity ve uygulama sonuçları hâlâ bu modelin dışında.

    Client ve URL
    origin=https://notes.example.org; candidate=192.0.2.40; server identity not checked
    Seçilmiş resolver
    employee selected locally; A=192.0.2.40; TTL=120
    View verisi
    employee view; A=192.0.2.40

Shared IP, farklı origin

  1. URL ve resolver context hazır

    IP adayı henüz yok. Kanal kurulmuş kabul edilir; TLS veya bootstrap yeniden oynatılmaz.

    Client ve URL
    https://api.example.org/book; awaiting A
    Seçilmiş resolver
    DoH; HTTPS; warm authenticated
    View verisi
    public view; A=198.51.100.200
  2. DNS query arrival

    Query seçilmiş authenticated kanal üzerinden resolver’a ulaştı; view lookup local’dir.

    Client ve URL
    https://api.example.org/book; awaiting A
    Seçilmiş resolver
    query received: api.example.org A; DoH; HTTPS
    View verisi
    public view; A=198.51.100.200
  3. Local view seçimi

    Policy context seçilmiş view’ı belirler. View verisi ayrı storage sorgusu diye çizilmez.

    Client ve URL
    https://api.example.org/book; awaiting A
    Seçilmiş resolver
    public selected locally; A=198.51.100.200; TTL=120
    View verisi
    public view; A=198.51.100.200
  4. DNS answer arrival

    Cevap client’a ulaştı; bu TCP/TLS/HTTP uygulama başarısı değildir.

    Client ve URL
    api.example.org A=198.51.100.200; TTL=120
    Seçilmiş resolver
    public selected locally; A=198.51.100.200; TTL=120
    View verisi
    public view; A=198.51.100.200
  5. Local candidate context

    Aynı IP’ye rağmen api host’u farklı origin’dir. Candidate seçimi browser boundary’yi genişletmez.

    Client ve URL
    origin=https://api.example.org; candidate=198.51.100.200; server identity not checked
    Seçilmiş resolver
    public selected locally; A=198.51.100.200; TTL=120
    View verisi
    public view; A=198.51.100.200

Strict kanal yok

  1. Strict profile seçildi

    Authenticated kanal kurulmamış; bootstrap/authentication context seçilmiş fakat kullanılabilir service yok.

    Client ve URL
    notes.example.org; candidate absent
    Seçilmiş resolver
    DoT strict; channel unavailable
    View verisi
    employee view data not consulted
  2. Query öncesinde local stop

    Strict Privacy aynı query’yi plaintext’e düşürmez. Cevap veya endpoint success uydurulmaz.

    Client ve URL
    no DNS query sent; no answer
    Seçilmiş resolver
    DoT strict; channel unavailable
    View verisi
    employee view data not consulted

ROLLER · STATE · VERİ AKIŞI

Public suffix, son noktadan sonrası demek değildir

Public suffix, kayıtların altında ayrılabildiği ve dış bir listeyle belirlenen name kapsamıdır; her zaman tek label değildir. Registrable domain, seçilen suffix ile hemen önceki label’ı birleştirir. Örnekte yalnız org kuralını seçiyoruz: notes.example.org için suffix org, registrable domain example.org. Bu, tam PSL parser veya güncel liste snapshot’ı değildir.

PSL browser’ların belirli domain gruplamalarında kullandığı güncellenen bir girdidir. Listede bir name görmek DNS’te mevcut olduğunu, kim tarafından işletildiğini ya da güvenilir olduğunu kanıtlamaz. Nokta sayarak “son iki label her zaman aynı kurum” kuralı kurma; kayıt, DNS authority ve uygulama yetkisi ayrı ilişkilerdir.

Domain, site ve origin farklı sorular sorar

Burada HTTP(S) URL origin’ini scheme, host ve effective port ile karşılaştırıyoruz. Path’in değişmesi origin’i değiştirmez; api.example.org veya :8443 değişimi değiştirir. Bu örnekte browser site hesabı scheme ile registrable domain’i kullanır: iki https subdomain aynı site ama farklı origin olabilir. Port bu site hesabında yer almaz.

http ile https aynı registrable domain üzerinde olsa da bu schemeful site hesabında ayrılır. Artifact ordinary ASCII domain URL’leriyle sınırlıdır; opaque origin, IP host ve IDNA uç durumlarını genellemez. Aynı site sonucunu aynı origin erişim izni yerine kullanma. Bir DNS zone sınırı da bu browser tuple’ına eşit değildir.

Split-horizon: aynı query, seçilen başka view

Split DNS, query’nin kaynağı veya başka policy özelliklerine göre farklı cevap üreten view’ları anlatır. Seçilmiş fixture public view’da notes.example.org A=198.51.100.200, employee view’da A=192.0.2.40 döndürür. İki adres de documentation adresidir; employee adı gerçek iç ağa bağlandığımız anlamına gelmez.

URL host aynı kaldığı için yalnız IP cevabının değişmesi origin tuple’ını değiştirmez. Resolver seçimi, view policy ve cache kapsamı birlikte sonucu etkiler. Browser’ın DoH resolver’ı ile işletim sisteminin resolver’ı aynı olmak zorunda değildir; fakat hangi resolver’ın gerçekten kullanıldığını bu inert sahne ölçmez. View seçimi kimlik doğrulama veya application authorization yerine geçmez.

DoH ve DoT aynı query’yi farklı taşıyabilir

DoH, DNS query/response mesajlarını HTTPS exchange içinde taşır; DoT TLS üzerinden, varsayılan olarak TCP 853’te DNS taşır. DoT için port ancak tarafların başka bir port üzerinde anlaşmasıyla değişir; TCP 53’te plaintext DNS ile aynı kanal değildir. Bu örneğin normal dalları önceden kurulmuş ve authenticated kanalı kullanır; her query için yeni TCP/TLS handshake çizilmez.

DoT adı tek başına bütün privacy profile’larında başarılı server authentication sözü vermez. Örnekte RFC 8310 Strict Privacy seçilmiştir: gerekli authenticated encrypted kanal yoksa aynı query için sessiz plaintext fallback yapılmaz. DoH endpoint’inin hostname’i için bootstrap adresi/context’i ayrıca sağlanmıştır; resolver’a ulaşmak için gereken adresi yalnız henüz ulaşılamayan resolver’dan öğrenen döngü kurmayız.

Şifreli hop’un karşı tarafı soruyu hâlâ görür

DoH/DoT client ile seçilmiş resolver arasındaki taşıma kapsamını korur; resolver DNS name’i işlemek için soruyu görür. Resolver’ın authoritative server’lara giden bütün yollarının aynı şekilde encrypted olduğunu bu seçimden çıkaramazsın. DNSSEC validation da bu transport adlarının otomatik sonucu değildir.

Resolver’ın kim olduğu ve hangi view’ı uyguladığı, transport encryption’dan ayrı güven kararıdır. Artifact yalnız seçilmiş authenticated kanal koşulunu ve görünürlük sınırını gösterir; gerçek certificate, packet, erişim policy’si veya resolver telemetry’si üretmez. HTTPS’in varlığı doğru DNS cevabı ya da doğru uygulama tenant’ı sonucunu tek başına vermez.

DNS adresi seçer; backend kimliğini kanıtlamaz

A/AAAA cevabı network endpoint adayı verir. Adreste CDN, reverse proxy, load balancer veya birden çok HTTP host bulunabilir; DNS’in gördüğü endpoint ile içteki uygulama server’ı aynı makine olmak zorunda değildir. notes.example.org ile api.example.org aynı 198.51.100.200 adresini kullansa bile URL origin’leri farklıdır.

HTTPS client hâlâ URL host’una uygun server identity kontrolüne; HTTP routing ise request authority bilgisine ihtiyaç duyar. Örnekte reference identity ve authority notes.example.org olarak kalır; IP seçimi bunları kendiliğinden yeniden yazmaz. Scene DNS sonucu sonrası candidate context’i hazırlar; bağlantı, TLS doğrulaması ve HTTP handler başarısını olmuş gibi göstermez.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Shared IP

  1. İstenen koruma scope’u seçildi

    notes.example.org ve api.example.org aynı 198.51.100.200 address’ini paylaşır. Network yerleşimi origin eşitliği değildir.

    Context evidence
    Same IP / different hosts
    Boundary gate
    Boundary gate yok
    Outcome review
    Outcome yok
  2. Yanlış güven genişlemesi durduruldu

    Origin scheme/host/effectivePort üzerinden değerlendirilir. İki host sameSite=https://example.org olabilir, ancak sameOrigin=false kalır.

    Context evidence
    Same IP / different hosts
    Boundary gate
    sameSite=true / sameOrigin=false
    Outcome review
    Outcome yok
  3. Sınır sonucu korunuyor

    Shared IP’den api host’una notes origin hakkı aktarılmaz. Registrable domain veya suffix ilişkisi de application resource permission sağlamaz.

    Context evidence
    Same IP / different hosts
    Boundary gate
    sameSite=true / sameOrigin=false
    Outcome review
    Origin grant not inferred
  4. Resolver view kararı saklandı

    Public view 198.51.100.200, employee view 192.0.2.40 verir. Aynı QNAME için farklı context normal olabilir; address seçimi backend veya tenant sahipliği kanıtı değildir.

    Context evidence
    Public / employee views ayrı
    Boundary gate
    sameSite=true / sameOrigin=false
    Outcome review
    Origin grant not inferred
  5. Encryption farklı iddiayı kapatmaz

    DoH/DoT serverAuthenticated seçilmiş channel koşuludur; DNS question resolver’a görünür. dnssecValidationClaimed=false korunur ve HTTPS application reference identity ayrıca gerekir.

    Context evidence
    Public / employee views ayrı
    Boundary gate
    Channel auth ≠ DNSSEC / app auth
    Outcome review
    Origin grant not inferred
  6. Context gate regression’ı bitti

    Origin/site/IP sınırları ayrılmıştır; host notes.example.org HTTP authority ve TLS reference identity olarak korunur. ActualConnectOrCertificateCheck not-executed kalır.

    Context evidence
    Public / employee views ayrı
    Boundary gate
    Channel auth ≠ DNSSEC / app auth
    Outcome review
    Same IP ≠ same origin; identity ayrı

Strict kanal yok

  1. İstenen koruma scope’u seçildi

    strict-unavailable DoT Strict Privacy profilidir; channelAlreadyEstablished=false ve serverAuthenticated=false verilir. Profil korunmadan query gönderilemez.

    Context evidence
    DoT / Strict Privacy
    Boundary gate
    Boundary gate yok
    Outcome review
    Outcome yok
  2. Yanlış güven genişlemesi durduruldu

    fallbackToCleartextForThisQuery=false ve dnsQuerySent=false’dur. Şifreli channel kurulamayınca sessiz cleartext fallback eklemek bu verilen profile aykırıdır.

    Context evidence
    DoT / Strict Privacy
    Boundary gate
    Query withheld / no fallback
    Outcome review
    Outcome yok
  3. Sınır sonucu korunuyor

    answer=null bu branch’in açık sonucudur. Resolver veya endpoint başarılı kabul state’ine geçirilmez; channel failure application server’ın yetki reddi değildir.

    Context evidence
    DoT / Strict Privacy
    Boundary gate
    Query withheld / no fallback
    Outcome review
    No query / answer=null
  4. Resolver view kararı saklandı

    Employee view’da 192.0.2.40 adresi tanımlı olsa da bu dal view lookup’a ulaşmaz: dnsQuerySent=false ve answer=null kalır. Yapılandırılmış bir cevabın varlığını, resolver’dan alınmış cevap gibi application’a taşıma.

    Context evidence
    Employee view okunmadı
    Boundary gate
    Query withheld / no fallback
    Outcome review
    No query / answer=null
  5. Encryption farklı iddiayı kapatmaz

    ServerAuthenticated=false olduğundan gerekli authenticated channel yoktur. Query resolver’a gönderilmemiştir; bu işlemde sorunun resolver tarafından görüldüğü veya DNSSEC ile doğrulandığı sonucu da yoktur. Authentication sağlanmadan normal kanal dalının bilgisini bu failure dalına taşıma.

    Context evidence
    Employee view okunmadı
    Boundary gate
    Channel auth yok; query gönderilmedi
    Outcome review
    No query / answer=null
  6. Context gate regression’ı bitti

    Strict query withholding korunmuştur; gerçek DoT handshake veya fallback timing ölçülmemiştir. Availability kaybını protection profile değişimiyle gizleme.

    Context evidence
    Employee view okunmadı
    Boundary gate
    Channel auth yok; query gönderilmedi
    Outcome review
    Strict sınır korundu; cevap yok

VARSAYIM · SINIR · KONTROL

Kırılan varsayım: aynı IP aynı origin’dir

IP adresini erişim yetkisi için URL origin yerine kullanan uygulama, aynı endpoint üzerinde farklı host’ları bir güven kapsamına toplayabilir. Gerekli koşul scheme/host/port karşılaştırmasının kaybolmasıdır. Shared IP yalnız network yerleşimi hakkında bilgi verir.

Kontrol doğru URL/origin ve application resource sınırını ayrı tutmaktır. Suffix veya same-site sonucu da bu origin karşılaştırmasını otomatik genişletmez.

Kırılan varsayım: resolver view evrenseldir

Employee view’daki cevap public resolver’da bulunmayabilir; farklı query context’leri farklı endpoint seçebilir. Context veya cache view ayrımı kaybolduğunda yanlış adres ya da beklenmeyen erişim kesintisi görülebilir. Bu durum bir name’in bütün ağlarda aynı cevabı vermesi gerektiği varsayımını bozar.

Savunma hangi resolver, view ve query tuple’ının kullanıldığını belirlemektir. DNS cevabının varlığı uygulama policy’sini geçmek için izin değildir; bu ders view ayrımını dış sistemlere sorgu göndererek araştırmaz.

Kırılan varsayım: encryption her güven kararını çözer

Şifreli kanal yanlış seçilmiş resolver’a da kurulabilir; resolver soruyu görür ve kendi policy’siyle yanıtlar. Strict Privacy gereksinimiyle sessiz cleartext fallback’i karıştırmak seçilmiş koruma seviyesini kaybettirir. Authentication context ve fallback koşulları belirleyicidir.

Kontrol endpoint kimliğini ve profil kararını açık kaydetmek, resolver transport’u ile DNSSEC ve HTTPS uygulama identity’sini ayrı değerlendirmektir. Fixture başarısız kanal dalında query veya başarılı answer üretmez.

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

Hareket olmadan bütün senaryoları oku

URL boundary

  1. Base origin açıkça kuruldu

    Base URL https://notes.example.org/book için origin https://notes.example.org, effective port ise 443’tür. Path’i /other yapmak same-origin kalır. Host veya port değişikliği farklı bir tuple component’ini etkiler.

    URL / view evidence
    https / notes / 443
    Scope comparison
    Comparison yok
    Endpoint evidence review
    Evidence verdict yok
  2. Scope matrisi yeniden karşılaştırıldı

    https api host’u ve notes:8443 cross-origin ancak same-site; http notes hem cross-origin hem schemeful cross-site’dır. seçilmiş org suffix kuralı tam PSL snapshot veya ownership kanıtı değildir.

    URL / view evidence
    https / notes / 443
    Scope comparison
    Path / host / port / scheme ayrı
    Endpoint evidence review
    Evidence verdict yok
  3. View ile answer birlikte etiketlendi

    sharedAddress.sameAddress=true, sameOrigin=false olarak verilmiştir. Address eşitliği URL matrix sonucunu değiştirmez.

    URL / view evidence
    sameAddress=true / origin=false
    Scope comparison
    Path / host / port / scheme ayrı
    Endpoint evidence review
    Evidence verdict yok
  4. Channel sonucu ayrı kanıttır

    public-doh ve employee-dot sıcak authenticated channel varsayımı taşır. Strict-unavailable query göndermeden durur; DNSSEC validation veya yeni handshake başarısı bu verilmiş koşullardan ölçülmez.

    URL / view evidence
    sameAddress=true / origin=false
    Scope comparison
    Channel supplied / query withheld branch
    Endpoint evidence review
    Evidence verdict yok
  5. Endpoint iddiası gereğinden genişlemedi

    seçilmiş IP, URL host, HTTP authority ve tlsReferenceIdentity ayrı alanlardır. DNS candidate’ın hazırlanması gerçek connect/certificate acceptance/body delivery kanıtı değildir.

    URL / view evidence
    sameAddress=true / origin=false
    Scope comparison
    Channel supplied / query withheld branch
    Endpoint evidence review
    UNKNOWN: connect/certificate
  6. Regression farklılıkları korudu

    Shared address, split view ve strict failure ayrı normal/negative controls’dür. Kaynak identity, URL origin ve DNS transport scope’ları birbirine aktarılmadan değerlendirilir.

    URL / view evidence
    sameAddress=true / origin=false
    Scope comparison
    Channel supplied / query withheld branch
    Endpoint evidence review
    Scope’lar ayrı; connect/certificate bilinmiyor

Resolver views

  1. Base origin açıkça kuruldu

    Base URL https://notes.example.org/book için origin https://notes.example.org, effective port ise 443’tür. Path’i /other yapmak same-origin kalır. Host veya port değişikliği farklı bir tuple component’ini etkiler.

    URL / view evidence
    https / notes / 443
    Scope comparison
    Comparison yok
    Endpoint evidence review
    Evidence verdict yok
  2. Scope matrisi yeniden karşılaştırıldı

    https api host’u ve notes:8443 cross-origin ancak same-site; http notes hem cross-origin hem schemeful cross-site’dır. seçilmiş org suffix kuralı tam PSL snapshot veya ownership kanıtı değildir.

    URL / view evidence
    https / notes / 443
    Scope comparison
    Path / host / port / scheme ayrı
    Endpoint evidence review
    Evidence verdict yok
  3. View ile answer birlikte etiketlendi

    public/employee aynı notes.example.org. A sorusuna .200/.40 cevapları verir. Resolver view ve cache context olmadan bu fark wrong answer veya malicious change diye tanımlanmaz.

    URL / view evidence
    public .200 / employee .40
    Scope comparison
    Path / host / port / scheme ayrı
    Endpoint evidence review
    Evidence verdict yok
  4. Channel sonucu ayrı kanıttır

    public-doh ve employee-dot sıcak authenticated channel varsayımı taşır. Strict-unavailable query göndermeden durur; DNSSEC validation veya yeni handshake başarısı bu verilmiş koşullardan ölçülmez.

    URL / view evidence
    public .200 / employee .40
    Scope comparison
    Channel supplied / query withheld branch
    Endpoint evidence review
    Evidence verdict yok
  5. Endpoint iddiası gereğinden genişlemedi

    seçilmiş IP, URL host, HTTP authority ve tlsReferenceIdentity ayrı alanlardır. DNS candidate’ın hazırlanması gerçek connect/certificate acceptance/body delivery kanıtı değildir.

    URL / view evidence
    public .200 / employee .40
    Scope comparison
    Channel supplied / query withheld branch
    Endpoint evidence review
    UNKNOWN: connect/certificate
  6. Regression farklılıkları korudu

    Shared address, split view ve strict failure ayrı normal/negative controls’dür. Kaynak identity, URL origin ve DNS transport scope’ları birbirine aktarılmadan değerlendirilir.

    URL / view evidence
    public .200 / employee .40
    Scope comparison
    Channel supplied / query withheld branch
    Endpoint evidence review
    Scope’lar ayrı; connect/certificate bilinmiyor

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

Boundary matrix’i URL’den hesapla

Artifact’te her URL’nin scheme, host ve effective port alanlarını karşılaştır. /book ile /other same-origin; api host’u ve 8443 port’u cross-origin; bunlar https site grubunda kalır. http değişimi schemeful site grubunu da değiştirir.

Önce selected org suffix kuralını belirt; gerçek ürün kontrolünde güncel PSL-aware library gerekir. Artifact’i tam parser, domain registration veya mevcut DNS kontrolü diye sunma.

Resolver ve channel context’ini birlikte oku

Public DoH ve employee DoT dallarında query aynı name/type’dır; view ve transport context farklıdır. Her branch’te seçilen resolver, authentication koşulu, cache/view kapsamı ve plaintext fallback kararı ayrı kaydedilir.

Strict unavailable branch’inde client query göndermeden durur. Normal branch’lerin sıcak kanalı, yeni handshake’in gerekmediği seçilmiş koşuldur; gerçek ürünün connection reuse davranışı ölçülmüş değildir.

DNS sonucundan sonra sınırı kaybetme

Candidate IP alındığında URL host, HTTPS reference identity ve HTTP authority bilgilerini koru. Başarıyı ayrı aşamalarda tanımla: çözümleme sonucu, ulaşılabilir bağlantı, kabul edilen server identity ve uygulama cevabı aynı kanıt değildir.

Shared IP, farklı origin ve split view vakalarını yerel regression karşılaştırmasına çevir. Sahne yalnız DNS exchange ve local candidate hazırlığıyla biter; server actor’ına dekoratif trafik göndererek gerçekleşmemiş HTTPS başarısı ekleme.

ŞİMDİ VAKAYA UYGULA

Origin, resolver view ve encrypted channel hangi kararları paylaşmaz?

notes ve api aynı IP adresini paylaşırken farklı origin’lerde kalabilir. Public ve employee resolver view’ları aynı name için başka adresler seçebilir. DoT Strict Privacy kanalının kurulamadığı örnekte query gönderilmeden durulur.

Bir DNS cevabı, vakadaki doğru kitap sonucunu tek başına kanıtlar mı? Name resolution bilgisinin nerede bittiğini, HTTP ve application gözlemlerinin nerede başladığını ayır.

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

ÖRNEĞİ BİRLİKTE OKUYALIM

URL, view ve endpoint boundary matrix

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

Ham kaydı ve alan açıklamalarını oku
{
  "suffixContext": {
    "selectedRule": "org",
    "ruleKind": "single-educational-rule-not-full-PSL-snapshot",
    "host": "notes.example.org",
    "publicSuffix": "org",
    "registrableDomain": "example.org",
    "pslProvesOwnership": false
  },
  "baseUrl": "https://notes.example.org/book",
  "urlCases": [
    {
      "url": "https://notes.example.org/book",
      "scheme": "https",
      "host": "notes.example.org",
      "effectivePort": 443,
      "origin": "https://notes.example.org",
      "site": "https://example.org",
      "sameOriginAsBase": true,
      "sameSiteAsBase": true
    },
    {
      "url": "https://notes.example.org/other",
      "scheme": "https",
      "host": "notes.example.org",
      "effectivePort": 443,
      "origin": "https://notes.example.org",
      "site": "https://example.org",
      "sameOriginAsBase": true,
      "sameSiteAsBase": true
    },
    {
      "url": "https://api.example.org/book",
      "scheme": "https",
      "host": "api.example.org",
      "effectivePort": 443,
      "origin": "https://api.example.org",
      "site": "https://example.org",
      "sameOriginAsBase": false,
      "sameSiteAsBase": true
    },
    {
      "url": "https://notes.example.org:8443/book",
      "scheme": "https",
      "host": "notes.example.org",
      "effectivePort": 8443,
      "origin": "https://notes.example.org:8443",
      "site": "https://example.org",
      "sameOriginAsBase": false,
      "sameSiteAsBase": true
    },
    {
      "url": "http://notes.example.org/book",
      "scheme": "http",
      "host": "notes.example.org",
      "effectivePort": 80,
      "origin": "http://notes.example.org",
      "site": "http://example.org",
      "sameOriginAsBase": false,
      "sameSiteAsBase": false
    }
  ],
  "views": [
    {
      "view": "public",
      "qname": "notes.example.org.",
      "qtype": "A",
      "answer": "198.51.100.200",
      "ttl": 120
    },
    {
      "view": "employee",
      "qname": "notes.example.org.",
      "qtype": "A",
      "answer": "192.0.2.40",
      "ttl": 120
    }
  ],
  "transportCases": [
    {
      "name": "public-doh",
      "kind": "DoH",
      "endpoint": "https://resolver.example.org/dns-query",
      "bootstrap": "selected-address-and-authentication-context-preconfigured",
      "channelAlreadyEstablished": true,
      "serverAuthenticated": true,
      "dnsQuestionVisibleToResolver": true,
      "dnssecValidationClaimed": false
    },
    {
      "name": "employee-dot",
      "kind": "DoT",
      "endpointHost": "resolver.example.org",
      "effectivePort": 853,
      "underlyingTransport": "TCP",
      "profile": "Strict Privacy",
      "channelAlreadyEstablished": true,
      "serverAuthenticated": true,
      "dnsQuestionVisibleToResolver": true,
      "dnssecValidationClaimed": false
    },
    {
      "name": "strict-unavailable",
      "kind": "DoT",
      "profile": "Strict Privacy",
      "channelAlreadyEstablished": false,
      "serverAuthenticated": false,
      "fallbackToCleartextForThisQuery": false,
      "dnsQuerySent": false,
      "answer": null
    }
  ],
  "endpointContext": {
    "urlHost": "notes.example.org",
    "selectedPublicAddress": "198.51.100.200",
    "selectedEmployeeAddress": "192.0.2.40",
    "httpAuthority": "notes.example.org",
    "tlsReferenceIdentity": "notes.example.org",
    "selectedAddressIsProofOfBackendOrTenant": false,
    "actualConnectOrCertificateCheck": "not-executed"
  },
  "sharedAddress": {
    "hosts": [
      "notes.example.org",
      "api.example.org"
    ],
    "address": "198.51.100.200",
    "sameAddress": true,
    "sameOrigin": false,
    "records": [
      {
        "owner": "notes.example.org.",
        "type": "A",
        "address": "198.51.100.200"
      },
      {
        "owner": "api.example.org.",
        "type": "A",
        "address": "198.51.100.200"
      }
    ]
  }
}
suffixContext
Yalnız org eğitim kuralı; tam PSL snapshot değil.
urlCases
Ordinary HTTP(S) origin ve schemeful site karşılaştırmaları.
views
Aynı query için seçilmiş iki view cevabı.
transportCases
Warm authenticated DoH/DoT koşulu ve strict unavailable sınırı.
endpointContext
DNS candidate adresi URL host, authority veya identity kanıtı değildir.

Documentation adresleri ve reserved domain’ler kullanılır. DNS/TLS/HTTP çalıştırılmaz; tam PSL, IDNA, opaque origin, IP host ve gerçek resolver cache davranışı bu matrix’in kapsamı dışındadır.

İki yanlış kanı

Aynı registrable domain veya IP, aynı origin demektir.

Ordinary URL origin scheme/host/port’a bağlıdır. Same-site, shared IP ve DNS authority farklı karşılaştırmalardır.

DoH/DoT kullanınca DNS sorusunu resolver da göremez.

Seçilmiş resolver soruyu işler. Encryption client–resolver hop’unu korur; downstream yollar, DNSSEC ve uygulama server identity’si ayrı kapsamdır.

SIRA SENDE

Bu hikâyeyi sen çöz.

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

Base URL ile https://notes.example.org:8443/book aynı origin’de mi?

  1. Hayır. Port farklı; schemeful site aynı.
  2. Evet. Aynı hostname bütün port’ları aynı origin yapar.
Gerekçeli cevabı oku

Hayır. Port farklı; schemeful site aynı. — 443 ile 8443 origin’i ayırır. Scheme ve registrable domain aynı olduğu için site eşleşir.

Strict Privacy DoT unavailable kaydı neyi gösterir?

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

transportCases[2]
{"name":"strict-unavailable","kind":"DoT","profile":"Strict Privacy","channelAlreadyEstablished":false,"serverAuthenticated":false,"fallbackToCleartextForThisQuery":false,"dnsQuerySent":false,"answer":null}
  1. Query gönderilmez; bu profilde cleartext fallback yok.
  2. TLS yoksa aynı query otomatik cleartext gönderilir.
Gerekçeli cevabı oku

Query gönderilmez; bu profilde cleartext fallback yok. — channelAlreadyEstablished=false ve dnsQuerySent=false. Bu hata address cevabı oluşturmaz.

Public ve employee view farklı IP veriyor. Service identity ve backend/tenant kanıtı neden IP’ye indirgenemez?

Gerekçeli cevabı oku

DNS view endpoint adresini seçer. Service identity kontrolünde reference, URL host olan notes.example.org olarak kalır. Seçilen address backend veya tenant ownership kanıtı değildir. Certificate/name validation ve application permission ayrıca gerekir. Bu örnekte gerçek connection veya certificate kontrolü çalıştırılmamıştır.

□ View adresi ile service identity’yi ayırdım.

□ IP’den tenant veya backend garantisi çıkarmadım.

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

Kaynaklar ve kapsam