DynDaCo

Certificaten, eenmalige codes en licenties voor een beveiligingsbedrijf

Sector
Authenticatie en digitale beveiliging
Periode
2007–2015
Rol
Ontwikkelaar, later verantwoordelijke voor de sleutel- en berichtensystemen
Stack
Ruby on Rails · PostgreSQL · PKI · SMS-routering · REST-API's

Situatie

Een bedrijf dat authenticatie verkoopt, moet ervoor zorgen dat systemen die het intern draait, minstens even betrouwbaar zijn als wat het verkoopt. Drie daarvan moesten gebouwd of vervangen worden.

Cryptografisch materiaal werd met de hand uitgegeven. Certificaten en sleutelparen werden ad hoc aangemaakt, met de parameters telkens opnieuw ingetypt en met het overzicht van wie wat had uitgegeven in de hoofden van mensen en in shell-geschiedenis — precies de situatie waar een auditor het eerst naar vraagt.

Eenmalige codes moesten toestellen in tientallen landen bereiken, waar de verstandige weg naar een gsm per bestemming verschilt en na verloop van tijd verandert.

En commercieel had niemand één antwoord op "waar heeft deze klant recht op" — welke producten, welke edities, op welke hardware, onder welk contract.

Wat ik gebouwd heb

Een dienst voor sleutels en certificaten. Operatoren maken sleutelparen, certificaataanvragen en certificaten aan via een webinterface, of machines doen dat via een REST-API. Certificaatautoriteiten zijn een eersterangs begrip, en herbruikbare profielen dragen de parameterreeksen, zodat de gangbare gevallen een keuze zijn in plaats van een formulier om over te typen — wat de categorie fouten wegneemt waarbij een certificaat met subtiel verkeerde gebruiksvlaggen uitgegeven wordt. Sleutels zitten in aanspreekbare slots. Elke handeling komt in een auditspoor dat bedoeld is om door iemand met argwaan gelezen te worden.

Een gateway voor het afleveren van codes. Accounts dienen berichten in via een API en de gateway beslist hoe elk bericht afgeleverd wordt: routeringstabellen kiezen een kanaal per bestemmingsland, zodat een andere operator een configuratiewijziging is en geen uitrol. De aflevering wordt per bericht opgevolgd, en elke aanvraag wordt gelogd in een vorm die achteraf naast elkaar te leggen valt — want wanneer een klant zegt "de code is nooit toegekomen", moet het antwoord bewijs zijn en geen vermoeden.

De commerciële registratie. Klanten, contracten, en de producteditie en uitbreidingen die elk contract dekt, samen met de fysieke toestellen die ertegen geleverd zijn en het retourproces wanneer hardware terugkomt. Partners en verdelers zitten in hetzelfde model, en klanten zien hun eigen rechten via een zelfbedieningsportaal in plaats van het aan iemand te moeten vragen.

Resultaat

Sleutels uitgeven werd een controleerbare, herhaalbare handeling in plaats van een expertenbezigheid. De routering van codes werd iets dat operations kon aanpassen zonder release. En "waar heeft deze klant recht op" kreeg één antwoord.

De rode draad is weinig spectaculair: alle drie vervingen ze kennis die in bepaalde hoofden zat door een systeem dat ze expliciet maakt en vastlegt wat het gedaan heeft. Dat is het grootste deel van wat dit soort werk eigenlijk is.

← Al het werk