[PATCH bpf-next v2 0/3] BPF signature hash chains
Blaise Boscaccy
bboscaccy at linux.microsoft.com
Mon Sep 29 21:34:24 UTC 2025
This patchset extends the currently proposed signature verification
patchset
https://lore.kernel.org/linux-security-module/20250813205526.2992911-1-kpsingh@kernel.org/
with hash-chain functionality to verify the contents of arbitrary
maps.
The currently proposed loader + map signature verification
scheme—requested by Alexei and KP—is simple to implement and
acceptable if users/admins are satisfied with it. However, verifying
both the loader and the maps offers additional benefits beyond just
verifying the loader:
1. Simplified Loader Logic: The lskel loader becomes simpler since it
doesn’t need to verify program maps—this is already handled by
bpf_check_signature().
2. Security and Audit Integrity: A key advantage is that the LSM
(Linux Security Module) hook for authorizing BPF program loads can
operate after signature verification. This ensures:
* Access control decisions can be based on verified signature
* status. Accurate system state measurement and logging. Log
* events claiming a verified signature are fully truthful, avoiding
* misleading entries that only the loader was verified while the
* actual BPF program verification happens later without logging.
This approach addresses concerns from users who require strict audit
trails and verification guarantees, especially in security-sensitive
environments.
A working tree with this patchset is being maintained at
https://github.com/blaiseboscaccy/linux/tree/bpf-hash-chains
bpf CI tests passed as well
https://github.com/kernel-patches/bpf/actions/runs/18110352925
v2 -> v1:
- Fix regression found by syzkaller
- Add bash auto-complete support for new command line switch
Blaise Boscaccy (3):
bpf: Add hash chain signature support for arbitrary maps
selftests/bpf: Enable map verification for some lskel tests
bpftool: Add support for signing program and map hash chains
include/uapi/linux/bpf.h | 6 ++
kernel/bpf/syscall.c | 73 ++++++++++++++++++-
.../bpf/bpftool/Documentation/bpftool-gen.rst | 7 +-
tools/bpf/bpftool/bash-completion/bpftool | 2 +-
tools/bpf/bpftool/gen.c | 27 ++++++-
tools/bpf/bpftool/main.c | 9 ++-
tools/bpf/bpftool/main.h | 1 +
tools/bpf/bpftool/sign.c | 16 +++-
tools/include/uapi/linux/bpf.h | 6 ++
tools/lib/bpf/libbpf.h | 3 +-
tools/lib/bpf/skel_internal.h | 6 +-
tools/testing/selftests/bpf/Makefile | 18 ++++-
12 files changed, 159 insertions(+), 15 deletions(-)
--
2.48.1
More information about the Linux-security-module-archive
mailing list