id: auth_smartcard_certificate_trust_enforce_high
title: Set Smartcard Certificate Trust to High
discussion: |
  The macOS system _MUST_ be configured to block access to users who are no longer authorized (i.e., users with revoked certificates).

  To prevent the use of untrusted certificates, the certificates on a smartcard card _MUST_ meet the following criteria: its issuer has a system-trusted certificate, the certificate is not expired, its "valid-after" date is in the past, and it passes Certificate Revocation List (CRL) and Online Certificate Status Protocol (OCSP) checking.

  By setting the smartcard certificate trust level to high, the system will execute a hard revocation, i.e., a network connection is required. A verified positive response from the OSCP/CRL server is required for authentication to succeed.

  NOTE: Before applying this setting, please see the smartcard supplemental guidance.
check: |
  /usr/bin/osascript -l JavaScript << EOS
  $.NSUserDefaults.alloc.initWithSuiteName('com.apple.security.smartcard')\
  .objectForKey('checkCertificateTrust').js
  EOS
result:
  integer: 3
fix: |
  This is implemented by a Configuration Profile.
references:
  cce:
    - CCE-95136-8
  cci:
    - N/A
  800-53r5:
    - IA-5(2)
    - SC-17
  800-53r4:
    - IA-2(12)
    - IA-5(2)
  srg:
    - N/A
  disa_stig:
    - N/A
  cmmc:
    - SC.L2-3.13.10
macOS:
  - '26.0'
tags:
  - 800-53r4_high
  - 800-53r5_high
  - cnssi-1253_high
  - cnssi-1253_moderate
  - cnssi-1253_low
  - cmmc_lvl2
mobileconfig: true
mobileconfig_info:
  com.apple.security.smartcard:
    checkCertificateTrust: 3
