Computerbeveiliging - Hoe je bad guys buiten de deur houdt

DNS misbruik

18-11-2008, 18:09 door Jan-Hein, 18 reacties
De problemen die zijn ontstaan in de DNS infrastructuur (inclusief lokale tabellen als etc/hosts e.d.) zijn volledig terug te voeren op verkeerd gebruik, en pogingen om dat binnen de DNS infrastructuur op te lossen versterken dat probleem.

DNS is gebouwd als mapping van IP adressen in mensvriendelijke vorm naar IP adressen in machinaal bruikbare vorm.
Een mooi ontwerp, dat onder andere wat flexibiliteit aan het oorspronkelijk statische concept van IP adressen toevoegt.

De kern van het probleem is dat hele volksstammen het zijn gaan interpreteren als een vorm van identiteiten beheer.
Ik vermoed dat het statische karakter van het oorspronkelijke adressen concept hiervoor de aanleiding was, maar constateer in elk geval dat te veel mensen er heilig in zijn gaan geloven dat een verbinding met een specifiek IP adres garandeert dat je met de juiste persoon/organisatie bent verbonden.

Op basis van deze aanname zijn vrijwel alle huidige authenticatie technieken ontworpen met een ingebouwde MITM aanvalsoptie.
Sinds die opties ook daadwerkelijk gebruikt worden, zijn de ontwerpers van de falende systemen zich zorgen gaan maken over de fouten in DNS, want dat wordt als eenvoudiger ervaren dan hun eigen problemen eens onder de loep te nemen.

DNS wordt nu genadeloos aangepakt om ten koste van alles alsnog de waanideeen van mislukte ontwerpers te benaderen, want als dat hun blunders al niet voldoende verbergt, dan is de aandacht in elk geval weer even van hun falen afgeleid.

Als ze zich even zouden verdiepen in de basis voorwaarden van wederzijdse unieke authenticatie, zouden ze hun klanten veel geld en ellende besparen, en zou DNS verder kunnen groeien in de richting waar het voor bedoeld was: gemak en flexibiliteit.
In de huidige verwarring wordt het tot nachtmerrie gedegradeerd.
Reacties (18)
18-11-2008, 22:07 door Anoniem
Antwoord: Secure DNS, oftewel DNSSEC
http://www.dnssec.net/
19-11-2008, 10:10 door RichieB
Wat stel jij voor dan? Een PKI gebruiken zodat elke gebruiker een persoonlijk certificaat krijgt waarmee hij zich bij elke website kan identificeren? Dan moet zo'n (globale) PKI wel eerst worden opgezet.. is echt niet triviaal.
19-11-2008, 12:25 door Bitwiper
Door Jan-HeinDe kern van het probleem is dat hele volksstammen het zijn gaan interpreteren als een vorm van identiteiten beheer.
Ik vermoed dat het statische karakter van het oorspronkelijke adressen concept hiervoor de aanleiding was, maar constateer in elk geval dat te veel mensen er heilig in zijn gaan geloven dat een verbinding met een specifiek IP adres garandeert dat je met de juiste persoon/organisatie bent verbonden.
Hier gaat je DNS-betoog wat mank, ik neem aan dat je hostname bedoelt i.p.v. een specifiek IP-adres?

Overigens zijn MITM aanvallen op veel lagen mogelijk:
1 DNS
2 TCP
3 IP
4 Ethernet
5 Besturingssysteem, driver, evt. virtualisatie etc.
6 Applicatie
7 Wie zit er aan de knoppen

Als ze (Ontwerpers) zich even zouden verdiepen in de basis voorwaarden van wederzijdse unieke authenticatie, zouden ze hun klanten veel geld en ellende besparen, en zou DNS verder kunnen groeien in de richting waar het voor bedoeld was: gemak en flexibiliteit.
Wederzijdse unieke authenticatie is lang niet altijd nodig. In veel gevallen voldoet SSL prima, en voorkomt MITM attacks in de hierboven genoemde lagen 1 t/m 4 (het beveiligen van de lagen 5 t/m 7 v.w.b. authenticatie is veel lastiger, en zou -arguably- tot veel te hoge verwachtingen kunnen leiden, d.w.z. een andere nachtmerrie).
20-11-2008, 02:48 door Jan-Hein
DNSSEC is een voorbeeld van het verkeerde antwoord.
Ik wil naast (niet in) DNS een IdM infrastructuur bouwen.
Dat scheidt de concepten adres (locatie) en identiteit, waardoor een groot aantal risico's tot beheersbare proporties worden teruggebracht.

