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 에이전트를 사용하고 있습니다. 이는 gpg 도구보다 훨씬 더 안정적이지만개별 파일 암호화는 지원되지 않습니다..
내가 아는 한 PIV 스마트 카드를 사용한 단일 파일 암호화에는 여러 가지 가능한 옵션이 있습니다.
- 일종의
ssh-agent
+vim
해킹? - PKCS11을 기반으로 한 원활한 파일 암호화 도구가 있을까요?
- 파일 암호화를 위해 yubikey의 다른 슬롯 중 하나(OpenSC 또는 일부 libccid 항목)를 사용합니까?
- Yubikey와 직접 통신하는 오픈 소스 비밀번호 관리자가 있나요?
답변1
다음은 다음 프로세스를 자동화하기 위해 작성한 Python 스크립트입니다.
암호화하려면 ssh-agent의 유선 프로토콜(참조RFC 초안자세히 알아보기)을 사용하면 개인 키로 임의의 데이터에 서명할 수 있으므로 다음과 같습니다.
- 임의의 숫자를 선택하세요
- SSH-agent 서명 필요
- 서명을 사용하여 대칭 키 파생
- 대칭 키를 사용하여 데이터 암호화
- 난수와 암호화된 데이터(대칭 키는 제외)를 디스크에 저장
그리고 해독합니다:
- 디스크에서 난수 및 암호화된 데이터 다시 읽기
- ssh-agent에 난수 서명 요청
- 서명을 사용하여 데이터 암호화에 사용된 것과 동일한 대칭 키를 파생합니다.
- 데이터를 해독하세요!