Ergens in de installatie-instructies wordt een map in zijn geheel naar elke laptop gekopieerd omdat dat eenvoudiger was dan beslissen welke bestanden er thuishoren. Die map bevat ca.key, en op het moment dat hij een tweede apparaat bereikt, is de certificaatautoriteit geen autoriteit meer. Elke houder kan nu identiteiten uitgeven die de rest van het netwerk zal vertrouwen.

Deze verwarring is het één keer waard om te ontrafelen, omdat de twee bestanden op elkaar lijken en tegenovergestelde dingen doen.

Verificatiemateriaal en ondertekeningsmateriaal

Een client heeft het openbare certificaat van de CA nodig om te controleren dat het certificaat dat een tegenpartij voorlegt, door die autoriteit is ondertekend. Dat is een verificatietaak en hij vereist helemaal geen geheim. Het ondertekenen van een certificaat van een tegenpartij is een andere taak, één keer uitgevoerd door degene die de CA beheert, met de persoonlijke sleutel die zijn beveiligde opslag nooit verlaat. Die twee taken gescheiden houden is het hele punt van twee bestanden leveren.

Dus ca.crt hoort in het profiel en ca.key hoort nergens in de buurt. De bestandsnamen zijn een conventie, geen garantie, en daarom moet het type worden onderzocht in plaats van uit de naam afgeleid.

Een architectuur met een tussenliggende CA of een online uitgifteservice is daarop geen uitzondering. Het is de gebruikelijke manier om ondertekeningsvermogen bij de eindpunten weg te houden terwijl apparaatcertificaten op schaal worden uitgegeven.

Wat een client met zijn eigen sleutel moet bewijzen

Elk apparaat krijgt zijn eigen sleutelpaar en zijn eigen certificaat, één keer door de CA ondertekend. De client toont dat certificaat en bewijst dat hij de bijbehorende persoonlijke sleutel bezit, en de server beslist of hij het accepteert. Dat is de identiteit die wordt ingetrokken wanneer een laptop verloren gaat.

Het contrast telt het meest na een diefstal. Met identiteiten per apparaat wordt één blootgestelde client verwijderd door intrekking of door de tegenpartij te verwijderen, en de rest van de vloot blijft werken.

Een uitgelekte autoriteitssleutel kan niet zo worden behandeld. Elk certificaat dat hij ooit heeft ondertekend of had kunnen ondertekenen, wordt verdacht, dus het antwoord is een vervanging van het vertrouwen en niet één intrekking. Dat is een project, geen ticket.

FileRoleBelongs on
ca.crtPublic certificate used to verify signaturesEvery client profile
ca.keyPrivate key that issues certificatesProtected CA storage only
client key pairProves one device's identityThat device alone

Lees een bestand voordat je het ergens kopieert

Twee opdrachten vertellen je wat voor soort object je in handen hebt zonder een geheim af te drukken. De eerste noemt het subject en de CA-vlag op een certificaat; de tweede valideert een sleutel en meldt het type. Voer beide uit op de bestanden in het bundel dat je gaat verspreiden. Alles wat als persoonlijke sleutel valideert, hoort niet in een clientmap.

openssl x509 -in ca.crt -noout -subject -ext basicConstraints
openssl pkey -in ca.key -noout -check

Als de tweede opdracht slaagt op een bestand dat in een clientbundel zit, stop dan en behandel het bundel als gecompromitteerd. Uitvoer die zegt dat een sleutel geldig is, zegt ook dat hij aanwezig is, en de aanwezigheid is het hele probleem.

Let ook op de andere richting: een clientprofiel bevat rechtmatig de persoonlijke sleutel van die client. Elke gevonden sleutel verwijderen breekt de verbinding zonder iets te verbeteren, dus het object moet worden geïdentificeerd voordat het wordt verwijderd.

Een sleutel die je al hebt verspreid indammen

Ga er niet van uit dat het verwijderen van de lokale kopie de blootstelling terugdraait. Iedereen die het bestand heeft gehad, kan het hebben gekopieerd, en de veilige aanname is dat dit is gebeurd. Volg het incidentproces van de operator en vervang de vertrouwensanker, door apparaatcertificaten opnieuw uit te geven onder een nieuwe CA.

Verander daarna de verpakking die het probleem heeft veroorzaakt. Stuur een maplijst met een expliciete lijst van toegestane bestanden, houd de CA-sleutel op een machine die nooit bij de clientvloot komt, en noteer welk systeem hem bewaart.

Als de autoriteit vaak moet uitgeven, verplaats het ondertekenen dan achter een dienst of een tussenliggende met een smalle scope en korte geldigheid. Zo legt een toekomstige fout een deelverzameling van de uitgifte bloot in plaats van de vertrouwenswortel van de hele uitrol.

Gerelateerde artikelen