कैसे apt-get के साथ https का उपयोग करें?


51

क्या apt-gethttps या किसी भी प्रकार के एन्क्रिप्शन का उपयोग करता है? क्या इसका उपयोग करने के लिए इसे कॉन्फ़िगर करने का कोई तरीका है?


3
ध्यान दें कि Bugs.launchpad.net/ubuntu/+source/apt/+bug/1647467 ... जैसे कमजोरियों के कारण जो InRelease पर हस्ताक्षर करता है, वैसे भी HTTPS को कॉन्फ़िगर करना एक अच्छा विचार है।
रॉयस विलियम्स

whydoesaptnotusehttps.com एक वेब पेज है जो इस सवाल का सटीक और बड़े पैमाने पर जवाब देता है।
एम। सिपाल

1
यह अधिक उपयोगी होने के कारण अधिक सांसारिक कारण है। मैं अक्सर एक टूटे हुए "पारदर्शी" प्रॉक्सी के साथ इंटरनेट कनेक्शन पर हूं जो कुछ डिबेट डाउनलोड को अवरुद्ध करने के लिए जाता है (वे शायद कुछ बेवकूफ मैलवेयर अवरोधक को ट्रिगर करते हैं)। लेकिन https में, प्रॉक्सी को यह पता नहीं है कि मैं क्या डाउनलोड कर रहा हूं और इसलिए यह हस्तक्षेप नहीं करता है।
नैट एल्ड्रेडज

जवाबों:


53

apt-get(और अन्य पैकेज मैनिपुलेशन कमांड, जो समान APT लाइब्रेरी के सामने के छोर हैं) HTTP, HTTPS और FTP (और माउंट किए गए फाइल सिस्टम) का उपयोग कर सकते हैं। यदि आप निर्दिष्ट https://में यूआरएल /etc/apt/sources.listऔर /etc/apt/sources.list.d/*, फिर अपार्ट HTTPS का उपयोग करेगा।

APT पैकेजों के हस्ताक्षर की पुष्टि करता है। इसलिए आपको एक प्रकार का परिवहन करने की आवश्यकता नहीं है जो डेटा प्रमाणीकरण प्रदान करता है। यदि कोई हमलावर आपके द्वारा डाउनलोड की जा रही फ़ाइलों को संशोधित करता है, तो इस पर ध्यान दिया जाएगा। हस्ताक्षर सत्यापन का उपयोग करना HTTPS कनेक्शन का उपयोग करने से बेहतर है, क्योंकि यह आपके द्वारा डाउनलोड किए जा रहे सर्वर पर हमले का पता लगाएगा, न कि केवल ट्रांज़िट में हमला।

अधिक सटीक, पैकेज के लिए (सरलीकृत) डेटा प्रवाह निम्न है:

  1. पैकेज का निर्माण मशीन पर किया जाता है।
  2. पैकेज का निर्माण मशीन पर किया जाता है।
  3. हस्ताक्षरित पैकेज को डाउनलोड मिरर में कॉपी किया जाता है।
  4. आप पैकेज डाउनलोड करें।

HTTPS सुनिश्चित करता है कि चरण 4 सही ढंग से होता है। पैकेज हस्ताक्षर सुनिश्चित करते हैं कि चरण 2 से 4 सही ढंग से होते हैं।

वास्तव में, चरण 4 के लिए HTTPS में एक छोटा लाभ है: पैकेज हस्ताक्षर केवल यह सुनिश्चित करते हैं कि पैकेज प्रामाणिक है। चरण 4 में एक हमलावर वैध सर्वर लगा सकता है और पैकेज के बासी संस्करणों की सेवा कर सकता है। उदाहरण के लिए, हमलावर आपको किसी भी सुरक्षा अद्यतन को डाउनलोड करने से रोक सकता है, जो आपकी मशीन पर भेद्यता का शोषण करने की उम्मीद में होता है, यदि आप हमले के लिए नहीं थे। यह बहुत यथार्थवादी परिदृश्य नहीं है, क्योंकि इसके लिए एक सक्रिय हमलावर की आवश्यकता होती है (ताकि आपके इंटरनेट कनेक्शन पर किसी का नियंत्रण हो), लेकिन यह सिद्धांत रूप में हो सकता है।

