'''Applen Mac OSmacOS''' käyttöjärjestelmistä käyttöjärjestelmästä on useita eri versioita, viimeisin niistä on Catalina'''Monterey'''. macOS käyttää [https://en.wikipedia.org/wiki/Keychain_(software) Keychain Access]-ohjelmaa varmennevarastona jossa aiemmin [[Tokend]]-rajapintaa käytettäessä näkyivät myös [[Henkilökortti|henkilökortin]] varmenteet. Uudemmat versiot macOS-versiot käyttävät CryptoTokenKit-rajapintaa (CTK) ja varmenteet eivät enää näy Keychain Access ohjelmassa.
Mac OS:ssa käyttää KeyChain ongelmasta seuraa, ettei mm Applen oma Safari-selain tai sähköpostiohjelma näe käyttäjän kortilla olevia varmenteita. Ongelmaa pystyi aiemmin kiertämään asentamalla vapaan lisenssin [[https://en.wikipedia.org/wiki/Keychain_(software) Keychain AccessOpenSC]]-ohjelmaa varmennevarastona jossa näkyvät myös väliohjelmiston, mutta se ei enää toimi 2017 alusta myönnettyjen, eli [[HSMHenkilökortti#Versiot|G3 sukupolven]] korttien kanssa koska sieltä puuttuu uuden [[Henkilökortti/Oberthur|Oberthur]]-laitteetkortin ajuri.
Henkilökorttien tuki Kaikesta edelläolevasta seuraa, että macOS-käyttäjille ainoa realistinen vaihtoehto on ennen Catalinakäyttää [[Firefox]]-selainta. Etäyhteyttä käytettäessä (VNC ikkunointi, ssh pääteyhteys) macOS ei rajoita paikallisten varmennekorttien käsittelyä paikallisiin istuntoihin kuten [[Windows]] tekee tietoturvasyistä. == Historia =='''Mac OS X Lion 10.7 -10.12'''<ref name='jamf-pumaska'>[https://www.jamf.com/resources/technical-papers/macos-smart-card-versiota overview/macOS jamf.com Smart Card Overview]</ref> henkilökorttien tuki ollut tuettuna [[Tokend]]-rajapinnalla. Siitä tehtiin avointa lähdekoodia ja se siirrettiin macosforge- ja github kehitysportaaleihin. Kehittäjät ilmeisesti olleet [[OpenSC]]-projektin aktiiveja. '''Mac OS X Sierra 10.12 - High Sierra 10.13''' [[CryptoTokenKit]]-rajapinnan (CTK) käyttöönotto. '''macOS Mojave''' Keyring toimii, käyttäjä-varmenne-pairing toimii. '''macOS Catalina 10.15.0''' Tokend poistettu, ainoastaan CryptoTokenKit tuettu. '''macOS Big Sur 11.2.2''' samat CTK-ongelmat jatkuvat. '''sc_auth''' komento, keyring eivät toimi oletetusti. '''macOS Monterey 12.0.1''' DigiSign 4.2.0b näyttäisi toimivan Firefoxin kanssa, CTK- ja Keyring- ja Safari ongelmat jatkuvat. == Kortinlukijat ==Toimii:* Gemalto (was Gemplus) GemPC Twin SmartCard Reader (usb: 08e6:3437) Ei toimi:* OmniKey AG CardMan 3021 / 3121 (usb: 076b:3021) == Asennus == Henkilökortin käyttö vaatii väliohjelmiston asennuksen. === Digisign Client ===Digiviraston webistä on poistettu siellä aiemmin ollut ''ei toimi Safari 12 version kanssa'' varoitus (2021-11-07), mutta siitä huolimatta Safari ei tunnu toimivan kuten ennenkään. * [https://dvv.fi/mac-versiot dvv.fi/mac-versiot] Ohjelmiin asettava PKCS11 kirjaston polku on: /Library/mPolluxDigiSign/libcryptoki.dylib === OpenSC === Osalle tarvittavia ohjelmia ei ole saatavilla Applen .dmg levykuvaa ja/tai natiivia .pkg pakettia. Asentamalla ns [https://brew.sh/ Home Brew pakettienhallintaohjelmiston], ohjelmien asennuksen ja päivittäminen helpottuu huomattavasti. Sen asennusohjeet löytyvät omilta sivuiltaan. Komentotulkki-ikkunassa: % sudo brew install opensc Asennuksen jälkeen voi kokeilla näkeekö OpenSC kortinlukijan: % opensc-tool -l # Detected readers (pcsc) Nr. Card Features Name 0 No Gemalto PC Twin Reader Ja toimivatko varmenteiden listaaminen: % pkcs15-tool -c Using reader with a card: Gemalto PC Twin Reader X.509 Certificate [todentamis- ja uudemmat käyttävät salausvarmenne] Object Flags : [0x00] Authority : no Path : 3f004331 ID : 45 Access Rules : read:<always>; Encoded serial : 02 04 3BC409C1 X.509 Certificate [allekirjoitusvarmenne] Object Flags : [0x00] . . . Ohjelmiin asettava PKCS11 kirjaston versiosidonnainen polku on: /usr/local/Cellar/opensc/0.22.0/lib/onepin-opensc-pkcs11.so == Sovellukset == === Firefox === Firefoxin turvaväline-asetuksiin ladattava pkcs11-oduuli toimii ongelmitta. === Chrome ===PKCS11-tuen asettelu Chrome-selaimeen vaatisi modutil komennon joka on osa nss-tools pakettia. Ohjelmasta on vain lähdekoodit joten sen asentaminen vaatisi nss-tools paketin kääntämistä kääntäjällä. == Ongelmanratkaisut == * '''Finder -> Applications -> Utilities -> System Information.app''' listaa järjestelmän tietoja. ** '''Hardware -> Card Reader''' osiossa näkyy älykortinlukijat.** '''Software -> SmartCards''' osiossa näkyy ajurien ja prosessien tietoja ([[Tokend]]/[[CryptoTokenKit]]). Samat tiedot näkyvät komennolla: % system_profiler SPSmartCardsDataType * CryptoTokenKit palvelun tila: % sudo launchctl print system/com.apple.ctkd | grep state state = running * Listaa älykortit: % security list-rajapintaasmartcards No smartcards found. * Listaa varmenteet: % security smartcards token -l * Vanhan Tokend aktivointi on mahdollista Mojavessa jos sitä jostain syystä tarvitsisi ([https://www.unix.com/man-page/mojave/7/SmartCardServices-legacy/ SmartCardServices-legacy]): % sudo defaults write /Library/Preferences/com.apple.security.smartcard Legacy -bool trueMojavea uudemmissa versioissa Tokend on kokonaan poistettu. * '''Safari ei toimi henkilökortin kanssa''' Catalinassa ja uudemmissa, ennen vuoden 2017 alkua myönnetyillä korteilla asentamalla OpenSC ongelma korjaantuu. Muuten [[Firefox]]in käyttö DigSign PKCS11-pluginin kanssa on ainoa vaihtoehto. * '''SmartCard pairing failed''' ''Cannot pair SmartCard with the current user. The operation couldn't be completed. (OSStatus error -67808 - RSA signature verification failed, no match)''. Korjaus ongelmaan on poistaa Digiviraston [[DigiSign Client]] ohjelmapaketti, asentaa [[OpenSC]] ja uudelleenkäynnistää kone. Sen jälkeen käyttäjätilin ja varmenteen paritus onnistuu ja jopa Safari-selain toimii tunnistusvarmenteella. [[Tiedosto:MacOS.Catalina.smartcard.pairing.failed.png|right|200px|thumb|Virhe 67808: Varmenteen tarkistus epäonnistuu.]]
== Katso myös ==
* [[Apple]]* [[OpenVPN/macOS]]* [[Firefox]]* [[Chrome]] == Aiheesta muualla ==* [https://ludovicrousseau.blogspot.com/search/label/Mac OS%20OS%20X Ludovic Rousseau - smartcards and macOS]* [https://github.com/kenh/keychain-pkcs11 github.com/kenh/keychain-pkcs11] tarjoaa pkcs#11 rajapinnan älykorteilta ja keychain-varastosta. == Lähteet ==<references/> [[Luokka:Käyttöjärjestelmät]]