ไม่apt-get
ใช้ https หรือชนิดของการเข้ารหัสใด ๆ มีวิธีกำหนดค่าให้ใช้หรือไม่
ไม่apt-get
ใช้ https หรือชนิดของการเข้ารหัสใด ๆ มีวิธีกำหนดค่าให้ใช้หรือไม่
คำตอบ:
apt-get
(และคำสั่งการจัดการแพ็คเกจอื่น ๆ ซึ่งเป็นส่วนหน้าของไลบรารี APT เดียวกัน) สามารถใช้ HTTP, HTTPS และ FTP (และระบบไฟล์ที่เมาท์) หากคุณระบุhttps://
URL ใน/etc/apt/sources.list
และ/etc/apt/sources.list.d/*
จากนั้น APT จะใช้ HTTPS
APT ตรวจสอบลายเซ็นของแพคเกจ ดังนั้นคุณไม่จำเป็นต้องมีรูปแบบการขนส่งที่ให้การรับรองความถูกต้องของข้อมูล หากผู้โจมตีดัดแปลงไฟล์ที่คุณดาวน์โหลดสิ่งนี้จะถูกสังเกตเห็น การใช้การตรวจสอบลายเซ็นนั้นดีกว่าการใช้การเชื่อมต่อ HTTPS เพราะมันจะตรวจจับการโจมตีบนเซิร์ฟเวอร์ที่คุณกำลังดาวน์โหลดไม่ใช่แค่การโจมตีระหว่างทาง
แม่นยำยิ่งขึ้นการไหลของข้อมูล (ประยุกต์) สำหรับแพคเกจมีดังต่อไปนี้:
HTTPS รับรองว่าขั้นตอนที่ 4 เกิดขึ้นอย่างถูกต้อง แพคเกจลายเซ็นให้แน่ใจว่าขั้นตอนที่ 2 ถึง 4 เกิดขึ้นอย่างถูกต้อง
ในความเป็นจริงมีประโยชน์เพียงเล็กน้อยเพียงเล็กน้อยสำหรับ HTTPS สำหรับขั้นตอนที่ 4: ลายเซ็นของแพคเกจเท่านั้นให้แน่ใจว่าแพคเกจเป็นของแท้ ผู้โจมตีในขั้นตอนที่ 4 สามารถเลียนแบบเซิร์ฟเวอร์ที่ถูกต้องตามกฎหมายและให้บริการแพ็คเกจรุ่นเก่า ตัวอย่างเช่นผู้โจมตีสามารถป้องกันคุณจากการดาวน์โหลดการปรับปรุงความปลอดภัยใด ๆ ด้วยความหวังว่าจะหาช่องโหว่ในเครื่องของคุณซึ่งคุณอาจติดตั้งโปรแกรมแก้ไขหากไม่ได้ทำการโจมตี นี่ไม่ใช่สถานการณ์จริงมากเพราะต้องมีผู้โจมตีที่ใช้งานอยู่ (ดังนั้นจะต้องเป็นคนที่ควบคุมการเชื่อมต่ออินเทอร์เน็ตของคุณ) แต่มันอาจเกิดขึ้นได้ในหลักการ
ข้อดีอีกอย่างของ HTTPS คือถ้าคุณพยายามซ่อนความจริงที่ว่าคุณกำลังดาวน์โหลดแพ็คเกจ Ubuntu จากคนที่สอดแนมการเชื่อมต่อเครือข่ายของคุณ ถึงกระนั้นผู้ลักลอบดักฟังก็ยังเห็นโฮสต์ที่คุณกำลังเชื่อมต่ออยู่ ถ้าคุณเชื่อมต่อกับมิเรอร์ Ubuntu และดาวน์โหลดหลายร้อยเมกะไบต์มันชัดเจนว่าคุณกำลังดาวน์โหลดแพ็คเกจ Ubuntu eavesdropper ยังสามารถค้นหาแพ็คเกจที่คุณดาวน์โหลดจากขนาดของไฟล์ ดังนั้น HTTPS จะมีประโยชน์ก็ต่อเมื่อคุณกำลังดาวน์โหลดจากเซิร์ฟเวอร์ที่มีไฟล์อื่น ๆ ที่มีขนาดใกล้เคียงกัน - ฉันไม่เห็นจุดใดเลยยกเว้นแพ็คเกจของบุคคลที่สามและเฉพาะในกรณีที่ผิดปกติมาก
เพื่อย้ำ: ประโยชน์ปกติของ HTTPS ซึ่งคุณรู้ว่าคุณเชื่อมต่อกับเซิร์ฟเวอร์จริงนั้นไม่มีประโยชน์เมื่อคุณดาวน์โหลดแพ็คเกจ Ubuntu การตรวจสอบลายเซ็นบนแพ็คเกจให้การรับประกันที่แข็งแกร่งกว่า HTTPS ที่สามารถให้ได้
apt-get update
จะรายงานข้อผิดพลาดเมื่อพยายามเข้าถึงลิงก์ ด้วย ppas: เหมือนกัน มีใครลองบ้างไหม?
archive.ubuntu.com
คุณสามารถตรวจสอบในเบราว์เซอร์ของคุณได้หากเซิร์ฟเวอร์รองรับได้โดยนำหน้า https: // ไปยัง URL และดูว่าคุณได้รับรายชื่อของไดเรกทอรี ฯลฯ หรือไม่
ด้วย APT โดยทั่วไปสิ่งที่สำคัญกว่าไม่ใช่ว่าการเชื่อมต่อของคุณถูกเข้ารหัส แต่ไฟล์ที่คุณได้รับนั้นยังไม่ได้รับการแก้ไข
APT มีการตรวจสอบลายเซ็นในตัวเพื่อให้แน่ใจในสิ่งนี้
การเข้ารหัสจะป้องกันไม่ให้ผู้ดักฟังสามารถดูสิ่งที่คุณกำลังดาวน์โหลดได้ แต่สิ่งที่คุณกำลังดาวน์โหลด (และการร้องขอ) นั้นไม่มีข้อโต้แย้ง: มันจะเหมือนกับผู้ใช้ Ubuntu คนอื่น ๆ ที่กำลังดาวน์โหลดอยู่และไฟล์นั้นไม่มีอะไรเลย ไม่สามารถใช้งานได้อย่างอิสระบนเซิร์ฟเวอร์จำนวนมาก อย่างไรก็ตามหากคุณต้องการความเป็นส่วนตัวเกี่ยวกับแพ็คเกจที่คุณกำลังดาวน์โหลด HTTPS สามารถใช้งานได้ (ระบุไว้ในรายการแหล่งที่มาของคุณ)
การตรวจสอบลายเซ็นที่สร้างขึ้นใน APT จะทำให้มั่นใจได้ว่าไฟล์ที่คุณได้รับนั้นไม่ได้ถูกดัดแปลง มันไม่สำคัญว่าไฟล์มาจากไหนและเป็นไปได้ที่จะมีพร็อกซีหรือย้อนกลับพร็อกซีในระหว่างคุณและเซิร์ฟเวอร์เพื่อลดภาระของเซิร์ฟเวอร์หรือเพิ่มความเร็วให้คุณ การตรวจสอบลายเซ็นยังช่วยให้มั่นใจว่าคุณได้รับไฟล์ที่ไม่ได้แก้ไขซึ่งตรงกับลายเซ็นที่สามารถสร้างด้วยการเข้ารหัสด้วยไฟล์ต้นฉบับและสำเนาของไพรเวตคีย์ของอูบุนตู
หากคุณเปลี่ยนมาใช้ HTTPS คุณจะไม่สามารถใช้ประโยชน์จากพร็อกซีเซิร์ฟเวอร์เพื่อเร่งความเร็วการเข้าถึงหรือลดภาระอีกต่อไป และมันจะไม่เพิ่มความมั่นใจใด ๆ เพิ่มเติมเกี่ยวกับการไม่ยุ่งเกี่ยวกับการยืนยันลายเซ็นของ APT ที่ไม่ได้ให้ อย่างไรก็ตามจะหมายความว่าผู้ดักฟัง (เช่น ISP ของคุณ) จะไม่สามารถดูแพ็คเกจที่คุณกำลังดาวน์โหลด (ซึ่งไม่น่าจะเป็นความลับและ Gilles ชี้ให้เห็นว่าพวกเขาสามารถเดาได้จากขนาดไฟล์)
apt update
และมีผู้ชายคนหนึ่งอยู่ตรงกลางให้อาหารคุณดัชนีปลอม, apt อย่างมีความสุขจะใช้สิ่งที่คนที่อยู่ตรงกลางให้คุณและเขียนในรายการ / var / lib / apt / นี่ไม่ใช่แค่กับคนชั่วร้ายที่อยู่ตรงกลาง แต่เหมือนกับว่าคุณอยู่ในโรงแรม WiFi และได้รับการเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบหากคุณเรียกใช้apt update
ก่อนที่คุณจะเข้าสู่ระบบ / var / lib / apt / รายการของคุณจะถูกทิ้ง ด้วย HTML หน้าแรกของโรงแรม ปลอม! อย่างไรก็ตามการตรวจสอบใบรับรอง TLS ขั้นพื้นฐานจะทำให้เกิดข้อผิดพลาดในทันที
APT รีลีสล่าสุดมีการรองรับ TLS ในตัวดังนั้นคุณเพียงแค่ต้องการแทนที่ URL มิเรอร์ที่เก็บแพ็กเกจของคุณด้วยhttps
-prefixed สำหรับ Debian มันอาจมีลักษณะเช่นนี้:
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 และเลขศูนย์ของพวกเขาจะต้องผ่านการตรวจสอบอย่างเข้มงวดดังนั้นช่องโหว่ที่รุนแรงในช่วง zero-day มีโอกาสน้อยกว่ามากหากคุณเพิ่มชั้นความปลอดภัยนี้
ฉันคิดว่าคำถามนี้สามารถใช้คำตอบพร้อมคำแนะนำสำหรับคนธรรมดาดังนั้น ...
APT ยังคงไม่ใช้ HTTPS ตามค่าเริ่มต้นในการสร้างประจำวันของ Ubuntu 19.10 (Eoan) (ซึ่งยังอยู่ระหว่างการพัฒนา) หนึ่งสามารถตรวจสอบสิ่งนี้ได้โดยการตรวจสอบไฟล์ /etc/apt/sources.list และสังเกตว่า URL ต้นทางทั้งหมดใช้โครงร่าง URL "http:"
หากต้องการกำหนดค่าให้ใช้ HTTPS เราสามารถทำตามคำแนะนำต่อไปนี้:
ก่อนอื่นให้ค้นหากระจกเก็บถาวรอย่างเป็นทางการที่เชื่อถือได้ของ Ubuntu ที่รองรับ HTTPS:
ตัวอย่างเช่นฉันพิจารณาความน่าเชื่อถือของมูลนิธิ Wikimedia ดังนั้นฉันจึงไปที่http://mirrors.wikimedia.org/ubuntu/ mirror URL และต่อมาเปลี่ยนเป็นhttps://mirrors.wikimedia.org/ubuntu/ซึ่งแก้ไขได้สำเร็จ
หากคุณใช้ Firefox (67.0.4) และติดตั้งส่วนขยายHTTPS ทุกที่ (2019.6.27) พร้อมเปิดใช้งานคุณลักษณะ "เข้ารหัสเว็บไซต์ทั้งหมดที่มีสิทธิ์" (ผ่านแผงปุ่มแถบเครื่องมือ) สามารถข้ามขั้นตอน (4) และ (5) ได้ เนื่องจากส่วนขยายจะแก้ไข URL โดยอัตโนมัติเพื่อใช้ HTTPS ซึ่งจะช่วยให้ผู้ใช้สามารถพิจารณาได้ทันทีว่า URL ของรุ่น "https:" นั้นจะแก้ไขได้หรือไม่
สองอัปเดตรายการแหล่งที่มาของ APT:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
เพื่อสำรองข้อมูลรายการแหล่งที่มาการอัปเดตของคุณ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 ฐานมิเรอร์ของมิเรอร์ที่คุณต้องการจากนั้นให้รันคำสั่งประการที่สามคุณควรตรวจสอบเนื้อหาของไดเรกทอรี /etc/apt/sources.list.d/ เพื่อหา "http:" ที่อาจเปลี่ยนเป็น "https:" หลังจากติดตั้งซอฟต์แวร์จากภายนอกคลังข้อมูล Ubuntu
ตัวอย่างเช่นแพ็คเกจ Visual Studio Code ของ Microsoft เพิ่มไฟล์ vscode.list ไปยังไดเรกทอรีนี้ซึ่งระบุ URL "http:" เปลี่ยนแบบแผน URL ได้อย่างง่ายดายจาก "http:" เป็น "https:" อนุญาตการอัปเดตผ่าน HTTPS
พิจารณาการสำรองไฟล์ต้นฉบับดังกล่าวก่อนทำการแก้ไข
สุดท้ายทำการปรับปรุงเพื่อให้แน่ใจว่าการปรับปรุงจะทำงานอย่างถูกต้อง:
sudo apt-get update
คำสั่งsudo cp /etc/apt/sources.list.backup /etc/apt/sources.list
คำสั่งนอกจากนี้ยังเป็นที่น่าสังเกตว่ามีแพ็คเกจapt-transport-httpsเพื่อเพิ่มการสนับสนุน HTTPS ให้กับ APT แต่แพคเกจนี้ไม่จำเป็นต้องเห็นได้ชัดตามหน้าเว็บhttps://launchpad.net/ubuntu/eoan/+package/apt-transport-httpsและไม่ได้รับความจำเป็นตั้งแต่ APT 1.5 apt-cache show apt-transport-https
ตามข้อมูลที่แสดงให้เห็นหลังจากรันคำสั่ง