HTTPS का दूसरा लाभ यह होगा कि यदि आप इस तथ्य को छिपाने की कोशिश कर रहे हैं कि आप अपने नेटवर्क कनेक्शन पर किसी व्यक्ति से उबंटू पैकेज डाउनलोड कर रहे हैं। फिर भी, ईव्सड्रोपर देख सकता है कि आप किस मेजबान से जुड़ रहे हैं; यदि आप उबंटू दर्पण से कनेक्ट करते हैं और सैकड़ों मेगाबाइट डाउनलोड करते हैं, तो यह स्पष्ट है कि आप उबंटू पैकेज डाउनलोड कर रहे हैं। Eavesdropper ज्यादातर यह भी पता लगा सकता है कि आप फ़ाइलों के आकार से कौन से पैकेज डाउनलोड कर रहे हैं। इसलिए HTTPS केवल तभी उपयोगी होगा जब आप एक ऐसे सर्वर से डाउनलोड कर रहे हों जो समान आकार की अन्य फाइलें भी प्रदान करता हो - मुझे थर्ड-पार्टी पैकेज और केवल बहुत ही असामान्य परिस्थितियों के अलावा कोई बिंदु नहीं दिखता है।

पुनरावृत्ति करने के लिए: HTTPS का सामान्य लाभ, जो यह है कि आप जानते हैं कि आप वास्तविक सर्वर से जुड़े हुए हैं, जब आप उबंटू के पैकेज के लिए बेकार हो जाते हैं। पैकेजों पर हस्ताक्षर सत्यापन HTTPS द्वारा प्रदान की गई तुलना में अधिक मजबूत गारंटी देता है।


11
ऐसा नहीं है कि यह कम सुरक्षित है, यह है कि यह कम प्रासंगिक है कि आप क्या करने की कोशिश कर रहे हैं। APT के साथ, आपके लेन-देन की सामग्री को एन्क्रिप्ट करना इतना महत्वपूर्ण नहीं है, क्योंकि आप जो डाउनलोड कर रहे हैं वह बहुत ही विवादास्पद है: यह सिर्फ उबंटू पैकेज है जिसे बहुत सारे लोग डाउनलोड करते हैं। लेकिन जो महत्वपूर्ण है, यह सुनिश्चित करना है कि आपके द्वारा प्राप्त की गई फ़ाइलों के साथ छेड़छाड़ नहीं की गई है।
थोमसट्रेटर

3
कुछ हफ्ते पहले मैंने स्रोतों को https में बदलने की कोशिश की और यह बस काम नहीं आया, apt-get updateलिंक को एक्सेस करने की कोशिश में त्रुटि की रिपोर्ट करेगा। Ppas के साथ: वही। क्या किसी ने कोशिश की है?
स्ट्रैपकोव्स्की

8
इस काम के लिए रिपॉजिटरी (अपडेट सर्वर) को https / SSL का समर्थन करना चाहिए । मुख्य archive.ubuntu.com नहीं है । आप अपने ब्राउज़र में देख सकते हैं कि क्या कोई सर्वर URL पर https: // को उपसर्ग करके इसका समर्थन करता है और यह देखने के लिए कि क्या आपको निर्देशिकाओं की सूची मिलती है, आदि
ish

7
"चरण 4 में एक हमलावर वैध सर्वर लगा सकता है और पैकेज के बासी संस्करणों की सेवा कर सकता है।" दरअसल, हम पैकेज की जानकारी को एक एक्सपायरी डेट देकर इससे बचाते हैं। APT इस तिथि के बाद चेतावनी देगा कि आपका दर्पण बासी है।
tumbleweed

4
यहाँ सभी 15 दर्पणों की एक सूची दी गई है जो सूची के साथ HTTPS का समर्थन करते हैं जो सूची उत्पन्न करता है: pastebin.com/QY2TQ1dq
Shnatsel

13

