OpenPGP를 사용하지 않는 Yubikey로 단일 파일을 암호화하는 방법이 있습니까?
SSH 로그인 및 개별 파일 암호화(비밀번호 저장소)에 Yubikey를 사용합니다. Yubikey는 CCID 모드에서만 작동합니다(현재 OTP 또는 U2F를 사용하지 않습니다.). 모든 작업에는 물리적 존재 테스트가 필요합니다.
지금까지 저는 Yubikey를 다음과 함께 OpenPGP 스마트 카드로 사용해 왔습니다.
gpg-agent --enable-ssh-support
SSH 지원을 위해; 그리고- gnupg.vim 플러그인파일 암호화용.
GnuPG는 투박하고 신뢰할 수 없으며 스크립트 작성이 어렵습니다. 이 모드에서는 Yubikey 사용을 중단하고 싶습니다.
NIST PIV 스마트 카드로 구성된 또 다른 Yubikey가 있습니다. 저는 OpenSSH의 PKCS11 지원과 일반 ssh-agent를 사용합니다. 이것은 gpg 도구보다 훨씬 더 안정적이지만개별 파일 암호화 지원을 제공하지 않습니다.
제가 보기에 개별 파일 암호화에 PIV 스마트 카드를 사용하는 데는 몇 가지 가능한 옵션이 있습니다.
- 일종의
ssh-agent
+vim
해킹? - 어쩌면 완벽한 PKCS11 기반 파일 암호화 도구가 있을까요?
- 파일 암호화를 위해 yubikey의 다른 슬롯 중 하나를 사용하고 있습니까? OpenSC나 libccid 등을 사용할 수도 있습니다.
- Yubikey와 직접 통신하는 오픈 소스 비밀번호 관리자가 있습니까?
답변1
다음 프로세스를 자동화하기 위해 제가 작성한 Python 스크립트는 다음과 같습니다.
암호화하려면 ssh-agent의 유선 프로토콜(참조:RFC 초안자세한 내용은) 개인 키를 사용하여 임의의 데이터에 서명할 수 있으므로 다음과 같습니다.
- 임의의 숫자를 선택
- ssh-agent에게 서명을 요청하세요
- 서명을 사용하여 대칭 키 파생
- 대칭 키로 데이터를 암호화하세요
- 난수와 암호화된 데이터(대칭 키는 아님)를 디스크에 저장합니다.
그리고 해독하려면:
- 디스크에서 난수와 암호화된 데이터를 다시 읽습니다.
- ssh-agent에게 난수에 서명하도록 요청
- 서명을 사용하여 데이터 암호화에 사용된 것과 동일한 대칭 키를 파생합니다.
- 데이터를 해독하세요!