Opzioni avanzate per le smart card sul Mac
Impostazioni per la configurazione delle smart card
Puoi visualizzare e modificare i log e le impostazioni di configurazione specifiche della smart card su un Mac utilizzando la seguente riga di comando per le opzioni seguenti:
Elencare i token disponibili nel sistema.
pluginkit -m -p com.apple.ctk-tokens
com.apple.CryptoTokenKit.setoken(1.0)
com.apple.CryptoTokenKit.pivtoken(1.0)
Abilitare, disabilitare o elencare i token smart card disabilitati.
sudo security smartcards token [-l] [-e token] [-d token]
Annullare l’abbinamento della smart card.
sudo sc_auth unpair -u jappleeed
Visualizzare le smart card disponibili.
sudo security list-smartcards
Esportare degli elementi da una smart card.
sudo security export-smartcard
Login della smart card.
sudo defaults write /Library/Preferences/com.apple.security.smartcard Logging -bool true
Disabilitare i token PIV integrati.
sudo defaults write /Library/Preferences/com.apple.security.smartcard DisabledTokens -array com.apple.CryptoTokenKit.pivtoken
Oltre a utilizzare la riga di comando, anche le seguenti opzioni possono essere gestite utilizzando il payload della smart card. Per ulteriori informazioni, consulta le impostazioni del payload MDM Smart Card.
Sopprimere la richiesta di abbinamento al momento dell’inserimento del token.
sudo defaults write /Library/Preferences/com.apple.security.smartcard UserPairing -bool false
Limitare l’abbinamento di account utente a una sola smart card.
sudo defaults write /Library/Preferences/com.apple.security.smartcard oneCardPerUser -bool true
Disattivare gli utenti smart card per il login e l’autorizzazione.
sudo defaults write /Library/Preferences/com.apple.security.smartcard allowSmartCard -bool false
Nota: quando disabiliti allowSmartCard, le identità dei certificati delle smart card possono ancora essere utilizzate per altre operazioni come la firma e la crittografia e in app di terze parti.
Gestire il comportamento di autorizzazione dei certificati smart card.
sudo defaults write /Library/Preferences/com.apple.security.smartcard checkCertificateTrust -int <value>
Il valore può essere uno dei seguenti:
0: non è richiesta l’autorizzazione del certificato smart card.
1: Il certificato smart card e la catena devono essere autorizzati.
2: Il certificato smart card e la catena devono essere autorizzati e non devono ricevere uno stato di revocato.
3: Il certificato smart card e la catena devono essere autorizzati e ricevono lo stato di revoca valido.
Pinning dei certificati
È possibile specificare quali autorità di emissione di certificati vengono utilizzate per la verifica dell’attendibilità dei certificati delle smart card. Questa funzionalità, che funziona con le impostazioni di attendibilità dei certificati (1, 2 o 3 richiesti), viene chiamata pinning dei certificati. Posiziona impronte SHA-256 di autorità di certificazione (come valori stringa, delimitati da virgola e senza spazi) in un array con nome TrustedAuthorities
. Utilizza il file /private/etc/SmartcardLogin.plist di esempio riportato di seguito come riferimento. Quando il pinning dei certificati viene utilizzato, solo i certificati di smart card emessi dalle autorità di certificazione inserite nell’elenco vengono valutati come attendibili. Tieni presente che l’array TrustedAuthorities
viene ignorato quando checkCertificateTrust
è impostato su 0 (non attivo). Dopo la modifica, verifica che la proprietà sia impostata su “root” e che i permessi consentano la lettura a tutti.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AttributeMapping</key>
<dict>
<key>dsAttributeString</key>
<string>dsAttrTypeStandard:AltSecurityIdentities</string>
<key>fields</key>
<array>
<string>NT Principal Name</string>
</array>
<key>formatString</key>
<string>Kerberos:$1</string>
</dict>
<key>TrustedAuthorities</key>
<array>
<string>SHA256_HASH_OF_CERTDOMAIN_1,SHA256_HASH_OF_CERTDOMAIN_2</string>
</array>
</dict>
</plist>