Wie Trusted Codes voor het eerst ziet en technisch onderlegd is, zegt vaak: ‘Dus het is een authenticator-app.’ Dat klopt half. In de kern gebruiken beide hetzelfde algoritme. Maar een mes en een vork zijn ook allebei van metaal, en niemand gebruikt ze voor hetzelfde.
Wat hetzelfde is
Authenticator-apps zoals Google Authenticator gebruiken TOTP, het algoritme voor tijdgebaseerde eenmalige wachtwoorden, gepubliceerd als de open standaard RFC 6238. Er gaan een gedeeld geheim en de huidige tijd in, en er komt een korte code uit. Trusted Codes gebruikt precies deze standaard, met dezelfde HMAC-functie. We hebben geen eigen cryptografie bedacht, en dat is een bewuste keuze: TOTP wordt al meer dan tien jaar bestudeerd en gebruikt.
Het verschil zit in alles eromheen.
1. Het werkt tussen mensen, op elk kanaal
Een authenticator beschermt één deur: de login bij één website. De code gaat van je telefoon naar een formulier, en een server controleert hem.
Trusted Codes werkt tussen twee mensen. De code gaat van de ene persoon naar de andere: uitgesproken aan de telefoon, gezegd in een videogesprek, getypt in een chat, geschreven in een e-mail of gevraagd aan de voordeur. Zie het als een wachtwoord dat in elke situatie werkt, terwijl de authenticator één enkele deur opent.
2. Woorden in plaats van cijfers
Een authenticator toont ‘482 913’. Trusted Codes toont drie woorden, bijvoorbeeld ‘rivier kaars bezwaar’.
Cijfers zijn gemaakt voor machines. Lees ‘482 913’ voor over een slechte telefoonlijn, onder tijdsdruk, en kijk hoe vaak de ander ‘482 930’ opschrijft. Woorden zijn makkelijker uit te spreken, makkelijker goed te verstaan en makkelijker te onthouden gedurende de paar seconden die het vergelijken kost. Daarom vraagt een schildwacht om een wachtwoord en niet om een pincode.
De woorden zijn ook sterker dan de cijfers. Zes cijfers geven 1.000.000 combinaties. Trusted Codes haalt 33 bits uit hetzelfde algoritme en koppelt die aan drie woorden uit een lijst van 2.048. Dat geeft 8.589.934.592 combinaties. Eén gok is goed met een kans van ongeveer 1 op 8,6 miljard.
De woordenlijsten bestaan in negen talen: Engels, Duits, Frans, Spaans, Italiaans, Nederlands, Portugees, Latijn en Esperanto. De laatste twee zijn er voor teams die niet afhankelijk willen zijn van één nationale taal. De taal bepaalt welke woorden je ziet, niet hoe moeilijk ze te raden zijn.
3. De code vertelt je wie er spreekt
Bij een authenticator moet je van tevoren weten bij welk account een code hoort. De code zelf zegt niets.
Bij Trusted Codes werkt het ook andersom. Elk lid van een verbinding heeft eigen woorden, en die zijn in elke verbinding anders. Noemt iemand je drie woorden, dan typ of zeg je ze, en de app laat zien wie het is: ‘Anna, M&A-project’. Het opzoeken gebeurt op je telefoon. Het is als nummerherkenning die geen buitenstaander kan vervalsen.
4. Geen technische kennis nodig
Wilde je een authenticator-code met een team delen, dan zou je een geheim moeten genereren, er een QR-code van maken, die veilig aan iedereen verspreiden en dat voor elke nieuwe persoon herhalen. Alleen een ontwikkelaar zou dat doen, en bijna niemand doet het.
Met Trusted Codes maak je een verbinding aan, bijvoorbeeld voor een deal, voor je financiële afdeling of voor alle betalingen boven € 50.000, en nodig je de mensen uit. De app doet de rest. Een authenticator geeft je de onderdelen van een slot, voor één website-login. Trusted Codes geeft je het kant-en-klare slot, en jij deelt alleen de sleutels uit.
5. Gemaakt voor groepen
Een authenticator-code hoort bij één persoon en één account. Een verbinding in Trusted Codes kan uit twee mensen bestaan of uit een heel team. Standaard ziet elk lid eigen woorden voor die verbinding, en kan elk lid elk ander lid controleren. Het bestuur, de financiële afdeling en de externe advocaat kunnen één verbinding vormen, en een betaalverzoek binnen die groep is in seconden te controleren.
6. De woorden worden op je toestel berekend
Net als een authenticator berekent Trusted Codes de woorden op de telefoon. Het vraagt een server niet om de woorden van vandaag, dus de controle werkt ook zonder netwerkverbinding: in een lift, in het buitenland of in een gebouw zonder bereik.
‘Maar een authenticator-code verandert elke 30 seconden’
Dit is het meest gehoorde bezwaar, en het verdient een direct antwoord.
Een logincode verandert elke 30 seconden omdat een loginformulier door een machine kan worden aangevallen: een script kan duizenden codes proberen, en een via phishing buitgemaakte code kan direct opnieuw worden gebruikt. Een kort tijdvenster beperkt dat.
Een gesprek tussen mensen is een andere situatie. Niemand kan in een telefoongesprek duizenden codes proberen. De aanvaller heeft één poging, en een fout antwoord beëindigt het gesprek. Om te slagen zou de aanvaller de actuele woorden moeten kennen van precies deze verbinding, van precies deze persoon, voordat ze veranderen. En een code van 30 seconden zou tussen mensen onbruikbaar zijn: tegen de tijd dat je ‘wat is onze code?’ hebt gevraagd en de ander de app heeft geopend, zou hij al veranderd zijn.
Het interval in Trusted Codes wordt daarom gemeten in uren, niet in seconden. Voor verbindingen is het met een Business-abonnement in te stellen van zes uur tot 30 dagen, afhankelijk van hoe gevoelig de relatie is. Beacons, die medewerkers aanzetten tijdens een gesprek met een klant, wisselen binnen enkele minuten. En een gok heeft nog altijd een kans van 1 op 8,6 miljard.
Kort samengevat
Het algoritme is hetzelfde; de taak is anders. Een authenticator bewijst aan een server dat jij inlogt. Trusted Codes bewijst aan een mens dat jij het bent, op elk kanaal, in woorden die je hardop kunt zeggen.