Wat is certificaatpinning?

Het vastmaken van certificaten is een beveiligingstechniek waarbij alleen geautoriseerde of vastgemaakte certificaten worden geaccepteerd bij het tot stand brengen van een beveiligde sessie. Pogingen om een beveiligde sessie tot stand te brengen met behulp van een ander certificaat, worden geweigerd.

Geschiedenis van het vastmaken van certificaten

Het vastmaken van certificaten werd oorspronkelijk bedacht als een middel om man-in-the-middle -aanvallen (MITM) te dwarsbomen. Het vastmaken van certificaten werd eerst populair in 2011 als gevolg van het compromis van de DigiNotar Certificate Authority (CA), waar een aanvaller jokertekencertificaten kon maken voor verschillende websites met een hoog profiel, waaronder Google. Chrome is bijgewerkt om de huidige certificaten voor de websites van Google vast te maken en zou elke verbinding weigeren als er een ander certificaat werd gepresenteerd. Zelfs als een aanvaller een manier heeft gevonden om een CA te overtuigen van het uitgeven van een frauduleus certificaat, wordt het nog steeds herkend door Chrome als ongeldig en wordt de verbinding geweigerd.

Hoewel webbrowsers zoals Chrome en Firefox tot de eerste toepassingen behoren om deze techniek te implementeren, is het aantal gebruiksvoorbeelden snel uitgebreid. IoT-apparaten (Internet of Things), mobiele iOS- en Android-apps en een ongelijksoortige verzameling softwaretoepassingen begon deze techniek te gebruiken om te verdedigen tegen Man-in-the-Middle-aanvallen.

Gedurende enkele jaren werd het vastmaken van certificaten beschouwd als een goede beveiligingspraktijk. Het toezicht op het openbare PKI-landschap (Public Key Infrastructure) is verbeterd met transparantie in uitgifteprocedures van openbaar vertrouwde CA's.

Het vastmaken van certificaten in uw toepassing oplossen

Normaal gesproken bevat een toepassing een lijst met geautoriseerde certificaten of eigenschappen van certificaten, waaronder DN-onderwerpnamen, vingerafdrukken, serienummers en openbare sleutels. Toepassingen kunnen worden vastgemaakt aan afzonderlijke leaf- of end-entity-certificaten, onderliggende CA-certificaten of zelfs basis-CA-certificaten.

Als uw toepassing expliciet een lijst met acceptabele CA's opgeeft, moet u mogelijk periodiek vastgemaakte certificaten bijwerken wanneer certificeringsinstanties worden gewijzigd of verlopen. Als u het vastmaken van certificaten wilt detecteren, raden we u aan de volgende stappen uit te voeren:

  • Als u een toepassingsontwikkelaar bent, zoekt u de broncode naar een van de volgende verwijzingen voor de CA die verandert of verloopt. Als er een overeenkomst is, werkt u de toepassing bij om de ontbrekende CA's op te nemen.

    • Certificaatvingerafdrukken
    • DN-namen voor onderwerp
    • Algemene namen
    • Serienummers
    • Openbare sleutels
    • Andere certificaateigenschappen
  • Als uw aangepaste clienttoepassing is geïntegreerd met Azure-API's of andere Azure-services en u niet zeker weet of deze gebruikmaakt van certificaatpinning, neem dan contact op met de leverancier van de toepassing.

Beperkingen voor het vastmaken van certificaten

De praktijk van het vastmaken van certificaten is veel betwist omdat het onacceptabele kosten voor certificaatflexibiliteit draagt. Een specifieke implementatie, HTTP Public Key Pinning (HPKP), is helemaal afgeschaft

Omdat er geen enkele webstandaard is voor hoe certificaatpinning wordt uitgevoerd, kunnen we geen directe richtlijnen bieden bij het detecteren van het gebruik ervan. Hoewel het niet raadzaam is om certificaten vast te maken, moeten klanten zich bewust zijn van de beperkingen die deze procedure maakt als ze ervoor kiezen deze te gebruiken.

Volgende stappen