References:
ARM Pointer Authentication. LWN.net. April 2017.
PAC it up: Towards Pointer Integrity using ARM Pointer Authentication.. USENIX Security, 2019.
Qualcomm Technologies, Inc. Pointer Authentication on ARMv8.3. 2017
Pointer Authentication (PA)
Added in ARMv8-A.
Purpose is to detect pointers created by an external entity.
PA uses cryptographic message authentication codes (MACs) to protect the integrity of pointers.
PAC
instruction can be used to calculate the auth code and insert into a pointer value.AUT
instruction need to be used.Reference: lwn.net: documentation/arm64/memory.txt
ARM64 Linux, up to three level page tables for 64KB page size; up to 4 levels for 4KB page size;
64KB page size:
bit [63] is always used to determine the choice between TTBR0 and TTBR1.
Reference:
PA is vulnerable to pointer reuse attacks where an authenticated pointer is substituted with another.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?