आज के रूप में, जब भी मैं gpg2
अपने मैक (10.12.1) पर (होमब्रे के माध्यम से स्थापित) का उपयोग करता हूं, तो अब मैं निम्नलिखित चेतावनी देखता हूं:
Warning: using insecure memory!
इसके लायक क्या है, मैं दो अलग-अलग मशीनों पर एक ही व्यवहार देख रहा हूं: एक मैक मिनी (2012 के अंत में) और एक मैकबुक प्रो (2012 के अंत में), दोनों 10.12.1 चल रहे हैं।
के रूप में GnuPG पूछे जाने वाले प्रश्न का कहना है:
GnuPG मेमोरी को लॉक करने की कोशिश करता है ताकि कोई अन्य प्रक्रिया इसे न देख सके और मेमोरी को स्वैप करने के लिए नहीं लिखा जाएगा। यदि किसी कारण से यह ऐसा करने में सक्षम नहीं है (उदाहरण के लिए, कुछ प्लेटफ़ॉर्म इस तरह की मेमोरी लॉकिंग का समर्थन नहीं करते हैं), तो GnuPG आपको चेतावनी देगा कि यह असुरक्षित मेमोरी का उपयोग कर रहा है।
हालांकि सुरक्षित मेमोरी का उपयोग करना लगभग हमेशा बेहतर होता है, लेकिन असुरक्षित मेमोरी का उपयोग करना जरूरी नहीं है। यदि आप मशीन के मालिक हैं और आपको विश्वास है कि यह मैलवेयर को नुकसान नहीं पहुंचा रहा है, तो संभवतः इस चेतावनी को अनदेखा किया जा सकता है।
मुझे चकित करने वाली बात यह है कि 12 सितंबर, 2016gpg2
से कोई बदलाव नहीं हुआ है । मैंने तब से संस्करण 2.0.30 को कम या ज्यादा स्थापित किया है, लेकिन मैंने केवल असुरक्षित स्मृति के बारे में इस चेतावनी को देखना शुरू कर दिया है। भले ही 12 सितंबर, 2016 से फॉर्मूला नहीं बदला है, लेकिन एक बात जो मैं यह सुनिश्चित कर सकता हूं कि मैंने यह चेतावनी देखने की शुरुआत से पहले दोनों मशीनों पर की थी । लेकिन मुझे यकीन भी नहीं है कि यह कैसे प्रभावित कर सकता है; GnuPG अकसर किये गए सवाल को कहते हैं, ऐसा लगता है कि यह ओएस और मेमोरी लॉकिंग के साथ कुछ और करना है।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
होमब्रॉव के साथ पुन : स्थापित करने का प्रयास किया: दोनों पूर्वनिर्मित बाइनरी का उपयोग करके और फॉर्म स्रोत का निर्माण करके, लेकिन यह कुछ भी नहीं बदलता है। मुझे अभी भी असुरक्षित स्मृति का उपयोग करने के बारे में चेतावनी मिली है।
इसके अलावा, यहां तक कि gpg2 को बाइनरी बनाने से सेटुइड रूट बिट फ़्लिप हो गया (जैसा कि सुझाव दिया गया है, उदाहरण के लिए , यहां ) संदेश को गायब नहीं करता है; यह अभी भी असुरक्षित स्मृति का उपयोग करने के बारे में चेतावनी देता है।
क्या किसी को पता है कि ऐसा क्या बदल सकता है कि मैं आज अचानक इस चेतावनी को देखना शुरू कर दूंगा? और 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
। मुझे अभी भी नहीं पता कि ऐसा क्यों हो रहा है, लेकिन मुझे पूरा यकीन है कि यह कम से कम समस्या का मूल कारण है। सूत्र केवल 1.7.4 टक्कर के लिए आज अपडेट कियाlibgcrypt
गया था ; यह समझाता है कि मैं इसे एक के बाद दो अलग-अलग कंप्यूटरों पर क्यों देख रहा हूं । यह यह भी बताएगा कि ऐसा क्यों नहीं हो रहा है , क्योंकि बाहरी क्रिप्टोग्राफ़िक लाइब्रेरी पर निर्भर नहीं था , इसके बजाय अपने स्वयं के एकीकृत क्रिप्टोग्राफ़िक लाइब्रेरी का उपयोग कर रहा था।brew update && brew upgrade
gpg1
gpg1
libgcrypt
इसके अलावा, मैंने gpg2
MacGPG सुइट से भी स्थापित किया है, जो इस समस्या का प्रदर्शन नहीं कर रहा है और एक अलग संस्करण के खिलाफ जुड़ा हुआ है 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) यह परीक्षण करते समय मैं अपने कंप्यूटर पर मेमोरी की निगरानी कर रहा हूं, और बहुत सी अप्रयुक्त मेमोरी है जब मैं चेतावनी संदेश देखता हूं। मुझे लगता है कि मैंने मुद्दे की जड़ को स्थानीयकृत कर दिया है, लेकिन मुझे अभी भी यकीन नहीं है कि ऐसा क्यों हो रहा है। एक सेकंड में प्रश्न को अपडेट करेगा।