[webkit-gtk] Support for PKCS11 / Smartcard?

Michael Catanzaro mcatanzaro at igalia.com
Sat Dec 1 09:14:07 PST 2018


On Fri, Nov 30, 2018 at 8:41 PM, mailto428496 <mailto628496 at cox.net> 
wrote:
> It does not appear that webkit-gtk has support for PKCS 11 and hence
> smartcard devices, unless I am missing something...?  I was wondering 
> if
> there were any plans to implement this for webkit-gtk browsers?

Hm...

p11-kit is supported in Fedora, Arch, and any other distro that builds 
GnuTLS using --with-default-trust-store-pkcs11="pkcs11:". It won't work 
in Debian/Ubuntu/openSUSE or other distros that still use old-fashioned 
ca-certificate file storage. But in distros with p11-kit enabled, 
PKCS#11 assertions are supposed to be respected when performing server 
certificate verification.

But I don't know about smartcards. So the answer to that is: maybe? 
Maybe almost? WebKit doesn't currently support TLS client 
authentication at all, so my guess is not at the WebKit level. That's 
being actively worked on though, in 
https://bugs.webkit.org/show_bug.cgi?id=164509. (I know there's not 
much in the way of updates there, but it really is being worked on. :)

But that won't help if smartcards aren't working at the GLib level, and 
I'm not sure about the status there. I am quite certain that nobody 
working on this code has a smartcard or would know what to do with one, 
though. :( We used to have separate support in glib-networking for 
PKCS#11. I disabled it in 2.58 and recently deleted it entirely because 
nobody could tell me if it does anything that GnuTLS can't do itself 
nowadays. For details on that, see 
https://gitlab.gnome.org/GNOME/glib-networking/issues/7. Now, if you 
have an older version of glib-networking (2.56 or earlier) then you 
could try it out with the environment variable 
GIO_USE_TLS=gnutls-pkcs11, but remember that client authentication will 
not work in WebKit regardless, and I'm not sure what other apps you 
could use to test it. Anyway, my suspicion is that that code was not 
important, and that if any extra work is needed to make smartcards 
work, it should be done using the GnuTLS PKCS#11 APIs instead:

https://www.gnutls.org/manual/html_node/Smart-cards-and-HSMs.html

but really, I don't know. It would need to be investigated by a 
developer with a smartcard and some interest in figuring out how it's 
supposed to work. You might know more than me! Did any of that make 
sense?

Michael



More information about the webkit-gtk mailing list