Een verkeerd adres is lastig, een verkeerde authenticatie is voor mij potentieel schadelijk.
De garantie dat je op het juiste adres zaken doet is geen garantie dat je met de juiste mensen zaken doet.
Onder "juiste mensen" worden ook organisaties verstaan, want het gaat puur om de menselijke component.

De optie van een globale PKI is inderdaad niet realistisch.
Maar public key encryption is niet nodig voor Idm, en dus ook zo'n infrastructuur niet.

Ik heb laten zien hoe IdM gescheiden kan worden van DNS, en een concreet voorstel gedaan om daarmee te beginnen.
Het bouwen van zo'n infrastructuur is inderdaad niet triviaal.
Beginnen blijkt al een probleem te zijn, zeker als je jezelf realiseert dat het in je eentje zinloos is.

Maar ik blijf bij mijn stelling dat DNS voor IdM misbruiken dood gaat lopen.
Ik ben geinteresseerd in wie er aan de knoppen zit, en niet waar.
Verwachtingen over de aard van wie zijn applicatie afhankelijk, maar niet beinvloed door technische factoren als de lagen 1 t/m 5 in het gepresenteerde MITM aanvalsmodel.
Voor mijn toepassingen is wederzijdse unieke authenticatie dus wel altijd nodig.
20-11-2008, 08:24 door [Account Verwijderd]
[Verwijderd]
20-11-2008, 10:16 door RichieB
Door Jan-Hein
Ik heb laten zien hoe IdM gescheiden kan worden van DNS, en een concreet voorstel gedaan om daarmee te beginnen.

Waar kunnen we dat voorstel lezen?
20-11-2008, 16:45 door Anoniem
eigenlijk komt het er allemaal op neer dat je elke layer moet beschermen; DNS zoals het nu is kan misbruikt worden om TLS te breken en Routing kan misbruikt worden om je credentials bij de verkeerde persoon terecht te laten komen, om maar een paar dingen te noemen.

DNSSEC is nodig, maar doet geen identiteitsbeheer, dat zou ook een ontzettende layer violation zijn. Misschien is OpenID meer naar je gading, maar ik moet zeggen dat ik van je verhaal eigenlijk niet heel goed kan opmaken wat het precieze probleem is dat je probeert op te lossen.

