오늘 현재 gpg2
Mac (10.12.1)에서 Homebrew를 통해 설치할 때마다 다음 경고가 표시됩니다.
Warning: using insecure memory!
가치가있는 것은 Mac mini (2012 년 말)와 MacBook Pro (2012 년 말)의 두 가지 다른 컴퓨터에서 10.12.1을 실행하는 동일한 동작을보고 있습니다.
GnuPG FAQ 는 다음과 같이 말합니다.
GnuPG는 다른 프로세스가 볼 수 없도록 메모리를 잠그려고 시도하며 스왑에 메모리가 기록되지 않습니다. 어떤 이유로 든이를 수행 할 수없는 경우 (예 : 특정 플랫폼에서 이러한 종류의 메모리 잠금을 지원하지 않는 경우) GnuPG는 안전하지 않은 메모리를 사용하고 있다고 경고합니다.
보안 메모리를 사용하는 것이 거의 항상 좋지만 안전하지 않은 메모리를 사용하는 것이 반드시 나쁜 것은 아닙니다. 컴퓨터를 소유하고 있고 멀웨어가 없다고 확신하는 경우이 경고를 무시할 수 있습니다.
나를 당황스럽게하는 것은 2016 년 9 월 12 일gpg2
이후로 변하지 않은 것입니다 . 그 이후로 버전 2.0.30을 다소 설치했지만, 안전하지 않은 메모리에 대한 경고 만 표시하기 시작했습니다. 2016 년 9 월 12 일 이후 공식이 변경되지 않았 음에도 불구 하고이 경고가 표시되기 전에 두 시스템에서 모두 수행 한 것은 확실합니다 . 그러나 이것이 어떻게 이것이 영향을 줄 수 있는지 잘 모르겠습니다. GnuPG FAQ에 따르면 OS 및 메모리 잠금과 관련이있는 것 같습니다.gpg2
brew update && brew upgrade
... 그리고 더 이상한 점은 gpg1
Homebrew (버전 1.4.21) 에서도 설치했기 때문에 메모리를 사용할 때 안전하지 않은 메모리에 대해 경고 하지 않습니다 .
$ gpg1 --require-secmem
gpg: Go ahead and type your message ...
^C
gpg: Interrupt caught ... exiting
$ gpg2 --require-secmem
Warning: using insecure memory!
gpg: will not run with insecure memory due to --require-secmem
두 바이너리는 모두 동일한 소유자 및 그룹에 속하며 동일한 권한을 갖습니다.
-r-xr-xr-x 1 adamliter admin 681932 Dec 10 18:06 /usr/local/Cellar/gnupg2/2.0.30_2/bin/gpg2
-r-xr-xr-x 1 adamliter admin 929352 Aug 17 09:21 /usr/local/Cellar/gnupg/1.4.21/bin/gpg1
방금 gpg2
사전 컴파일 된 바이너리를 사용하고 양식 소스를 작성하여 Homebrew로 다시 설치하려고했지만 아무것도 변경하지 않습니다. 안전하지 않은 메모리 사용에 대한 경고 메시지가 계속 나타납니다.
더욱이, gpg2 바이너리가 setuid 루트 비트를 뒤집도록하더라도 ( 예를 들어 , 여기에서 제안 된 것처럼 ) 메시지가 사라지지 않습니다. 여전히 안전하지 않은 메모리 사용에 대해 경고합니다.
오늘 갑자기이 경고가 표시되도록 변경 된 내용을 아는 사람이 있습니까? gpg2
바이너리를 사용 하지 않고 바이너리를 사용할 때 왜 보 gpg1
입니까?
다른 관련 정보 :
$ which gpg1
/usr/local/bin/gpg1
$ ls -al /usr/local/bin/gpg1
lrwxr-xr-x 1 adamliter admin 31 Aug 17 17:42 /usr/local/bin/gpg1 -> ../Cellar/gnupg/1.4.21/bin/gpg1
$ which gpg2
/usr/local/bin/gpg2
$ ls -al /usr/local/bin/gpg2
lrwxr-xr-x 1 adamliter admin 34 Dec 10 18:06 /usr/local/bin/gpg2 -> ../Cellar/gnupg2/2.0.30_2/bin/gpg2
최신 정보
이 문제가 발생하는 이유는의 새 버전 때문이라고 생각합니다 libgcrypt
. 나는 왜 그런 일이 일어나고 있는지 모르겠지만, 이것이 적어도 문제의 근본 원인이라고 확신합니다. 의 공식 libgcrypt
은 오늘 1.7.4 범프에 대해 업데이트되었습니다 . 이것은 내가 두 개의 다른 컴퓨터에서 이것을 본 이유를 설명합니다 brew update && brew upgrade
. 또한 외부 암호화 라이브러리 에 의존하지 않고 자체 통합 암호화 라이브러리를 사용 gpg1
하기 때문에 왜 발생하지 않는지 설명 합니다.gpg1
libgcrypt
또한 gpg2
MacGPG Suite에서 설치 했는데이 문제가 발생하지 않고 다른 버전과 연결되어 있습니다 libgcrypt
.
$ /usr/local/MacGPG2/bin/gpg2 --version
gpg (GnuPG/MacGPG2) 2.0.30
libgcrypt 1.6.6
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ gpg2 --version
gpg (GnuPG) 2.0.30
libgcrypt 1.7.4
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
따라서 이것은 아마도 관리자의 버그 보고서 일 것입니다 libgcrypt
. 나는 그들의 메일 링리스트에 게시 할 것이다. 그러나 나는 다른 사람이 같은 문제를 겪을 때 그리고 / 또는 다른 사람이 정확히 왜 이런 일이 일어나고 있는지 알 수 있도록 여기에 남겨 둘 것이다. 메일 링리스트에 이것이 버그임을 확인한 후 확인을 받으면이 질문을 닫기 위해 투표하겠습니다.
gpg1
와 gpg2
,이를 테스트 할 때 (II) 내 컴퓨터에서 메모리를 모니터링 있었고, 사용되지 않는 메모리의 많음이있다 경고 메시지가 표시되면 문제의 근본을 현지화했다고 생각하지만 여전히 왜 그런지 잘 모르겠습니다. 질문을 잠시 후에 업데이트합니다.