원문 캡처 · github.com
원문 캡처 · github.com

Wardkey는 Windows에서 Git과 AWS CLI가 요청한 자격 증명을 앱과 프로필별 정책에 따라 제공하는 실험용 로컬 브로커다. 정책에 따라 Windows Hello 승인을 요구할 수 있지만, 독립적인 보안 감사를 받지 않았으므로 제작자는 잃어도 되는 시험용 자격 증명만 사용하라고 안내한다.

Wardkey는 암호화된 보관소에 자격 증명을 저장하고, 요청한 프로세스와 자격 증명 제공자 또는 프로필, 로컬 정책을 확인한 뒤 허용 여부를 결정한다. Git 요청은 로컬 브로커와 Git 자격 증명 도우미를 통해 처리하고, AWS CLI에는 credential_process로 자격 증명을 전달한다. 요청별 승인 기능을 설정하면 Windows Hello 확인을 거칠 수 있다. 결정 기록은 로컬에 HMAC 체인 방식으로 저장하며, 미끼 자격 증명 항목은 요청될 경우 거부하고 기록한다.

기능과 사용 조건

Wardkey는 Windows 전용이며, AWS에서는 공식 명령줄 도구인 aws.exe만 지원한다. Terraform이나 프로그래밍 라이브러리는 아직 지원하지 않는다. AWS 자격 증명을 호출 간에 기억하지 않으므로 매번 Windows Hello 승인을 요구하는 규칙에서는 확인 요청이 잦을 수 있다.

사용하려면 Windows와 Go 도구 체인이 필요하다. 승인이 필요한 정책을 쓸 때는 Windows Hello도 설정해야 한다. 저장소의 안내에 따라 빌드하고 테스트할 수 있다.

go build -o wardkey.exe .\cmd\wardkey

go test ./...

자동화된 테스트는 구현된 보안 및 요청 처리 구성 요소를 대상으로 한다. 개발 모드로 시험 폴더에서 실행하려면 WARDKEY_DEV=1을 설정하고 홈 위치에 전체 폴더 경로를 지정한다. 이 폴더에는 Windows 파일 보호가 적용되지 않을 수 있다는 경고가 출력되며, 이때도 더미 자격 증명만 사용해야 한다.

보관·감사 관련 구현 세부

영역세부 사항
언어Go
운영체제 연동Windows 명명된 파이프, Windows ACL, 프로세스 검사, Windows WebAuthn / Windows Hello
보관소 암호화Argon2id 및 XChaCha20-Poly1305. 개발 중 공유된 보관소 형식 코드의 Argon2id 매개변수는 시간 비용 3, 메모리 64 MiB, 병렬성 4다.
감사 키HKDF-SHA256으로 보관소 데이터 키에서 별도 감사 키를 파생한다.
감사 무결성HMAC 체인 기록을 로컬에 저장한다.

이 내용은 구현 세부 사항이며, 독립적인 암호화 검토를 받았다는 뜻은 아니다. 제작자는 한계를 설명하는 SECURITY.md와 위협 모델 문서를 함께 확인하라고 안내한다. Wardkey는 실험 단계이며 알려진 한계가 있고, 독립 감사를 받지 않았다.