Got this working, at least briefly on:
* Ubuntu 22.04
* snap Firefox 125.0.3 (+pcscd slot on the snap)
* deb opensc 0.22.0-1ubuntu2
* deb opensc-pkcs11 0.22.0-1ubuntu2

Loading /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so with file selector
from the snap put it under /run/user/1000/doc/XNUMBERX/opensc-pkcs11.so

I made following changes to the firefox snap enable my smartcard.

1. Allow loading module

Apparmor
```
# allow access to opensc pkcs11 module
/run/user/1000/doc/*/opensc-pkcs11.so mr,
```

2. Allow access to pcscd

Apparmor
```
# allow access to pcscd
/run/pcscd/pcscd.comm wr,
```

3. Fix issues with PKCS11 login

not sure if minimal set, anyway for apparmor:
```
# For token login
owner @{PROC}/@{pid}/mountinfo r,
/etc/opensc/opensc.conf r,
```

and for seccomp, allow syscalls
```
setpriority
quotactl
```

After these changes I was able to log in to my tokens and use them for
authentication.

Output for ldd
$ ldd /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
        linux-vdso.so.1 (0x00007ffded5ec000)
        libopensc.so.8 => /lib/x86_64-linux-gnu/libopensc.so.8 
(0x00007b6ccd15a000)
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 
(0x00007b6cccc00000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007b6ccc800000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007b6ccd13e000)
        libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 
(0x00007b6ccc627000)
        libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 
(0x00007b6ccd0de000)
        /lib64/ld-linux-x86-64.so.2 (0x00007b6ccd3ac000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 
(0x00007b6cccac6000)
        libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 
(0x00007b6ccd0d5000)
        libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 
(0x00007b6ccd091000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 
(0x00007b6ccd065000)
        libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007b6ccd058000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007b6ccca50000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007b6ccc540000)
        libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 
(0x00007b6ccc509000)
        libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 
(0x00007b6ccc472000)

Some of these changes seem straightforward, but the loaded module should
be made visible with a stable file system path. It is needed both for
the apparmor rule and the reference created in the NSSDB module database
(which in the snap seems to have relocated under SNAP_USER_COMMON and
the users profile).

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1967632

Title:
  [snap] apparmor denied when trying to load pkcs11 module for smart
  card authentication

To manage notifications about this bug go to:
https://bugs.launchpad.net/firefox/+bug/1967632/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to