osclientcerts: look for intermediate client certificates to help PSM with path building (windows)
Categories
(Core :: Security: PSM, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox75 | --- | disabled |
firefox76 | --- | disabled |
firefox77 | --- | disabled |
firefox78 | --- | disabled |
People
(Reporter: samlh+bz2, Assigned: keeler)
References
(Blocks 1 open bug)
Details
(Whiteboard: [psm-assigned])
Attachments
(7 files, 4 obsolete files)
+++ This bug was initially created as a clone of Bug #1630473 +++
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Even with the fix from bug 1639473, some client certificates are shown in the list unless the intermediate is added into Firefox
See attachment for the client certificate and chain
![]() |
Assignee | |
Comment 1•5 years ago
|
||
Thanks - let's first land bug 1630473.
![]() |
Assignee | |
Comment 2•5 years ago
|
||
If you set security.osclientcerts.autoload
and security.enterprise_roots.enabled
to true
with the latest version of Nightly, are you still seeing this behavior?
Hi Dana!
Yes, I am still seeing this behavior on Nightly 20200424114754.
If I do not import any intermediates, I have 1 client certificate show up in the list.
If I import the corresponding intermediates for the other 2 client certificates (one attached), the client certificates also shows up in the list.
Possible correlation:
- The certificate that shows up in the list as-is has an exportable private key
- The certificates that do not show up in the list do not have exportable private keys (due to being on a smart card or similar)
If there is logging I can enable or instructions for what to check in a debugger, I'm happy to give it a try.
Thanks,
Sam
![]() |
Assignee | |
Comment 5•5 years ago
|
||
If you set the environment variable RUST_LOG
to osclientcerts_static
it should output some debugging information to the console (here's how to run Firefox with a console: https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options#Miscellaneous)
![]() |
Assignee | |
Updated•5 years ago
|
![]() |
Assignee | |
Comment 10•5 years ago
|
||
Thanks! It looks like the module is finding 4 client certificates. Can you do that again with MOZ_LOG
set to pipnss:4
? (no need for the testcases where you don't visit the server)
Also, to be clear, when you said "If I do not import any intermediates" did you mean importing via the certificate manager or by setting security.enterprise_roots.enabled
?
Reporter | ||
Comment 11•5 years ago
|
||
Thanks! It looks like the module is finding 4 client certificates. Can you do that again with MOZ_LOG set to pipnss:4? (no need for the testcases where you don't visit the server)
Logs attached.
Also, to be clear, when you said "If I do not import any intermediates" did you mean importing via the certificate manager or by setting security.enterprise_roots.enabled?
Importing via about:preferences#privacy -> Certificate Manager.
All logs are with security.enterprise_roots.enabled=true and security.osclientcerts.autoload=true
Thanks for taking a look!
Reporter | ||
Comment 12•5 years ago
|
||
Reporter | ||
Comment 13•5 years ago
|
||
Reporter | ||
Comment 14•5 years ago
|
||
It looks like the module is finding 4 client certificates.
Yes. See the attached list of certs.
The one I want to use is #2 in the attached list.
(SerialNumber: 5D00347B941897D81CCCF1B545000000347B94)
The only one that shows up is #4.
(SerialNumber: 7F53F612C9576F51C9FCF462AF06E243)
Reporter | ||
Comment 15•5 years ago
|
||
The only one that shows up is #4.
(SerialNumber: 7F53F612C9576F51C9FCF462AF06E243)
Argh, sorry, that should be #3 (48:00:70:5C:69:3C:2E:86:02:55:52:71:10:00:01:00:70:5C:69)
![]() |
Assignee | |
Updated•5 years ago
|
![]() |
Assignee | |
Comment 16•5 years ago
|
||
To implement filtering client certificates by the acceptable CAs list sent by
servers when they request client certificates, we need the CAs that issued the
client certificates. To that end, this change modifies the Windows backend of
the osclientcerts module to also gather issuing CAs while looking for client
certificates. These certificates will not affect trust decisions in gecko.
Comment 17•5 years ago
|
||
Comment 18•5 years ago
|
||
bugherder |
![]() |
Assignee | |
Comment 19•5 years ago
|
||
Does the latest build of Nightly work for you?
Reporter | ||
Comment 20•5 years ago
|
||
Yes, everything works perfectly on latest nightly.
Thank you - I really appreciate it!
![]() |
Assignee | |
Comment 21•5 years ago
|
||
Thanks!
Description
•