GnuPG 에이전트에서 잠금 해제된 키의 수명 주기 제어

GnuPG 에이전트에서 잠금 해제된 키의 수명 주기 제어

보안을 (약간) 향상시키기 위해 수행 중인 작업에 따라 잠금 해제 키의 수명을 더 잘 제어하고 싶습니다. 이상적으로는 대화형 하위 셸을 시작하고 비밀과 관련된 모든 작업을 수행한 다음 하위 셸이 종료되면 잠금 해제된 키를 자동으로 지웁니다.

다음을 사용하여 캐시된 암호 문구를 수동으로 지울 수 있다는 것을 알고 있습니다.gpg-connect-agent, 그러나 내가 아는 한 각 키는 명시적으로 지정되어야 합니다. 또 다른 옵션은 --default-cache-ttl또는 옵션을 사용하여 --max-cache-ttl정렬 캐시 만료 시간을 설정하는 것 입니다.gpg-agent; 그러나 일반적으로 이는 더 긴 TTL을 설정하거나 동일한 비밀번호를 여러 번 요청하는 것을 의미합니다.

오래 전에는 대체 gpg-agent소켓 경로를 지정하고 기본적으로 독립 실행형 세션을 시작하는 것이 가능했지만, 최신 버전에서는 변경할 수 없는 고정 경로를 사용하는 것 같습니다.

그렇다면 내가 무엇을 놓치고 있는 걸까요? 내가 원하는 것을 달성할 수 있는 방법이 있나요?

답변1

완전한 해결책은 없지만 해결 방법을 찾았습니다.

--homedirGnuPG는 매개변수나 환경 변수를 통해 GnuPG의 대체 홈 디렉터리를 사용하여 GNUPGHOME다른 키 저장소 파일 집합과 관련 프록시 소켓 경로를 사용하도록 강제할 수 있습니다 . 이를 염두에 두고 새 세션에서 셸을 시작할 수 있습니다 gpg-agent.

gpg-agent \
    --homedir /my/other/keys \
    --default-cache-ttl 86400 \
    --max-cache-ttl 86400 \
    --daemon \
    \
    /bin/bash

지정된 TTL이 경과하면(이 경우 하루) 입력한 모든 비밀번호는 새 셸이 종료될 때 만료되거나 "잊혀집니다". 이로 인해 상위 gpg-agent인스턴스가 자체적으로 종료됩니다.

이것이 완전한 해결책이라고 생각하지 않는 이유는 별도의 키링을 강제하기 때문입니다. 그러나 이는 내 특정 사용 사례에 완벽하게 작동했기 때문에 더 이상 조사하지 않았습니다.

서로 다른 인스턴스 간의 잠금을 유지하는 데 충분한 주의를 기울이면 기본 GnuPG 키 링이 있는 심볼릭 링크를 통해 동일한 키 링에 대한 독립 세션의 전체 효과를 얻을 수 있습니다 gpg-agent. 독자들에게 연습문제로 남겨두겠습니다...

관련 정보