<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
Shawn,&nbsp;
<div><span class="Apple-tab-span" style="white-space:pre"></span>After many conversations with you,&nbsp;I'm pretty familiar with how this whole process is supposed to work, and in fact&nbsp;I've used methods A, B and C to do smart card login on 10.6.8 and previous,
 but no matter what I've tried, I've been unable to do so with 10.7/10.8.</div>
<div>Like Will, I've never even seen a smart card specific prompt at the login window.</div>
<div>I spent a little time on it again this week (I try it with every new seed available to me), and cannot seem to make the connections.</div>
<div><br>
</div>
<div>Details for my experiments today, starting with a machine that can read my smart card (and that works for pkinit or sc_auth in 10.6.8):</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Method A:</div>
<div>1.<span class="Apple-tab-span" style="white-space:pre"> </span>run sc_auth hash to get a list of available hashes</div>
<div>2.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>run sc_auth accept -u localusername -h longhashnumber</div>
<div>3.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>run&nbsp;security authorizationdb read system.login.console &gt; slc.plist</div>
<div>4.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>edit slc.plist to include&nbsp;&quot;builtin:smartcard-sniffer,privileged&quot; as the first mechanism (I've also tried moving it around in the mechanism list, but no luck)</div>
<div>5.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>run security authorizationdb write system.login.console &lt; slc.plist</div>
<div>6.&nbsp;<span class="Apple-tab-span" style="white-space:pre"> </span>logout/reboot to login window, insert card, brief flash, and no change. Window remains an empty user name and password field.</div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Method C:</div>
<div>1. remove hashes from previous sc_auth play.</div>
<div>2. Drop in /etc/cacloginconfig.plist (standard mapping, from the smartcard installer)</div>
<div>3. Ensure that certificate on card's NT Principal Name and user's userPrincipalName match</div>
<div>4. Ensure that certificate chain is trusted. Cert looks good, shows as trusted.</div>
<div>5. Check pkinit with&nbsp;kinit -C KEYCHAIN: -D KEYCHAIN: --windows --pk-enterprise</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>If &quot;virtual keychain&quot; for card is locked, I get&nbsp;kinit: krb5_get_init_creds: Create CMS signedData: RSA private encrypt failed: 569888</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>If&nbsp;&quot;virtual keychain&quot; for card is unlocked, I get&nbsp;kinit: krb5_get_init_creds: Client not trusted</div>
<div>Whoops. No matter how I google around, I can't find a solution for this piece.</div>
<div>The 569888 error does pop up in some heimdal mailing list with a reference to errors with small keys (512), but in this case the key is 2048.</div>
<div>Perhaps there is a bug in Apple's heimdal that chokes on both small /and/ large keys? Certainly a possibility. If so, where do I file this bug? With Apple? Will they support it given its with smart card pkinit?</div>
<div><br>
</div>
<div>In any case, checking the login window produces the same flash-but-no-change that I got with the sc_auth method. I expected as much.</div>
<div><br>
</div>
<div>Again, I've had all three methods working on 10.6.8, and I've done the first two much further back. None of this is new to me, yet I can't make it work.</div>
<div>Perhaps /someone/ involved with the smartcardservices project can actually document the procedures on 10.8, just in case there is something missing.</div>
<div>I realize that the heimdal error I'm getting is the biggest obstacle to using pkinit, but I'm quite surprised that I can't even make sc_auth work.&nbsp;</div>
<div><br>
</div>
<div>--DH</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>
<div>On May 28, 2013, at 11:44 AM, Shawn Geddis wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div>
<div>Will,</div>
<div><br>
</div>
<div>Questions / comments inline below...</div>
<div><br>
</div>
<div>On May 17, 2013, at 5:43 PM, &quot;Jorgensen, Will A&quot; &lt;<a href="mailto:Will@pnnl.gov">Will@pnnl.gov</a>&gt; wrote:</div>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>
<div>I'm trying to get a PIV card working for login on mountain lion. &nbsp;I installed the tokend and driver for the reader.</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Just to be sure we know your environment, you installed the PIV tokend from MacOSForge ? &nbsp;As for installing the driver for the reader, why did you need to do that ? &nbsp;Is the reader a non-CCID compliant reader or is it that the built-in CCID Class Driver
 just did not support that particular one ?</div>
<div><br>
</div>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>
<div>When I'm already logged in, the PIV card shows up in the keychain and the certificates show up as valid (I had to install some root certificates to get that).</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Question again on why you would need to install roots for certificates on a PIV card. &nbsp;Is this a self-generated PIV Card with internal / test identities and not US Federal Government issued Identities ? &nbsp;I ask because the
<b>System Root </b>Keychain should already have the necessary CA Roots Certificates for proper trust validation and revocation checking for US Federal Government issued Identities. &nbsp;If not, please let me know what was not there, so that I can correct that.</div>
<div><br>
</div>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>
<div>&nbsp;I've used sc_auth to enable the certificate for a local account.</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Just a note: This is the generic way to associate a card to a Directory Service account that would work with any supported card that can digitally sign data. &nbsp;This very capability made it possible for DoD Academy graduates to begin using their cards on
 OS X even though the cards only had an ID Identity and had not been issued with Email Signing Identities - DoD chose to set and Extended Key Usage for Smart Card Login to the Email Signing Certificate. &nbsp;</div>
<div><br>
</div>
<br>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>
<div>I've tried enabling and disabling the cacloginconfig.plist (my understanding is it should be disabled when logging in to a local account).
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>There are three methods for associating Smart Cards to your DS Record for authenticated Login:</div>
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div>a) <b>PubKeyHash</b><span class="Apple-tab-span" style="font-weight: bold; white-space: pre; ">
</span>- <b>pubkeyhash</b>;...... &nbsp;in&nbsp;AuthenticationAuthority of DS record</div>
<div>b)&nbsp;<b>Attribute Matching</b>&nbsp;<span class="Apple-tab-span" style="white-space:pre">
</span>-&nbsp;<b>/etc/cacloginconfig.plist</b>&nbsp;configured to map lookup key in DS</div>
<div>c)&nbsp;<b>PKINIT</b><span class="Apple-tab-span" style="font-weight: bold; white-space: pre; ">
</span>-&nbsp;<b>/etc/cacloginconfig.plist</b>&nbsp;&amp;&nbsp;<b>Kerberos</b>&nbsp;configured&nbsp;(ie.&nbsp;bound to&nbsp;AD)</div>
</div>
</blockquote>
<div>
<div><br>
</div>
<div>Default Smart Card &lt;-&gt; DSrecord association is indeed PubKeyHash method which is the use of the PubKeyHash entry in the AuthenticationAuthority attribute of your DS record. &nbsp;Out of the box this is the behavior.</div>
<div><br>
</div>
<div>*IF* the <b>/etc/cacloginconfig.plist </b>file exists, then the behavior switches to
<b>b)</b>&nbsp;<b>Attribute Matching</b>&nbsp; or <b>c)</b> <b>PKINIT</b> depending on the configuration of your system.</div>
<div><br>
</div>
<div>Configuration for each method:</div>
<div><b><br>
</b></div>
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div><b>PubKeyHash</b></div>
</div>
</blockquote>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div>
<ul class="MailOutline">
<li>Enable Smart Card Sniffer for Login Window
<ul>
<li>Update Authorization Databse (<b>/etc/authorization</b>)<span class="Apple-tab-span" style="white-space:pre">
</span>- Add &quot;smartcard-sniffer&quot; entries back in
<ul>
<li><span style="letter-spacing: 0px; ">&lt;string&gt;builtin:smartcard-sniffer,privileged&lt;/string&gt;</span></li></ul>
</li></ul>
</li><li>Add <b>PubKeyHash</b> of an Identity from Smart Card that has <b>key usage</b> of digital signature
<ul>
<li>Use the sc_auth command to add the hash from the card entry to your user record</li></ul>
</li><li>Switch to Login Window, insert card, enter PIN...</li></ul>
</div>
</div>
</blockquote>
<div>
<div><br>
</div>
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div><b>Attribute Matching&nbsp;</b></div>
<div><b><br>
</b></div>
<div>
<ul class="MailOutline">
<li><b><span style="font-weight: normal; ">Enable Smart Card Sniffer for Login Window</span></b>
<ul>
<li><b><span style="font-weight: normal; ">Update Authorization Databse (<b>/etc/authorization</b>)<span class="Apple-tab-span" style="white-space: pre; ">
</span>- Add &quot;smartcard-sniffer&quot; entries back in</span></b>
<ul>
<li><b><span style="font-weight: normal; ">&lt;string&gt;builtin:smartcard-sniffer,privileged&lt;/string&gt;</span></b></li></ul>
</li></ul>
</li><li>Add/Create Attribute Matching plist&nbsp;
<ul>
<li>Add/Create the /etc/cacloginconfig.plist file<span class="Apple-tab-span" style="white-space:pre">
</span>- option install in current MacOSForge installers</li><li>Set DS lookup key mapping from the&nbsp;Certificate&nbsp;to the DS Attribute.</li></ul>
</li><li>Configure selected DS attribute to equal the attribute value being pulled from cert</li><li>Switch to Login Window, insert card, enter PIN...</li></ul>
<div><br>
</div>
<div><b>PKINT</b></div>
<div>
<ul class="MailOutline">
<li><b><span style="font-weight: normal; ">Enable Smart Card Sniffer for Login Window</span></b>
<ul>
<li><b><span style="font-weight: normal; ">Update Authorization Databse (<b>/etc/authorization</b>)<span class="Apple-tab-span" style="white-space: pre; ">
</span>- Add &quot;smartcard-sniffer&quot; entries back in</span></b>
<ul>
<li><span style="letter-spacing: 0px; ">&lt;string&gt;builtin:smartcard-sniffer,privileged&lt;/string&gt;</span></li></ul>
</li></ul>
</li><li>Add/Create Attribute Matching plist&nbsp;
<ul>
<li>Add/Create the /etc/cacloginconfig.plist file<span class="Apple-tab-span" style="white-space: pre; ">
</span>- option install in current MacOSForge installers
<ul>
<li>Default: &nbsp; &nbsp;Cert: NT Principal Name --&gt; DS: dsAttrTypeNative:userPrincipalName&nbsp;</li></ul>
</li></ul>
</li><li>Configure selected DS Record for Smart Card Login - matching attribute values</li><li>Configure Binding Client --&gt; DS/Kerberos &nbsp;(ie. Bind your Mac to AD)
<ul>
<li><span style="letter-spacing: 0px; font-family: 'Helvetica Neue'; font-size: 12px; ">If the Mac is bound to a Windows Server 2003, create the com.apple.Kerberos.plist file in&nbsp;</span><span style="letter-spacing: 0px; font-family: 'Helvetica Neue'; font-size: 12px; ">/Library/Preferences</span></li></ul>
</li><li>Ensure client trusts Roots
<ul>
<li>Trust the Root of Trust Chain for Leaf Cert on Card</li><li>Trust the Root of Trust Chain for AD DC Root of Trust Chain for Server Cert</li></ul>
</li><li>Test acquiring a ticket: &nbsp;
<ul>
<li><span style="letter-spacing: 0px; font-family: 'Courier New'; font-size: 12px; ">kinit -C KEYCHAIN: -D KEYCHAIN: --windows --pk-enterprise</span></li></ul>
</li><li>Switch to Login Window, insert card, enter PIN...</li></ul>
</div>
</div>
</div>
</blockquote>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div><br>
</div>
</div>
</blockquote>
<div>
<div><br>
</div>
<div>Give us a status back of your success / issues...</div>
<div>You might want to turn on DS logging as well. &nbsp;You could also run &quot;dsconfigad -show&quot; to show what the configuration is on the box.</div>
<div><br>
</div>
</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<div><br>
</div>
</div>
</blockquote>
<div apple-content-edited="true"></div>
<br>
</div>
_______________________________________________<br>
SmartcardServices-Users mailing list<br>
<a href="mailto:SmartcardServices-Users@lists.macosforge.org">SmartcardServices-Users@lists.macosforge.org</a><br>
https://lists.macosforge.org/mailman/listinfo/smartcardservices-users<br>
</blockquote>
</div>
<br>
</div>
</body>
</html>