Ik zit hier op de IETF, weet je zeker dat je idee niet al door anderen voorgesteld is en dat er niet aan gewerkt wordt? In dat geval zou ik zeggen stuur je idee eens naar een relevante working group daar, wie weet wat er van komt.
20-11-2008, 22:10 door Bitwiper
Door Anoniem (2008-11-20 16:45)DNS zoals het nu is kan misbruikt worden om TLS te breken
Los van implementatiefouten (zoals [url=http://www.security.nl/article/18717/1]"raadbare" keys[/url]), vervalste root certificates, aan verkeerde partijen uitgegeven certificaten en gestolen private keys is dit onjuist.

Inderdaad kan DNS je naar een verkeerde server sturen. Daarnaast zijn certificaten niet geheim, dus kan een kwaadaardige server het certificaat van de server sturen waar jij verbinding mee denkt te maken, en inderdaad kan de hostname in het certificaat dan overeenkomen met het begin van de bovenin jouw webbrowser getoonde URL. Toch gaat dit niet werken, want die nepserver beschikt (als het goed is) niet over de wel geheime private key van de echte server, waardoor er geen versleutelde verbinding tot stand zal komen.

Kortom, gemanipuleerde DNS informatie kan ertoe leiden dat het niet lukt om een TLS verbinding tot stand te brengen, maar niet dat je zonder foutmeldingen TLS kunt breken.
20-11-2008, 22:49 door Bitwiper
Door Jan-HeinIk wil naast (niet in) DNS een IdM infrastructuur bouwen.
Dat scheidt de concepten adres (locatie) en identiteit, waardoor een groot aantal risico's tot beheersbare proporties worden teruggebracht.
DNS kun je vergelijken met een telefoonboek. Een "kwaadaardige postbode" zou er pagina's in kunnen wijzigen voordat hij het bij jou in de bus doet. Het is een handigheidje, geen garantie voor succes. Precies daarom zijn hostnames in website-certificaten opgenomen, die tik je in in je webbrowser, niet het IP-adres.
Een verkeerd adres is lastig, een verkeerde authenticatie is voor mij potentieel schadelijk.
Exact.
De garantie dat je op het juiste adres zaken doet is geen garantie dat je met de juiste mensen zaken doet. [...] Ik ben geinteresseerd in wie er aan de knoppen zit, en niet waar. [...] Voor mijn toepassingen is wederzijdse unieke authenticatie dus wel altijd nodig.
Het zou voor zeer veel toepassingen erg handig zijn als we met 100% (of zeer grote) zekerheid kunnen vaststellen met wie we communiceren (ook verbaal met oogcontact). Alle oplossingen die de ICT tot nu toe geboden heeft, hebben meer of minder ernstige beperkingen.

Zelfs als we in elk mens een niet-te-kopiëren TPM "chip" zouden kunnen inbouwen die verspreid is over alle cellen van het lichaam waarbij tenminste 80% (ik noem maar wat) moet functioneren, loop je nog het risico dat iemand "zichzelf niet is" bijv. t.g.v. chantage, bedreiging, onder invloed zijn, dementie of andere hersenbeschadiging, schietzofrenie, psychose etc. Ook kan iemand die vandaag nog kredietwaardig is dat morgen niet meer zijn... (bij het zakendoen is het belangrijker dat je je geld of je spullen krijgt dan van wie).

Kun je een concreet voorbeeld geven (zonder vergelijking met DNS, die m.i. mank gaat) van waar je Identity Management voor wilt gebruiken?
22-11-2008, 11:43 door Jan-Hein
Door NielsT
Door Jan-HeinIk heb laten zien hoe IdM gescheiden kan worden van DNS, en een concreet voorstel gedaan om daarmee te beginnen.
Het bouwen van zo'n infrastructuur is inderdaad niet triviaal.
Beginnen blijkt al een probleem te zijn, zeker als je jezelf realiseert dat het in je eentje zinloos is.

Oh? Het grootste probleem lijkt me dat je gaat communiceren met allerlei partijen waar je daarvoor nog nooit mee gecommuniceerd hebt. Hoe ga je hun identiteit dan verifieren? Je kan niet iedereen op internet een eigen geverifieerde sleutel gaan geven...

Het mooie van mijn voorstel is dat je iedereen die dat wil zoveel identiteiten kan laten beheren als die zelf nodig vindt, en dat het opbouwen van een relatie (zaken doen met iemand voor de eerste keer) zo gemakkelijk en veilig is als de toekomstige zaken partners zelf nodig vinden.
Voor een uitgebreide uitleg: zie "future user experience" in het GCIM projectvoorstel.
22-11-2008, 11:48 door Jan-Hein
Door RichieB
Door Jan-Hein
Ik heb laten zien hoe IdM gescheiden kan worden van DNS, en een concreet voorstel gedaan om daarmee te beginnen.

Waar kunnen we dat voorstel lezen?

Het projectvoorstel in: http://home.tiscali.nl/jhvdburg/gcim-proj.pdf

Beschrijving van de technische fundamenten die de haalbaarheid bewijzen in:
http://home.tiscali.nl/jhvdburg/lidokey-fund.pdf

http://home.tiscali.nl/jhvdburg/sssp-fund.pdf

http://home.tiscali.nl/jhvdburg/gcimtec-fund.pdf
22-11-2008, 11:52 door Jan-Hein
Door Anoniemeigenlijk komt het er allemaal op neer dat je elke layer moet beschermen; DNS zoals het nu is kan misbruikt worden om TLS te breken en Routing kan misbruikt worden om je credentials bij de verkeerde persoon terecht te laten komen, om maar een paar dingen te noemen.

DNSSEC is nodig, maar doet geen identiteitsbeheer, dat zou ook een ontzettende layer violation zijn. Misschien is OpenID meer naar je gading, maar ik moet zeggen dat ik van je verhaal eigenlijk niet heel goed kan opmaken wat het precieze probleem is dat je probeert op te lossen.

Ik zit hier op de IETF, weet je zeker dat je idee niet al door anderen voorgesteld is en dat er niet aan gewerkt wordt? In dat geval zou ik zeggen stuur je idee eens naar een relevante working group daar, wie weet wat er van komt.

Een formele standaard formuleren gaat het project op dit moment nog niet versnellen.
Uiteraard is dat direct na de ontwikkeling van het prototype wel een goed idee.
Wat mij betreft zo spoedig mogelijk, bedankt.
22-11-2008, 12:11 door Jan-Hein
Door Bitwiper
Kun je een concreet voorbeeld geven (zonder vergelijking met DNS, die m.i. mank gaat) van waar je Identity Management voor wilt gebruiken?

Om te beginnen voor het beheren van mijn identiteiten en van mijn individualiteit.
Maar dat is een kwestie van definitie, en ik begrijp dat sommige woordenboeken daar anders over denken dan ik het heb gedefinieerd.
Dus het gaat alleen werken als andere mensen hetzelfde zouden willen als ik.
Tot nu toe is die wens nog door niemand met mij gedeeld, maar ik heb nog steeds de hoop dat zoiets gaat gebeuren.

Op termijn kun je de te bouwen infrastructuur ook voor allerlei andere zaken gebruiken.
Zelf denk ik na over global cooperative computing, met geintegreerde data backup faciliteiten en bestrijding van vele vormen van malware.
Daar heb ik echter nog een hoop denkwerk voor nodig, en bovendien gaan dergelijke vergezichten de realisatie van het project niet versnellen, dus ik concentreer mij voorlopig op het doel zoals dat in het voorstel wordt geformuleerd.
Dat is op zichzelf overigens al redelijk spectaculair vind ik.
24-11-2008, 11:01 door Anoniem
Door Bitwiper
Door Anoniem (2008-11-20 16:45)DNS zoals het nu is kan misbruikt worden om TLS te breken
aan verkeerde partijen uitgegeven certificaten

Bingo
24-11-2008, 12:44 door Bitwiper
Door Anoniem
Door Bitwiper
Door Anoniem (2008-11-20 16:45)DNS zoals het nu is kan misbruikt worden om TLS te breken
aan verkeerde partijen uitgegeven certificaten
Bingo
Niks bingo. Aan verkeerde partijen uitgegeven certificaten kunnen gebruikt worden on TLS (en SSL) te breken, maar DNS speelt daarin geen enkele rol.

Ter verduidelijking: ook bij een aan een verkeerde partij uitgegeven certificaat moet het adres in de URL-balk van je browser overeenkomen met het adres in het (onterecht) door de Certificate Authority gesigneerde certificaat. Het IP-adres is hierbij irrelevant, m.a.w. DNS komt niet voor in deze "vergelijking" en speelt dus geen rol.
24-11-2008, 13:23 door Anoniem
Door Bitwiper
Door Anoniem
Door Bitwiper
Door Anoniem (2008-11-20 16:45)DNS zoals het nu is kan misbruikt worden om TLS te breken
aan verkeerde partijen uitgegeven certificaten
Bingo
Niks bingo. Aan verkeerde partijen uitgegeven certificaten kunnen gebruikt worden on TLS (en SSL) te breken, maar DNS speelt daarin geen enkele rol.

Ter verduidelijking: ook bij een aan een verkeerde partij uitgegeven certificaat moet het adres in de URL-balk van je browser overeenkomen met het adres in het (onterecht) door de Certificate Authority gesigneerde certificaat. Het IP-adres is hierbij irrelevant, m.a.w. DNS komt niet voor in deze "vergelijking" en speelt dus geen rol.

TLS maakt in de uiteindelijke beslissing of een certificaat klopt geen verschil welke van de vertrouwde CA's er gebruikt wordt.
Sommige CA's gebruiken alleen e-mail om te verifieren of een domein van een aanvraag klopt.
Een gerichte DNS aanval kan gebruikt worden om de e-mail van een ander domein naar jou te laten sturen.

Een van de voorbeelden uit de presentatie van kaminsky.
24-11-2008, 13:51 door Bitwiper
Door Anoniem
Door Bitwiper
Door Anoniem
Door Bitwiper
Door Anoniem (2008-11-20 16:45)DNS zoals het nu is kan misbruikt worden om TLS te breken
aan verkeerde partijen uitgegeven certificaten
Bingo
Niks bingo. Aan verkeerde partijen uitgegeven certificaten kunnen gebruikt worden on TLS (en SSL) te breken, maar DNS speelt daarin geen enkele rol.

Ter verduidelijking: ook bij een aan een verkeerde partij uitgegeven certificaat moet het adres in de URL-balk van je browser overeenkomen met het adres in het (onterecht) door de Certificate Authority gesigneerde certificaat. Het IP-adres is hierbij irrelevant, m.a.w. DNS komt niet voor in deze "vergelijking" en speelt dus geen rol.

TLS maakt in de uiteindelijke beslissing of een certificaat klopt geen verschil welke van de vertrouwde CA's er gebruikt wordt.
Sommige CA's gebruiken alleen e-mail om te verifieren of een domein van een aanvraag klopt.
Een gerichte DNS aanval kan gebruikt worden om de e-mail van een ander domein naar jou te laten sturen.

Een van de voorbeelden uit de presentatie van kaminsky.
In principe heb je gelijk, maar dit is meer een bug in de manier waarop sommige CA's aan sommige soorten klanten certificaten verstrekken dan een TLS/SSL probleem (met een vervalst identiteitsbewijs kun je de boel op vergelijkbare wijze bedonderen). Daarnaast staat het je natuurlijk vrij om root certiftcaten van onbetrouwbare CA's uit je browser te verwijderen.

Ten slotte kunnen certificaten worden ge-revoked (toegegeven niet altijd even betrouwbaar). V.w.b. Windows kan dit ook middels Untrusted Publishers (zie bijv. in MSIE of vanuit Control Panel: Internet Options, de Content Tab, Certificates, en dan helemaal rechts "Untrusted Publishers" - e.e.a. in een Engelstalige Windows XP).

Is bekend of die Kaminski truuk al eens in de praktijk is toegepast?
24-11-2008, 14:04 door Anoniem
Door BitwiperIn principe heb je gelijk, maar dit is meer een bug in de manier waarop sommige CA's aan sommige soorten klanten certificaten verstrekken dan een TLS/SSL probleem (met een vervalst identiteitsbewijs kun je de boel op vergelijkbare wijze bedonderen). Daarnaast staat het je natuurlijk vrij om root certiftcaten van onbetrouwbare CA's uit je browser te verwijderen.

Ten slotte kunnen certificaten worden ge-revoked (toegegeven niet altijd even betrouwbaar). V.w.b. Windows kan dit ook middels Untrusted Publishers (zie bijv. in MSIE of vanuit Control Panel: Internet Options, de Content Tab, Certificates, en dan helemaal rechts "Untrusted Publishers" - e.e.a. in een Engelstalige Windows XP).

Is bekend of die Kaminski truuk al eens in de praktijk is toegepast?

Klopt, en in die zin is het ook inderdaad geen zwakheid in TLS maar in e-mail, waar gebruikers van TLS potentieel last van kunnen hebben, als men niet oplet (zowel bij de CA als de uiteindelijke gebruiker). Maar het is maar een voorbeeld hoe je imho elke layer apart moet beveiligen, omdat er onverwachtse interacties plaats kunnen vinden.

Ik ken geen gevallen waar deze specifieke combinatie gebruikt is voor een specifieke aanval. Waarschijnlijk niet (overigens zal een ca wel zijn best doen om zoiets stil te houden, vertrouwen is het enige dat ze verkopen). Wel zijn er genoeg andere gevallen van kaminsky attacks, en ook zijn er wel eens verkeerde certificaten uitgegeven in het verleden. Ik denk dat deze niet is gebruikt omdat het tot nu toe nog niet 'nodig' is geweest; er zijn makkelijkere manieren om gebruikers te bedonderen.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.