Configuring per-process PAC key uniqueness for AArch64 user space
0 reputation · 10 Aug 2020, 08:58 UTC
Goal: guarantee that each EL0 process executing on an AArch64 system uses a distinct set of Pointer Authentication (PAC) keys so that signed pointers cannot be forged across process boundaries.
Constraint: the ARMv8.3‑A architecture defines IA and IB keys per Exception Level but does not require them to be unique across different processes at the same EL, leaving the allocation policy to the operating system. This creates uncertainty about whether the kernel should allocate and context‑switch PAC keys per process, and what overhead such a policy would incur.
Questions: Should the Linux kernel allocate unique PAC keys per process at EL0? What mechanism should be used to save and restore these keys during a context switch? How can the effectiveness of per‑process key isolation be measured without hardware‑mandated uniqueness?