APT के साथ, आमतौर पर जो अधिक महत्वपूर्ण है वह यह नहीं है कि आपका कनेक्शन एन्क्रिप्ट किया गया है, बल्कि यह कि आपको जो फाइलें मिल रही हैं, उनके साथ छेड़छाड़ नहीं की गई है।

यह सुनिश्चित करने के लिए APT ने अंतर्निहित हस्ताक्षर सत्यापन किया है।

एन्क्रिप्शन ईवेंटवॉपर को यह देखने से रोक देगा कि आप क्या डाउनलोड कर रहे हैं, लेकिन जो आप वास्तव में डाउनलोड कर रहे हैं (और अनुरोध कर रहे हैं) बहुत ही विवादास्पद है: यह वही होगा जैसे हजारों अन्य उबंटू उपयोगकर्ता डाउनलोड कर रहे हैं और फाइलों में कुछ भी नहीं है ' टी बहुत सारे सर्वर पर आसानी से उपलब्ध है। फिर भी, यदि आपको गोपनीयता की आवश्यकता है कि आप विशेष रूप से कौन से पैकेज डाउनलोड कर रहे हैं, तो HTTPS का उपयोग किया जा सकता है (इसे अपने सूत्रों में सूचीबद्ध करें)।

APT में बनाया गया हस्ताक्षर सत्यापन सुनिश्चित करेगा कि आपके द्वारा प्राप्त की गई फ़ाइलों के साथ छेड़छाड़ नहीं की गई है। यह वास्तव में मायने नहीं रखता है कि फाइलें कहां से आती हैं और सर्वर लोड या गति को कम करने के लिए आपके और सर्वर के बीच समीपवर्ती या रिवर्स प्रॉक्सी होना भी संभव है। हस्ताक्षर सत्यापन अभी भी सुनिश्चित करता है कि आपको अनधिकृत फ़ाइल मिल रही है, हस्ताक्षर से मेल खाते हैं जो केवल मूल फ़ाइल और उबंटू की निजी कुंजी की एक प्रति के साथ क्रिप्टोग्राफिक रूप से निर्मित हो सकते हैं।

यदि आप HTTPS पर स्विच करते हैं, तो आप एक्सेस सर्वर को तेज़ करने या लोड को कम करने के लिए प्रॉक्सी सर्वर का लाभ नहीं ले पाएंगे। और यह गैर-छेड़छाड़ के बारे में और अधिक आश्वासन नहीं जोड़ेगा कि एपीटी के हस्ताक्षर सत्यापन पहले से ही नहीं देते हैं। हालाँकि, इसका मतलब यह होगा कि ईव्सड्रॉपर (जैसे कि आपका आईएसपी) यह नहीं देख पाएगा कि आप कौन से पैकेज डाउनलोड कर रहे हैं (जो कि गोपनीय होने की संभावना नहीं है, और जैसा कि गिल्स ने बताया कि वे फ़ाइल आकार से अनुमान लगा सकते हैं)।


3
HTTPS बहुत गोपनीयता नहीं देगा, क्योंकि फ़ाइलों का आकार दिखाई देता है। वास्तव में HTTPS के लिए एक छोटा सा लाभ है, जो यह है कि यह सुनिश्चित करता है कि आपके नेटवर्क कनेक्शन के नियंत्रण में एक हमलावर चुपचाप बासी डेटा में पर्ची नहीं कर सकता है। यह थोड़ा दूर की कौड़ी है।
गिल्स एसओ- बुराई को रोकें '

6
अच्छे अंक। "बासी डेटा" के अनुसार, मेरा मतलब है कि आप उबंटू दर्पण के एक संस्करण की स्थापना कर रहे हैं, जिसमें थोड़े पहले के संस्करण शामिल थे, लेकिन उबंटू ने उस समय जो हस्ताक्षर किए थे, उससे अभी भी अनलंकृत है।
थोमसट्रेटर

5
हाँ बस यही। यह बताने में संकोच न करें कि अगर मैं थोड़ा परेशान हूं - मुझे यह ध्यान रखना होगा कि यह उबंटू है और सूचना सुरक्षा नहीं ।
गिल्स एसओ- बुराई को रोकें '

