Linux의 성급한 AF_ALG 지원 중단 여파에 대응하기 위한 Cryptsetup 2.8.7 출시
요약
Linux 커널의 AF_ALG 지원 중단에 대응하여 Cryptsetup 2.8.7 버전이 출시되었습니다. 이번 업데이트는 AF_ALG 없이도 사용자 공간 암호화 라이브러리로 폴백할 수 있는 기능을 제공하여 보안 정책 변화에 따른 호환성 문제를 해결합니다.
핵심 포인트
- Linux 커널의 보안 우려로 인한 AF_ALG 인터페이스 지원 중단 대응
- AF_ALG 부재 시 사용자 공간 암호화 라이브러리로의 폴백 기능 구현
- Adiantum 등 커널 전용 알고리즘 사용 시 호환성 문제 잔존 가능성
- 키링 처리 방식 변경 및 다양한 암호 알고리즘 지원 업데이트 포함
Linux의 성급한 AF_ALG 지원 중단 여파에 대응하기 위한 Cryptsetup 2.8.7 출시

Cryptsetup은 사용자 공간 (user-space) 애플리케이션에 Linux 커널의 내부 암호화 API에 대한 직접적인 접근을 제공하기 위해 AF_ALG를 사용해 온 사용자 중 하나였습니다. 하지만 보안 우려를 이유로 AF_ALG의 다양한 측면이 빠르게 제거되었으며, Linux 7.2에서는 AF_ALG가 "거대한 공격 표면 (massive attack surface)"을 이유로 지원 중단 (deprecated)되었습니다. Linux 7.3에서는 새로운 sysctl 튜너블을 통해 AF_ALG가 선택적으로 더욱 제한될 예정입니다. 이로 인해 Cryptsetup과 같이 AF_ALG에 오랫동안 의존해 온 사용자 공간 소프트웨어들은 이제 너무 큰 보안 부담으로 간주되는 이 인터페이스를 사용하지 못하게 되는 과제에 직면해 있습니다.
오늘 출시된 Cryptsetup 2.8.7을 통해, 개발진은 AF_ALG 없이도 생존할 수 있도록 코드를 조정하고 사용자 공간 암호화 라이브러리 (user-space crypto library)로 원활하게 폴백 (fallback)할 수 있도록 하기 시작했습니다. v2.8.7 릴리스 노트에 명시된 바와 같이, 현재 사용자 공간 라이브러리 접근 방식에는 몇 가지 제한 사항이 있습니다:
"Linux 커널 AF_ALG 암호화 사용자 공간 인터페이스 지원 중단과 관련된 변경 사항: Linux 커널 메인테이너들은 보안상의 이유로 AF_ALG 인터페이스를 제거(또는 심하게 제한)할 계획을 가지고, cryptsetup에서 많이 사용되던 AF_ALG 인터페이스를 지원 중단하기로 결정했습니다. libcryptsetup은 LUKS 키슬롯 (keyslots) 처리 및 기타 형식의 디스크 상 메타데이터 처리를 위해 사용자 공간 (주로 AF_ALG를 통해)을 사용합니다. AF_ALG를 사용하면 사용자 공간과 이후 장치 활성화를 위한 커널 내부에 동일한 알고리즘 세트가 존재함을 보장할 수 있었습니다.
libcryptsetup에는 사용자 공간 라이브러리로 폴백하는 개념이 있지만, 모든 상황에서 사용되지는 않았습니다.
이번 버전에서 libcryptsetup은 사용자 공간 암호화 라이브러리, AF_ALG (존재하는 경우), 그리고 일부 상황(LUKS 키슬롯)에서는 임시 dm-crypt 매핑으로 폴백할 수 있습니다. 마지막 옵션은 루트 권한 (root privileges)이 필요합니다. 이를 통해 AF_ALG가 비활성화되거나 제한되더라도 대부분의 작업이 계속 작동하도록 보장합니다."
불행히도, 필요한 알고리즘(또는 암호화 모드)이 사용자 공간 라이브러리(userspace library)에 구현되어 있지 않다면 AF_ALG를 제거하는 것은 심각한 호환성 문제를 일으킬 수 있습니다. 대표적인 예로 커널(kernel)에만 구현되어 있는 Adiantum 암호가 있습니다. 또한 Serpent 또는 Twofish (XTS 모드)와 같은 암호들은 여러 사용자 공간 라이브러리에서 누락되어 있습니다. AF_ALG 인터페이스를 사용할 수 없게 되면 암호에 대한 cryptsetup 벤치마크(benchmark) 또한 더 이상 사용할 수 없게 됩니다.
AF_ALG의 급격한 제거 문제 해결 외에도, Cryptsetup 2.8.7은 키링(keyring) 처리 방식의 변경, LUKS 볼륨 키 다이제스트(key digest) 충돌 가능성에 대응하기 위한 변경 사항, libgcrypt 백엔드에서의 Aria 및 Camellia 암호 지원, 그리고 기타 수정 사항들을 포함하고 있습니다.
Cryptsetup 2.8.7은 GitLab에서 다운로드할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기