• Roberto Sassu's avatar
    bpf: Add bpf_verify_pkcs7_signature() kfunc · 865b0566
    Roberto Sassu authored
    Add the bpf_verify_pkcs7_signature() kfunc, to give eBPF security modules
    the ability to check the validity of a signature against supplied data, by
    using user-provided or system-provided keys as trust anchor.
    
    The new kfunc makes it possible to enforce mandatory policies, as eBPF
    programs might be allowed to make security decisions only based on data
    sources the system administrator approves.
    
    The caller should provide the data to be verified and the signature as eBPF
    dynamic pointers (to minimize the number of parameters) and a bpf_key
    structure containing a reference to the keyring with keys trusted for
    signature verification, obtained from bpf_lookup_user_key() or
    bpf_lookup_system_key().
    
    For bpf_key structures obtained from the former lookup function,
    bpf_verify_pkcs7_signature() completes the permission check deferred by
    that function by calling key_validate(). key_task_permission() is already
    called by the PKCS#7 code.
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Acked-by: default avatarKP Singh <kpsingh@kernel.org>
    Acked-by: default avatarSong Liu <song@kernel.org>
    Link: https://lore.kernel.org/r/20220920075951.929132-9-roberto.sassu@huaweicloud.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    865b0566
bpf_trace.c 73 KB