Key Containers

Key Containers är en teknikalitet inom PKI vars detaljer de flesta kan lämna åt leverantörsledet. Men i vissa fall kan det vara bra att veta hur man kontrollerar vilket certifikat på ett kort med multipla certifikat som är ”default”. Certifikaten ”numreras” nämligen i Windows via sin Key Container. Att veta vilket certifikat som är default kan vara bra om man stöter på applikationer som saknar logik och gränssnitt för att välja bland flera certifikat. Exempel på applikationer som saknar logik/gränssnitt för certifikatsval är:

Novell-klienten med sin Gina

Windows inbyggda VPN-klient

Runas.exe
runas /smartcard notepad

Net.exe
net use /smartcard \\datornamn\resursnamn

Inte sällan väljer sådana applikationer default-certifikatet som ligger i default key container. Innan vi går in på hur man kan tvinga applikationer av denna typ att välja ”rätt” oberoende av vad som klassats som default ska vi här gå igenom hur man kontrollerar hur det verkligen förhåller sig på ett givet kort. Man bör i vissa lägen inte förlita sig på tumregeln att det certifikat på kortet som är senast utfärdat är default (OBS! Senast utfärdat behöver inte betyda senast ditlagt)

Här har vi ett kort med tio certifikat

keycon001

Samma sak men sett via certifikats-snapin i MMC

keycon002

Ett tredje sätt att se de tio certifikaten (eller i detta fall 9 då rotcertet på kortet inte läggs i Mystore)
Nu startar vi en kommandoprompt och ger kommandot: certutil -viewstore -user My
Men detta ger bara ett tredje sätt att se samma sak.

keycon003

Visa keycontainers/nyckelbehållare

Men om vi anger anger detta kommande kommer vi närmare: certutil -key -csp ”Net iD – CSP”
Tyvärr visar inte Microsofts verktyg ”certutil.exe” hur de olika ”behållarnamnen” förhåller sig till certifikaten. Men nu vet vi vad ”Default Key Container/Standardbehållare” heter.

keycon004

Visa en specifik keycontainers/nyckelbehållare

Då fortsätter vi med ett modifierat kommando med växeln -viewstore:
certutil -viewstore -user My B12BC48CE574C5B1B853397074058580EA366178
Då får vi svaret direkt på skärmen. Kom ihåg att ersätta B12BC48CE574C5B1B853397074058580EA366178 med just ditt värde.

keycon005

Bra, då vet vi vilket certifikat som är default och varför alltid just detta certifikat väljs av den aktuella applikationen utan logik/gränssnitt för att välja.

Key Containers i filsystemet

+ User containers:

– Windows 7:

C:\Users\<user_name>\AppData\Roaming\Microsoft\Crypto\RSA

– Windows XP:

C:\Documents and Settings\<user_name>\Application Data\Microsoft\Crypto\RSA

+ Machine containers:

– Windows 7:

C:\Users\All Users\Application Data\Microsoft\Crypto\RSA

– Windows XP:

C:\Documents and Settings\all users\Application Data\Microsoft\Crypto\RSA