Dank voor die link!
Alleen is dat geen "PKI" (Public Key Infrastructure) maar secure "Key Exchange": hoe twee partijen (browser en server) via een
onversleutelde verbinding een "secret key" kunnen uitwisselen,
op het eerste gezicht zonder dat snuffelaars op die verbinding die "secret key" te weten kunnen komen.
Hier zijn echter twee problemen mee:
1) Niet digitaliseerbaar?
Het kan aan mij liggen, maar ik kan mij geen
digitale oplossing voor de geest halen waarmee je die koffer met de twee hangsloten (symmetrische encryptie) nabootst.
Het zou heel fijn zijn als zoiets bestond als alternatief voor het asymmetrische Diffie-Hellman algoritme (dat hoogstwaarschijnlijk slachtoffer wordt van toekomstige quantum-computers, waar symmetrische encryptie vergelijkingsgewijs verwaarloosbaar kwetsbaar voor is).
Een vereenvoudigde uitleg van hoe de "key exchange" bij https met "forward secrecy" werkt gaf ik in
https://security.nl/posting/884658 (zie Fictieve forward secrecy).
2) AitM-risico
Dit systeem heeft dezelfde zwakte als Diffie-Hellman: één van de kinderen (of alledrie, zelfs zonder dat zij dit van elkaar weten!) in het filmpje kan als AitM (Attacker in the Middle) optreden. Nb. de presentator in het filmpje verzwijgt dit (in elk geval in deze video).
Hieronder schets ik de situatie waarbij het "eerste" kind rechts al een AitM is.
a) De man rechts doet één van de twee blauwe sessiesleutels in de koffer en sluit die koffer aan één kant af met het rode hangslot. Vervolgens geeft hij de afgesloten koffer aan het eerste kind "onderweg".
b) Het kind sluit de koffer aan de ándere kant af met een geel hangslot en geeft de koffer weer terug aan de man rechts.
c) De man rechts verwijdert het rode hangslot na het te hebben geopend met diens sleutel, en geeft de koffer weer aan het kind.
d) Het kind verwijdert het gele hangslot na het te hebben geopend met diens sleutel, opent de koffer en heeft nu ook de blauwe sleutel.
Het kind heeft nu twee keuzes:
I) Afwachten welke informatie de persoon rechts gaat delen (of bijv. een popup op diens scherm tonen waarin staat dat zijn computer besmet is);
II) Bovenstaand stukje herhalen met het kind links van hem of haar, en echt "in het midden gaan zitten". Dat is vaak veel slimmer. Als de presentator links een website is waar de man rechts op inlogt, kan het kind het teruggestuurde "session cookie" (of JWT o.i.d.) bemachtigen, de sessie kapen en bijv. het wachtwoord wijzigen.
Je hebt dus
wél een versleutelde verbinding, maar je hebt
geen idee met wie. Dat zul je, op raadselachtige wijze,
zelf uit moeten zien te vinden. Bij elke https-verbinding, wel te verstaan.
Oplossing voor probleem 2: certificaten
Als oplossing voor probleem 2 zijn certificaten uitgevonden. Het idee daarbij is dat je het uitzoeken "om wie gaat het" overlaat aan een derde partij, die je vervolgens -noodzakelijkerwijs- zult moeten vertrouwen. Die derde partij stelt de identiteit van de verantwoordelijke voor de website vast, en neemt die gegevens,
naast de (potentieel nietszeggende, maar wel lekker korte én wereldwijd unieke) domeinnaam, op in het certificaat.
Grotendeels zinloze certificaten
Helaas heeft Big Tech certificaten gesloopt door alle
essentiële identificerende informatie over de verantwoordelijke voor een website eruit te verwijderen (de naïviteit van de verdedigers van dit concept vind ik onvoorstelbaar).
An sich geen probleem, namelijk als internetters zouden kunnen zien dat een website zo'n grotendeels zinloos certificaat gebruikt (en je dus a.d.h.v. de domeinnaam moet weten wie de eigenaar is) of juist een zinvol certificaat (waaruit blijkt wie de verantwoordelijke is voor de website).
Maar juist
dat verschil zien internetters niet. Die informatie wordt hen
opzettelijk onthouden in browsers, omdat dit websites met die grotendeels zinloze certificaten veel minder waard zou maken. Met als gevolg dat Big Tech er veel minder aan zou verdienen. Daarom is het één pot nat.
En omdat internetters toch geen verschil meer zien (of zelfs
kunnen zien, vooral in mobiele browsers - die steeds meer worden gebruikt ten koste van desktop-browsers), gaan ook steeds meer (regelmatig geïmpersoneerde) websites flutcertificaten gebruiken (terwijl van u, als internetter, steeds vaker geëist wordt dat
u met hogere betrouwbaarheid bewijst dat u bent wie u zegt dat u bent).
Voorbeeld van grotendeels zinloze certificaten
Bijvoorbeeld
https://nefkens-opel.nl heeft (net als
https://nefkens.nl) een certificaat, waarmee je, als je die link opent, grote zekerheid hebt dat jouw browser
daadwerkelijk een (versleutelde, en niet te AitM'en) verbinding heeft met een server waarop een website draait die toegang heeft tot een private key passend bij de public key in het certificaat van
https://nefkens-opel.nl (c.q.
https://nefkens.nl - lees dat allemaal gerust nog een keer, of ga door met het volgende - want het boeit niet).
Alleen zegt dat
HELEMAAL NIETS over van
WIE de website met de domeinnaam
nefkens-opel.nl (c.q.
nefkens.nl) op
dit moment is.
Ondanks een certificaat heb je
wél een versleutelde verbinding, maar je hebt
NOG STEEDS geen idee met wie. Dat zul je, op raadselachtige wijze,
zelf uit moeten zien te vinden. Bij elke https-verbinding met zo'n flutcertificaat, wel te verstaan.
Nb. In een website
zelf kijken heeft nauwelijks of geen zin. Oplichters doen er
alles aan om een nepwebsite op een echte te laten lijken. Wat dat betreft is
https://nefkens-opel.nl een slecht voorbeeld, want daaraan zie je al snel dat je daar weg moet wezen. Ik kan echter geen links naar
echte nepwebsites opnemen, want dan zou ik meewerken aan cybercrime. Een lijst met domeinnamen van nepsites publiceerde ik o.a. in
https://security.nl/posting/879531.