Zaawansowane opcje kart inteligentnych na Makach
Ustawienia konfiguracji kart inteligentnych
Możesz wyświetlać i edytować określone ustawienia konfiguracji karty inteligentnej i dzienniki na komputerze Mac, używając wiersza polecenia dla następujących opcji:
Lista tokenów dostępnych w systemie.
pluginkit -m -p com.apple.ctk-tokens
com.apple.CryptoTokenKit.setoken(1.0)
com.apple.CryptoTokenKit.pivtoken(1.0)
Włączanie, wyłączanie lub wyświetlanie listy wyłączonych tokenów kart inteligentnych.
sudo security smartcards token [-l] [-e token] [-d token]
Rozłączenie pary z kartą inteligentną.
sudo sc_auth unpair -u jappleeed
Wyświetlanie dostępnych kart inteligentnych.
sudo security list-smartcards
Eksportowanie elementów z karty inteligentnej.
sudo security export-smartcard
Generowanie dziennika kart inteligentnych.
sudo defaults write /Library/Preferences/com.apple.security.smartcard Logging -bool true
Wyłączanie wbudowanych tokenów PIV.
sudo defaults write /Library/Preferences/com.apple.security.smartcard DisabledTokens -array com.apple.CryptoTokenKit.pivtoken
Poza wierszem poleceń, tymi opcjami można zarządzać za pomocą pakietu danych karty inteligentnej. Aby uzyskać więcej informacji, zobacz: Ustawienia obsługiwanego przez MDM pakietu danych Smart Card.
Pomijanie komunikatu o połączenie w parę po włożeniu tokenu.
sudo defaults write /Library/Preferences/com.apple.security.smartcard UserPairing -bool false
Ograniczanie łączenia kont użytkownika w parę do jednej karty inteligentnej.
sudo defaults write /Library/Preferences/com.apple.security.smartcard oneCardPerUser -bool true
Wyłączanie możliwości logowania i uwierzytelniania użytkownika karty inteligentnej.
sudo defaults write /Library/Preferences/com.apple.security.smartcard allowSmartCard -bool false
Uwaga: Gdy klucz allowSmartCard jest wyłączony, certyfikaty na karcie inteligentnej mogą być nadal używane do innych operacji (takich jak podpisywanie lub szyfrowanie) oraz w obsługiwanych aplikacjach innych firm.
Zarządzanie zaufaniem do certyfikatów karty inteligentnej.
sudo defaults write /Library/Preferences/com.apple.security.smartcard checkCertificateTrust -int <value>
Możesz podać jedną z następujących wartości:
0: Zaufanie do certyfikatu karty inteligentnej nie jest wymagane.
1: Wymagane jest zaufanie do certyfikatu karty inteligentnej oraz do łańcucha certyfikacji.
2: Wymagane jest zaufanie do certyfikatu i do łańcucha certyfikacji. Nie mogą one mieć statusu „unieważniony”.
3: Wymagane jest zaufanie do certyfikatu i do łańcucha certyfikacji. Zapytanie o ich status musi zwracać odpowiedź potwierdzającą ich ważność.
Przypinanie certyfikatów (certificate pinning)
Istnieje możliwość zdefiniowania, które urzędy certyfikacji mają być używane w łańcuchu zaufania certyfikatów z karty inteligentnej. To zaufanie, które działa w połączeniu z ustawieniami zaufania certyfikatu (wymagane jest użycie wartości 1, 2 lub 3) jest nazywane certificate pinning, czyli „przypinaniem certyfikatów”. Umieść numery seryjne (fingerprinty) SHA-256 urzędów certyfikacji w tablicy o nazwie TrustedAuthorities
(jako wartości ciągu, rozdzielone przecinkiem, bez spacji). Jako wzoru użyj przedstawionego poniżej przykładowego pliku /private/etc/SmartcardLogin.plist. Gdy używane jest „przypinanie certyfikatów”, jako zaufane uznawane są tylko certyfikaty z karty inteligentnej, które zostały wystawione przez urzędy certyfikacji znajdujące się w tej tablicy. Zwróć uwagę, że tablica TrustedAuthorities
jest ignorowana, gdy klucz checkCertificateTrust
ustawiony jest na wartość 0 (wyłączony). Po dokonaniu edycji pliku upewnij się, że jako właściciel ustawiony jest użytkownik root, a uprawnienia umożliwiają odczyt przez dowolnego użytkownika.
<?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>