피드로 돌아가기
Hacker NewsHacker News
Security

WolfGuard: WireGuard with FIPS 140-3 cryptography

wolfSSL이 WireGuard를 FIPS 140-3 준수 암호화로 리팩토링해 Curve25519를 SECP256R1로, ChaCha20-Poly1305를 AES-256-GCM으로 교체

2026년 3월 24일12advanced

Context

WireGuard는 고성능 VPN 프로토콜이지만 기본 암호화 알고리즘(Curve25519, ChaCha20-Poly1305, Blake2s)이 FIPS 140-3 인증을 받지 않아 규정 준수가 필요한 환경에서 사용할 수 없었다.

Technical Solution

  • 암호화 알고리즘 치환: ECDH는 Curve25519에서 SECP256R1로, AEAD는 XChaCha20-Poly1305에서 AES-256-GCM으로, 해시 함수는 Blake2s에서 SHA2-256으로 변경
  • 듀얼 모듈 아키텍처 구성: libwolfssl.ko 커널 모듈과 libwolfssl.so 사용자 라이브러리를 동일한 wolfSSL 소스에서 빌드하여 일관성 유지
  • 투명한 드롭인 교체 구현: 심볼릭 링크를 통해 기존 wg 및 wg-quick 명령어를 wg-fips 및 wg-fips-quick으로 매핑하여 기존 스크립트 호환성 유지
  • FIPS 인증 및 비인증 빌드 병행 지원: 두 버전 모두 상호 운용 가능하며 동시에 WireGuard와 WolfGuard 터널 구성 가능
  • CPU 가속 옵션 제공: --enable-intelasm 옵션으로 x86 플랫폼에서 AES-256-GCM과 SHA2-256 연산의 CPU 가속 활성화

Impact

--enable-intelasm 활성화 시 WolfGuard 성능이 CPU 가속 WireGuard와 동등하거나 초과하며, 미활성화 시에도 현대식 CPU에서 기가비트 이더넷 포화 가능

Key Takeaway

규정 준수 요구사항이 있는 환경에서 기존 고성능 프로토콜을 FIPS 인증 암호화로 전환할 때, 알고리즘 치환만으로도 성능 손실 최소화와 하위 호환성을 동시에 달성할 수 있다.


FIPS 140-3 규정 준수가 필요한 조직에서 WireGuard 기반 VPN을 운영할 때, WolfGuard를 도입하면 기존 WireGuard 관리 스크립트를 /etc/wolfguard 경로 변경만으로 그대로 재사용할 수 있으며, CPU 가속을 활성화하면 성능 저하 없이 규정 준수 요건을 만족할 수 있다.

원문 읽기