Complete list of AF_ALG algorithms used by iwd
With AF_ALG being on its way out due to its frequent vulnerabilities, iwd will need to be fixed to follow the standard practice of using userspace crypto code (for example, libcrypto) instead. In the mean time, AF_ALG is at least going to need to be hardened by removing unnecessary functionality, for example unnecessary algorithms.
Based on the iwd and libell source code, it appears iwd is relying on the following algorithm names from AF_ALG. Please confirm that this list is correct and that these are the ones we need to keep for iwd:
cmac(aes)
hmac(md5)
hmac(sha1)
hmac(sha224)
hmac(sha256)
hmac(sha384)
hmac(sha512)
md4
md5
sha1
sha224
sha256
sha384
sha512
ecb(aes)
cbc(aes)
ctr(aes)
ecb(des)
cbc(des)
cbc(des3_ede)Also, does iwd always hold CAP_NET_ADMIN? We're also considering adding a privilege check to AF_ALG. (It's TBD whether it would be unconditional or controlled by a sysctl.)
- Eric
Hi Eric,
Quoted 22 lines · Eric Biggers
With
AF_ALGbeing on its way out due to its frequent vulnerabilities, iwd will need to be fixed to follow the standard practice of using userspace crypto code (for example, libcrypto) instead. In the mean time,AF_ALGis at least going to need to be hardened by removing unnecessary functionality, for example unnecessary algorithms.Based on the iwd and libell source code, it appears iwd is relying on the following algorithm names from
AF_ALG. Please confirm that this list is correct and that these are the ones we need to keep for iwd:cmac(aes) hmac(md5) hmac(sha1) hmac(sha224) hmac(sha256) hmac(sha384) hmac(sha512) md4 md5 sha1 sha224 sha256
Quoted 8 lines
sha384
sha512
ecb(aes)
cbc(aes)
ctr(aes)
ecb(des)
cbc(des)
cbc(des3_ede)This looks correct from IWD's standpoint, but ELL does support additional checksums:
- sha3-224
- sha3-256
- sha3-384
- sha3-512
- hmac(sha3-224)
- hmac(sha3-256)
- hmac(sha3-384)
- hmac(sha3-512)
Marcel may be able to comment on what projects are using these, if any.
Quoted 4 lines
Also, does iwd always hold
CAP_NET_ADMIN? We're also considering adding a privilege check toAF_ALG. (It's TBD whether it would be unconditional or controlled by a sysctl.)
Yes we require CAP_NET_ADMIN:
https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/src/iwd.service.in#n15
Thanks,
James
Quoted 2 lines
- Eric