특정 프로그램에 대한 비밀번호 캐싱을 원하지 않는다고 gpg에 어떻게 알릴 수 있나요?

특정 프로그램에 대한 비밀번호 캐싱을 원하지 않는다고 gpg에 어떻게 알릴 수 있나요?

나는 그것을 사용하고 있습니다 gnupg 2.1.2. 일반적으로 gnupg비밀번호를 캐싱할 때 유용합니다. 하지만 일부 민감한 프로그램의 경우에는 gnupg사용하지 않기를 바랍니다 gpg-agent. 오랫동안 인터넷에서 검색했지만 유용한 정보를 많이 찾지 못했습니다. gnupg특정 프로그램에 대해 내 비밀번호가 캐시되는 것을 원하지 않는다는 것을 어떻게 알 수 있나요 ?

아래는 예시입니다. 나는 Mutt그것을 MUA로 사용하고 아래의 별도 파일에 내 모든 계정의 비밀번호를 암호화합니다 ~/.mutt/.passwd.gpg. 내 ~/.muttrc설정 에서

source "/usr/bin/gpg -d --quiet  ~/.mutt/.passwd.gpg |"

처음 부팅 하면 Mutt개인 키 비밀번호를 묻는 메시지가 나타납니다 gpg. 해당 비밀번호를 입력하면 잠시 동안 캐시됩니다 gpg. 따라서 Mutt이 간격 내에 다시 시작하면 더 이상 개인 키 비밀번호를 묻는 메시지가 표시되지 않습니다. 즉, 이 시간 동안 내 컴퓨터에 액세스하는 사람은 누구나 내 메일을 읽거나 보낼 수도 있습니다. (또는 다른 특정 프로그램) 시작될 때마다 개인 키 비밀번호를 묻는 메시지가 표시되도록 하려면 gpg(예를 들어 옵션을 전달하여 -page에 관련 플래그를 표시하지 않음) gpg어떻게 알 수 있습니까 ? 어떤 프로그램이 암호화된 파일에 액세스하려고 하는지 알 수 없기 때문에 이것이 가능하지 않을 수도 있다는 것을 알고 있습니다 . 하지만 우리의 훌륭한 커뮤니티가 이를 확인할 수 있기를 바랍니다.manMuttgpg

답변1

이것은 우아하지 않을 수도 있지만 나에게는 효과가 있습니다. 사용 후 즉시 데몬 프로세스를 종료하십시오 gpg.

killall gpg-agent

(그래, 젠장!)

다음에 다른 gpg프로그램이나 다른 프로그램에서 호출하면 자동으로 다시 시작됩니다. 이 방법을 사용하면 비밀번호 캐싱의 기본 시간이 변경되지 않습니다(다른 프로그램이 동일한 동작을 수행하는 것을 원하지 않을 수 있음).

답변2

gpg-agent에 대한 문서에는 "gpg-agent는 환경 변수를 사용하여 클라이언트에게 통신 매개변수에 대해 알립니다"라고 나와 있습니다. 실제 환경 변수 이름은 제공되지 않지만 일부 테스트에서는 관련 변수가 GPG_AGENT_INFO다음과 같이 변경되는 것으로 나타났습니다.

source "unset GPG_AGENT_INFO; /usr/bin/gpg -d --quiet  ~/.mutt/.passwd.gpg |"

아마도 더 간단한 해결책은 --no-use-agentgpg에 전달하는 것입니다.

gpg자격 증명이 캐시된 경우(아마도 gpg-agent가 Mutt 외부에서 자격 증명을 캐시하도록 허용했기 때문에) 공격자가 프록시를 활성화한 상태에서 호출하는 것을 막지는 못합니다. 따라서 gpg-agent가 구체적인 차별을 알고 있다고 하더라도 mutt그다지 강력한 보안 조치는 아닐 것입니다.

답변3

예를 들어 1초의 캐시 간격으로 프록시를 다시 시작하는 것은 거의 캐시가 없는 것과 같습니다.

pkill gpg-agent && gpg-agent --default-cache-ttl 1 --use-standard-socket --daemon

관련 정보