Het idee van traditionele certificaten is dat je een bepaalde set vertrouwde organisaties hebt die verificatie doen voor websites en personen. Tweakers.net bewijst aan Let's Encrypt dat het de eigenaar is van het domein, en Let's Encrypt geeft daar een certificaat voor uit dat je browser vertrouwt. Alleen Let's Encrypt kan dat certificaat hebben gemaakt, omdat alleen Let's Encrypt de sleutel heeft waarmee het ding ondertekend is. Middels wiskundige trucs en hele speciale hardware wordt verzekerd dat deze certificaten niet na te maken zijn zonder in te breken bij hun servers en hun fysieke hardware te bedienen of hun personeel te forceren.
Als je browser Let's Encrypt niet vertrouwt en het uitzet, vertrouw je het certificaat van tweakers.net ook niet. Je kunt in je browser- of besturingssysteeminstellingen zelf kiezen welke partijen je vertrouwt; vertrouw je China Telecom of Staat der Nederlanden G3 niet, dan kun je met een vinkje het vertrouwen opzeggen. Websites die een certificaat tonen van zulke partijen zullen vervolgens
waarschuwingen als deze laten zien als je ze probeert te bezoeken.
--- en dan nu QWAC's: ---
Een probleem van normale websitecertificaten voor overheidsdiensten is dat je een vertrouwde partij moet vragen (of soms betalen) voor een certificaat voor je domein. Overheid.nl heeft bijvoorbeeld een certificaat uitgegeven door "DigiCert Ireland Limited". Die partij, evenals al hun concurrenten, kunnen in theorie bijna iedere website faken door zelf die certificaten te maken en een HTTPS-slotje zonder beveiligingswaarschuwingen laten nadoen. Er is geen indicator in je browser die een verschil maakt tussen "deze website is van de Finse overheid" en "deze website is van een bedrijf genaamd Finse Overheid B.V.", en ook geen verschil tussen een echt veilige verbinding met de overheid en een verbinding die gekaapt is en ondertekend is door een shady certificaatverkoper.
Certificaten namaken mogen certificaatbedrijven natuurlijk niet zomaar doen, en als ze het wel doen vervalt het vertrouwen en zijn ze hun business kwijt; bedrijven als Diginotar, Startcom/WoSign, en Digicert is dit eerder overkomen. Browsers zullen hun certificaat uit de lijst van vertrouwen halen, en al hun klanten hebben ineens onbereikbare websites. De businessrisico's die daarbij horen, zijn wat ervoor zorgt dat deze bedrijven zich aan hun afspraken houden. Chrome en Chrome-gebaseerde browsers hebben een extra truc om misbruik te helpen vinden (certificate transparency log) maar dat lost alsnog het probleem niet op voordat de eerste browsers foutmeldingen rapporteren.
Toen het Nederlandse Diginotar gehackt was en diens certificaten kort voor het nadoen van grote websites gebruikt werden, was het vertrouwen in een keer weg. Alle Diginotar-klanten moesten opeens een alternatief zoeken, omdat het vertrouwen in Diginotar weg was en alleen oude certificaten nog (tijdelijk) werden vertrouwd. Een combinatie van browsermakers en auditingbureau's beheren welke website wel of niet vertrouwd worden, en websites van de Nederlandse overheid ware ineens onveilig of zelfs onbruikbaar. Diginotar is daarom ook omgevallen: hun taak was om vertrouwen te ondertekenen, en nadat ze gehackt waren, was niemand meer bereid te vertrouwen dat ze daartoe in staat zijn.
Met QWAC's probeerde men ervoor te zorgen dat overheden zelf vertrouwen konden aantonen. In plaats van commerciële entiteiten die elkaar vertrouwen, kiezen overheden vertrouwde partijen volgens nationale standaarden in plaats van die van zelfregulerende industrie (en dat kunnen diezelfde bedrijven zijn). In theorie niet zo heel slecht (je neemt macht over overheidsdiensten weg van big tech), maar aan de andere kant wil je misschien niet dat Rutte of Orban bepaalt wie jouw computer wel of niet vertrouwt.
De wet schreef origineel echter voor dat browsers verplicht waren om deze overheidspartijen zonder twijfel te vertrouwen. In theorie kon de Nederlandse overheid een QWAC voor Google.nl regelen en je verkeer onderscheppen en browsers die daar een stokje voor probeerde te steken zouden de wet overtreden. Mocht dat voorkomen, zou een Europese overheid die hun techniek niet op orde heeft hun sleutel kunnen lekken en iedere browser onveilig maken: patches overtreden de wet. Browsers hadden niet meer de keuze om te bepalen wie er betrouwbaar is.
De wet schreef daarnaast ook wat andere stompzinnige regels voor (van het "de adresbalk moet groen zijn" niveau, waar browsers om hele goede redenen juist vanaf stappen) die helemaal niet in de wet vastgelegd zouden moeten zijn. Dat was de kers op de taart die mij deed vermoeden dat de certificaatverkopers hier achter zitten; ze liegen op hun websites nog steeds dat je adresbalk groen wordt en er een groen slotje in je adresbalk verschijnt als je op een website zit die betaald heeft voor hun superdure, uitgebreide verificatie. De verouderde reclameclaims die al jaren niet meer kloppen werden ineens opgedrongen aan browsermakers.
De QWAC's zelf zijn een uitvinding van de certificaatboerindustrie. Ze zijn de ouderwetse Extended Validation-certificaten (het "groene slotje" dat je tien jaar geleden zag) met wat extra stappen, waarvoor weer een paar honderd euro per klant kan worden geïnd. Ze worden ook gebruikt voor PSD2-systemen (API's voor je bank). Er zit wat extra verificatie op EV-certificaten en QWAC's die niet op bijvoorbeeld de gratis Let's Encrypt-certificaten zitten, maar dat een deen het geld heeft om een bedrijf genaamd NederlandseOverheid ApS te registeren betekent niet dat nederlandseoverheid.nl ineens vertrouwd moet worden als er "NEDERLANDSE OVERHEID" bij het slotje staat. Dit is een paar keer misgegaan (zie bijvoorbeeld
het voorbeeld van Stripe waar iemand een bedrijf heeft opgezet en geverifieerd genaamd "Identity Verified" wat in de adresbalk verscheen...)
Het allerstomste is wel dat de Nederlandse overheid en diverse andere overheden
al hun eigen certificaten uitgeven via het normale systeem. Ze moeten zich daarvoor wel aan de regels van browsers houden, maar dat is nooit een probleem geweest.
Het originele einddoel, zorgen dat de Digid's van Europa werken zonder van bedrijven afhankelijk te moeten zijn, is op zich niet slecht. De implementatie ervan is echter lange tijd achter gesloten deuren gegaan met allerlei tekenen dat niemand ooit browsermakers om advies gevraagd heeft over browserwetgeving, met allerlei problemen voor de veiligheid van zo'n beetje iedere internetgebruiker.