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.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
Public view / DoH
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- İ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
- 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
- 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
- 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
- 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
- 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
- İ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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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?
- Hayır. Port farklı; schemeful site aynı.
- 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}
- Query gönderilmez; bu profilde cleartext fallback yok.
- 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
- RFC 9499 — DNS Terminology6 DNS servers and clients; split DNS · 9 Registration model; public suffix
- Public Suffix List — Learn about the listDefinition of public suffix; uses of the list · Dangers of a static list; not a domain-validity test
- WHATWG URL — Host miscellaneous3.2 Host miscellaneous; public suffix and registrable domain algorithms
- WHATWG HTML — Origins and sites7.1.1 Origins; same origin · 7.1.1.1 Sites; obtain a site; same site
- RFC 8484 — DNS Queries over HTTPS1 Introduction; 4 The HTTP Exchange · 9 Security Considerations; 10 Operational Considerations; bootstrapping
- RFC 7858 — Specification for DNS over Transport Layer Security3.1 Establishing Connections; 3.2 TLS Handshake and Authentication · 3.4 Connection Reuse, Close, and Reestablishment
- RFC 8310 — Usage Profiles for DNS over TLS and DNS over DTLS5 Usage Profiles; 5.1 DNS Resolution · 6.6 Authentication in Strict Privacy; 7.1 Full Direct Configuration
- RFC 9110 — HTTP Semantics4.2.2 https URI Scheme; 4.3.4 HTTPS Certificate Verification · 7.2 Host and :authority; 7.3 Routing Inbound Requests
- RFC 2606 — Reserved Top Level DNS Names3 Reserved Example Second Level Domain Names
- RFC 5737 — IPv4 Address Blocks Reserved for Documentation3 Documentation Address Blocks