लगता है कि आप में एक बड़ा छेद है - जब आप apt updateऔर आपके बीच का कोई शख्स आपको बोगस इंडेक्स खिलाता है, तो आप ख़ुशी ख़ुशी लेते हैं, जो बीच का आदमी आपको देता है और इसे / var / lib / apt / list में लिखता है। यह सिर्फ बीच में एक बुरे आदमी के साथ नहीं है, लेकिन अगर आप होटल के वाईफाई पर हैं और लॉगिन पृष्ठ पर रीडायरेक्ट हो गए हैं, अगर apt updateआप लॉग इन करने से पहले चलते हैं, तो आपकी / var / lib / apt / सूचियों को ट्रैश हो जाएगा। होटल के होमपेज एचटीएमएल के साथ। जाली! वैसे भी बेसिक टीएलएस सर्टिफिकेट चेकिंग से इस पर तुरंत अंकुश लगेगा।
मेरियस

@ यह सत्यापन के कारण संभव नहीं है, जो सूचियों के साथ-साथ संकुल को भी कवर करता है। यदि आपने इसे मानक Apt स्थापना के साथ पुन: पेश किया है, तो आपको इसे अनुरक्षक को रिपोर्ट करना चाहिए।
थोमसट्रेटर

1

हाल के एपीटी रिलीज में टीएलएस समर्थन का निर्माण किया गया है, इसलिए आपको बस अपने पैकेज-रिपॉजिटरी मिरर यूआरएल को https-प्रतिबद्ध लोगों के साथ बदलने की आवश्यकता है। डेबियन के लिए, यह इस तरह दिख सकता है:

deb https://deb.debian.org/debian/ stretch main
deb https://deb.debian.org/debian-security stretch/updates main
deb https://deb.debian.org/debian/ stretch-updates main

यह उपयोगी है, भले ही APT में पैकेजों के साथ छेड़छाड़ न हो, यह सुनिश्चित करने के लिए अपने स्वयं के हस्ताक्षर प्रोटोकॉल शामिल हैं, क्योंकि APT में कीड़े हो सकते हैं (जैसा कि वहाँ रहा है: CVE-2016-1252 , CVE-2019-3462 )। HTTP / TLS प्रोटोकॉल और उनके सिफर्स गहन जांच के अधीन हैं, इसलिए सुरक्षा की इस परत को जोड़ने पर एक गंभीर शून्य-दिन भेद्यता बहुत कम होने की संभावना है।


उफ़, मुझे केवल अब पता चला है कि यह साइट उबंटू है। :) मुझे उबंटू के लिए एक समान CDN समाधान नहीं मिला।
लेफ एर्न स्टोरसेट

0

मुझे लगता है कि यह प्रश्न आम आदमी के लिए निर्देशों के साथ उत्तर का उपयोग कर सकता है, इसलिए ...

APT अभी भी Ubuntu 19.10 (Eoan) (जो अभी भी विकास में है) के दैनिक निर्माण में डिफ़ॉल्ट रूप से HTTPS का उपयोग नहीं करता है। कोई /etc/apt/sources.list फ़ाइल की जांच करके यह सत्यापित कर सकता है कि सभी स्रोत URL "http:" URL योजना का उपयोग करते हैं।

HTTPS का उपयोग करने के लिए इसे कॉन्फ़िगर करने के लिए, व्यक्ति निम्नलिखित निर्देशों का पालन कर सकता है:

सबसे पहले , HTTPS का समर्थन करने वाले एक भरोसेमंद आधिकारिक Ubuntu संग्रह दर्पण को खोजें:

  1. उबंटू वेबपेज के लिए आधिकारिक पुरालेख दर्पण पर नेविगेट करें ।
  2. उस वेबपृष्ठ की तालिका में, उन दर्पणों को पहचानें जो (ए) उन वेबसाइटों पर होस्ट किए गए हैं जिन्हें आप भरोसेमंद मानते हैं, (बी) में एक "http:" दर्पण है, और वैकल्पिक रूप से, (C) आपकी भौगोलिक निकटता, सर्वर गति और अद्यतन को पूरा करते हैं। ताजगी पसंद।
  3. उस वेबपेज की तालिका में, चरण (2) में पहचाने गए दर्पण के "http" लिंक पर क्लिक करके दर्पण के "http:" संस्करण पर जाएं।
  4. ब्राउज़र एड्रेस बार में, मैन्युअल रूप से "http:" को वेबपेज URL में "https:" में बदलें।
  5. फिर से दर्पण पर नेविगेट करें ("https:" URL के माध्यम से) यह देखने के लिए कि क्या यह हल करता है।

