Fundamentally different from Unix. Isolation is built into the core abstractions.
Every process has its own private filesystem view. The kernel maintains separate mount tables per process. This is the default, not an add-on like Linux namespaces or chroot. A compromised process sees only what its namespace exposes. No global /etc/passwd, no shared /tmp.
Per-user auth daemon running as file server at /mnt/factotum. Holds all crypto keys in volatile memory, negotiates auth protocols on behalf of applications. No application ever touches a secret key.
proto=dp9ik dom=9front user=glenda !password=secretprivate (blocks /proc memory reads) and noswap (prevents paging) protectionsconfirm attribute forces per-use graphical approvalNetwork service for encrypted key storage. Uses PAK (Password-Authenticated Key Exchange) over DH. Resists passive eavesdropping, active MITM, and dictionary attacks. Files encrypted with AES-CBC. On login, factotum fetches keys from secstore automatically. Supports RADIUS for 2FA.
Temporary, single-use, machine-local credentials:
userid1@userid2@random-stringOnly factotum creates capabilities. All network servers run unprivileged. Compromised server = limited permissions only.
| Title | URL |
|---|---|
| Security in Plan 9 (official) | https://9p.io/sys/doc/auth.html |
| Security in Plan 9 (USENIX PDF) | https://css.csail.mit.edu/6.858/2013/readings/plan9auth.pdf |
| Security in Plan 9 (USENIX HTML) | https://www.usenix.org/legacy/event/sec02/full_papers/cox/cox_html/ |
| Factotum (Wikipedia) | https://en.wikipedia.org/wiki/Factotum_(software) |
| The Use of Name Spaces in Plan 9 | https://9p.io/sys/doc/names.html |
| Cat-v Security in Plan 9 | http://doc.cat-v.org/plan_9/4th_edition/papers/auth |