Minidriver eller PKCS#15?

2013-10-19   John Allberg   Smartcards

Under de senaste veckorna har jag flera gånger fått frågan “Ska ska vi som organisation välja ett Microsoft Minidriver-kort eller PKCS#15?”. Jag misstänker att det är någon som är ute och pratar sig varm för Minidriver.

För mig som jobbar nära korten är det dock som att få frågan om de ska välja Office eller Windows.

Med PKCS#15 avses ISO/IEC 7815-15, även om det gamla namnet sitter kvar. Ovan ser ni strukturen för hur en applikation kan anropa ett smart kort. Den blå rutan omfattar programmeringsgränssnitt, API’r, medan den gröna rutan är innehållet på det smarta kortet.

Som ni ser hamnar Minidriver (gul) i den blå rutan medan ISO/IEC 7816-15 (gul) hamnar i den gröna rutan.

Enkelt, eller hur? Men om det nu är så enkelt, varför blir förvirringen så total att den omfattar även duktiga människor som varit med i branschen länge?

Vi får helt enkelt gräva djupare…

Vad är PKCS#15 och ISO/IEC 7816-15?

RSA tog fram PKCS#15 och förvaltningen av den togs sedan över av ISO och fick då namnet ISO/IEC 7816-15. ISO-varianten är helt enkelt version 2 av PKCS#15.

PKCS#15 togs fram som ett ”kryptofilsystem”, vilket innebär ett strukturerat sätt att som filer lagra t.ex. certifikat, PIN-koder och RSA-nycklar. I filsystemet finns informationen som behövs för att kunna utföra kryptooperationer. Att det blev ett filsystem är naturligt eftersom alla smarta kort på den här tiden hade filsystem.

Moderna kort som java-kort har inte något filsystem alls. Appleten för ISO/IEC 7816-15 applet måste därför implementera ett eget virtuellt filsystem. Resultatet är att implementationerna mer och mer använder sig av objekt istället för filer för t.ex. RSA-nycklar.

Vad är Minidriver?

Under lång tid har Microsoft CryptoAPI kunnat utökas genom att installera en Cryptographic Service Provider, CSP. Typiska exempel på den svenska marknaden är SecMaker Net iD eller Nexus Personal (vilken så småningom blev ”BankID säkerhetsprogram”).

Något som blev uppenbart efter en tid var att det är ofantligt svårt att bygga en CSP och det kraschade många Windows-installationer. Enligt normal jargong så var det ”naturligtvis” inte CSP-tillverkarens fel, utan Microsofts. *ironi*

Microsofts svar på det var att bygga en CSP, Microsoft Smart Card Base Cryptographic Service Provider, för smarta kort. Trots sitt namn vet den inte något om smarta kort utan måste kompletteras med en kodsnutt för varje kort. Den kodsnutten kallas för en Minidriver och var tänkt att utvecklas av korttillverkarna.

Tänk dig Minidrivern som en ”drivrutin” för ditt smarta kort.

Minidriver, eller mer formellt “Smart Card Minidriver Specification” är specifikationen av det API som ska uppfyllas av den lilla kodsnutten.

I detta API finns det även ett virtuellt filsystem som MS Smart Card Base CSP förutsätter att den kan hämta och skriva information till.

En korttillverkare kan välja att göra det virtuella filsystemet till ett fysiskt genom att skriva de filerna direkt på kortet, eventuellt med konvertering av namnen. Gemalto .Net och Gemalto IDPrime MD är exempel på detta. Då hamnar man i den röda rutan, vilket ju är en konkurrent till ISO/IEC 7816-15.

Man kan också välja att konvertera från detta virtuella filsystem till något annat objekt- eller filsystem, t.ex. PIV eller ISO/IEC 7816-15. PIV och Oberthur ECC är exempel på detta.

SecMaker Net iD kan installeras som en Minidriver och stödjer de flesta korten på svenska marknaden.

Minidriver installeras från Windows Update, eller hur?

Ett vanligt missförstånd är att Minidriver alltid installeras automatiskt från Windows Update. Som Net iD är ett exempel på, går det utmärkt att implementera ”Smart Card Minidriver Specification” utan att lägga upp programvaran gratis på Windows Update.

Det är dock en väldigt smidig leveransmodell och som följs av t.ex. Gemalto .Net och Oberthur ECC.

Min rekommendation

Låt oss gå tillbaka till ursprungsfrågan; vad ska myndigheter och organisationer välja, Microsoft Minidriver-kort eller PKCS#15?

Eftersom Minidriver är en Microsoft-specifikation så är det inte säkert att stödet för det på andra plattformar är fullständigt och risken att man får problem med en ren Minidrivermodell med den stora floran av klienter i framtiden är hög.

Min rekommendation är därför att välja ett ISO/IEC 7816-15 kort som har Minidriver-stöd.


Nästa inlägg ("E-legitimationsnämnden publicerar pris") >>
<< Tidigare inlägg ("Arbetsmöte ISO/SC17/WG4 i Singapore")
Dela på:    
John Allberg

John har arbetat med elektronisk identifiering och e-legitimationer sedan 2000. Först på Posten eSäkerhet mellan 2000 och 2004, sedan på Telia mellan 2004 och 2008. Från 2009 är han konsult inom området och 2010 grundade han Ayoy tillsammans med Oscar Jacobsson.