उदाहरण के लिए, मैं विकिमीडिया फाउंडेशन को विश्वसनीय मानता हूं, इसलिए मैंने http://mirrors.wikimedia.org/ubuntu/ मिरर URL का दौरा किया और बाद में इसे बदलकर https://mirrors.wikimedia.org/ubuntu/ कर दिया , जो सफलतापूर्वक हल हो गया।

यदि आप फ़ायरफ़ॉक्स (67.0.4) का उपयोग करते हैं और एचटीटीपीएस एवरीवेयर (2019.6.27) एक्सटेंशन को "सभी साइटों को सक्षम करें" योग्य सुविधा के साथ स्थापित किया गया है (टूलबार बटन पैनल के माध्यम से) सक्षम, चरण (4) और (5) छोड़ा जा सकता है क्योंकि एक्सटेंशन स्वचालित रूप से HTTPS का उपयोग करने के लिए URL को संशोधित करेगा, जिससे कोई भी तुरंत यह निर्धारित कर सके कि URL का "https:" संस्करण हल होगा या नहीं।

दो , अपने APT स्रोतों की सूची अपडेट करें:

  1. sudo cp /etc/apt/sources.list /etc/apt/sources.list.backupअपने अद्यतन स्रोतों की सूची का बैकअप लेने के लिए कमांड निष्पादित करें ।
  2. मिरर बेस URL को बदलें- https://mirrors.wikimedia.org के रूप में यहां दिखाया गया है — अपने पसंदीदा मिरर sudo sed --in-place --regexp-extended 's http://(us\.archive\.ubuntu\.com|security\.ubuntu\.com) https://mirrors.wikimedia.org g' /etc/apt/sources.listके मिरर बेस URL के साथ कमांड और, फिर कमांड को निष्पादित करें।

तीसरा , आपको उबंटू आर्काइव के बाहर से सॉफ़्टवेयर इंस्टॉल करने के बाद "http:" स्रोतों के लिए /etc/apt/source.list.d/ निर्देशिका की सामग्री की जांच करनी चाहिए, जिन्हें "https:" में बदला जा सकता है।

उदाहरण के लिए, Microsoft का विज़ुअल स्टूडियो कोड पैकेज इस निर्देशिका के लिए एक vscode.list फ़ाइल जोड़ता है जो "http:" URL निर्दिष्ट करता है। URL स्कीम को "http:" से "https:" में बदलना HTTPS पर अपडेट की अनुमति देता है।

उन्हें संशोधित करने से पहले ऐसी किसी भी स्रोत फ़ाइलों का बैकअप लेने पर विचार करें।

अंत में , यह सुनिश्चित करने के लिए एक अपडेट करें कि अपडेट सही तरीके से काम करेगा:

  1. sudo apt-get updateआदेश निष्पादित करें ।
  2. यदि वह अपेक्षा के अनुरूप काम नहीं करता है, तो sudo cp /etc/apt/sources.list.backup /etc/apt/sources.listकमांड निष्पादित करके बैकअप स्रोत सूची फ़ाइल (ओं) को पुनर्स्थापित करें ।

यह भी ध्यान देने योग्य है कि APT में HTTPS सपोर्ट जोड़ने के लिए apt-transport-https पैकेज है। हालाँकि, वेबपेज https://launchpad.net/ubuntu/eoan/+package/apt-transport-https के अनुसार यह पैकेज स्पष्ट रूप से अनावश्यक है और कमांड निष्पादित करने के बाद दिखाई गई जानकारी के अनुसार APT 1.5 से इसकी आवश्यकता नहीं है apt-cache show apt-transport-https

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.