vAuth - Virtual FIDO2 authenticator for Linux-based PCs and laptops. First public beta release for Debian 13.
vAuth, 리눅스용 가상 FIDO2 인증기 공개 베타 출시
vAuth는 TPM 2.0을 갖춘 리눅스 PC에서 패스키를 기기에 묶어 보관하고, 웹사이트와 FIDO2 지원 앱에 보안 키로 인증하는 프로그램입니다. 첫 베타 패키지는 Debian 13 amd64용이며, TPM 초기 설정과 복구 절차에 제약이 있어 설치 전 상태를 확인해야 합니다.
- 주제
AI 요약
vAuth는 Windows Hello처럼 리눅스 PC의 인증 수단을 웹사이트와 FIDO2 지원 앱에서 쓰도록 만든 가상 인증기입니다. 브라우저에는 보안 키로 표시되며 패스키는 컴퓨터 안에 남습니다. 인증 작업은 데스크톱 인터페이스에서 확인합니다. TPM 2.0으로 자격 증명 키를 관리하고, PAM으로 사용자 인증을 확인하며, 자격 증명 데이터베이스는 암호화해 로컬에 저장합니다. 지문 인식기는 선택 사항이며 PAM 비밀번호 인증도 지원합니다.
베타 지원 범위와 의존성
첫 사전 빌드 패키지는 Debian 13의 amd64를 대상으로 합니다. Fedora와 Arch Linux, Ubuntu 패키지는 아직 제공하지 않아 직접 빌드해야 합니다. 실행 환경에는 systemd, logind, D-Bus, PAM, UHID 지원과 TPM 2.0이 필요합니다. TPM은 커널 리소스 관리자 장치인 /dev/tpmrm0을 통해 접근해야 하며, TPM2-TSS FAPI가 설정되고 프로비저닝된 상태여야 합니다. TPM이 없는 경우를 위한 소프트웨어 대체 모드는 없습니다.
빌드에는 CMake 3.21 이상, C++20 컴파일러와 여러 라이브러리, Slint C++ SDK가 필요합니다. 설치 절차는 CMake로 빌드·테스트한 뒤 시스템 파일을 설치하고, uhid 장치와 systemd 및 D-Bus 설정을 갱신하는 방식입니다. 설치 프로그램이 TPM을 프로비저닝하거나 서비스를 활성화하지는 않습니다. 그래픽 세션에서 vauth-ui도 직접 실행해야 하며, 자동 시작 설정은 설치에 포함되지 않습니다.
TPM 프로비저닝과 복구 주의사항
vAuth는 TPM의 Owner 계층에서 사용할 수 있는 권한과 롤백 방지용 NV 카운터를 요구합니다. Windows 10 버전 1607 이상에서 TPM Owner 권한이 임의의 값으로 설정된 뒤 값이 폐기된 경우, FAPI가 기존 저장 키를 쓸 수 있어도 vAuth에 필요한 카운터를 만들지 못할 수 있습니다. 이때 vauthctl provision은 객체를 만들기 전에 실패하도록 설계됐습니다. 롤백 방지를 끄는 설정은 제공하지 않습니다.
프로비저닝을 진행하면 vAuth가 192비트 인증 정보를 생성해 한 번 보여줍니다. 사용자는 이를 안전하게 보관하고 확인해야 합니다. vAuth는 해당 정보를 systemd-creds로 암호화한 뒤 TPM 객체를 만듭니다. 저장한 인증 정보를 잃거나 TPM을 초기화하면 기존 vAuth 자격 증명을 복구할 수 없습니다. TPM 초기화는 BitLocker, Windows Hello 등 다른 TPM 사용자의 키에도 영향을 줄 수 있으므로, 문서는 다른 TPM 소비자의 복구·백업 절차를 확인한 뒤 관리자 작업으로만 진행하라고 경고합니다.
암호화된 systemd 자격 증명 파일만 손상됐고 저장해 둔 인증 정보와 같은 TPM의 기존 FAPI 객체가 남아 있다면, TPM을 다시 프로비저닝하지 않고 암호화 봉투를 재생성할 수 있습니다. 반면 TPM이나 FAPI 객체, 암호화된 데이터베이스를 잃은 경우에는 이 절차로 복구할 수 없습니다. 현재 검증한 PAM 방식은 비밀번호와 지문 인식뿐이며, 다른 PAM 모듈은 서비스 샌드박스 설정을 추가해야 할 수 있습니다. 상호작용 에이전트도 시스템 전체에서 하나만 실행하는 단일 사용자 환경을 전제로 합니다. Firefox에서는 취소할 때 vauth-ui의 취소 버튼 대신 브라우저 인증 창을 사용해야 합니다.
Reddit 반응
- @u/anh0l — 게시물에 덧붙이면, 곧 Lamellix Labs의 다른 프로젝트인 hKey 인증기 작업도 시작할 예정입니다. 자체 펌웨어를 쓰는 하드웨어 인증기입니다. 먼저 Raspberry Pi Pico 2 기반 hKey PE를 내고, 이후 RP2354 기반 자체 보드와 펌웨어를 만들 계획입니다. 프로젝트 정보는 웹사이트를 준비하는 대로 공개하겠습니다. vAuth에는 조만간 CTAP2.1 지원을 추가할 예정입니다. 이 프로젝트에서 잠시 쉬고 나서 진행하겠습니다.
- @u/Informal_Branch1065 — 하드웨어 공격에는 어떻게 대비할 계획인가요? RP2354는 그다지 안전해 보이지 않습니다.
- @u/anh0l — 보안 부팅과 플래시 암호화를 생각했습니다. 신뢰할 수 있는 펌웨어로 부팅해야만 플래시에 접근하게 하는 방식입니다. 암호화 키와 루트 인증서는 퓨즈를 끊은 OTP 메모리에 넣어 디버그 인터페이스로 읽지 못하게 할 생각입니다.
- @u/Informal_Branch1065 — 공격자는 암호화된 펌웨어에 손댈 필요가 없습니다. 정상적으로 부팅한 뒤 부채널 공격으로 데이터를 빼내면 됩니다. 개인 프로젝트로는 정말 인상적이지만, 하드웨어를 신뢰하는 보안에는 개인적으로 매우 조심스럽습니다.
- @u/anh0l — 살펴보겠습니다. 공격에 견디지 못하는 보안 민감 하드웨어나 펌웨어를 만들지는 않겠습니다. 우려를 이해합니다. 우선 vAuth 작업을 하느라 하드웨어 인증기에 대해서는 깊이 생각하지 못했습니다.
- @u/anh0l — RP2040과 RP2350보다 보안성이 높아졌습니다. Yubico가 쓰는 SoC의 일부 기능은 아직 없지만, 신중하게 보호하면 충분할 것 같습니다. 키 제작을 시작할 때 어떤 방식을 쓸지 더 자세히 살펴보겠습니다.
- @u/halvacoffee — 정말 멋집니다. 네이티브 앱의 패스키 지원을 드디어 살펴보는 게 좋네요. LLM 사용을 숨기지 않은 점도 좋습니다.
- @u/Alex_Strgzr — 얼굴 인식도 지원하나요? 지문 인식은요?
원문: GitHub / 번역·요약: Trawling