apt-get과 함께 https를 사용하는 방법은 무엇입니까?


51

않습니다 apt-getHTTPS 또는 암호화의 어떤 종류를 사용합니까? 그것을 사용하도록 구성하는 방법이 있습니까?


3
InRelease 서명을 우회하는 bugs.launchpad.net/ubuntu/+source/apt/+bug/1647467 ... 와 같은 취약점으로 인해 어쨌든 HTTPS를 구성하는 것이 좋습니다.
Royce Williams

whydoesaptnotusehttps.com 은이 질문에 정확하고 광범위하게 답변하는 웹 페이지입니다.
m.raynal

1
이것이 유용한 이유는 더 평범한 이유가 있습니다. 필자는 종종 특정 deb 다운로드를 차단하는 경향이있는 깨진 "투명한"프록시로 인터넷에 연결되어 있습니다. 그러나 https를 통해 프록시는 내가 다운로드하는 것을 알지 못하므로 방해하지 않습니다.
Nate Eldredge

답변:


53

apt-get(및 동일한 APT 라이브러리의 프론트 엔드 인 다른 패키지 조작 명령)은 HTTP, HTTPS 및 FTP (및 마운트 된 파일 시스템)를 사용할 수 있습니다. 및에 https://URL 을 지정하면 APT가 HTTPS를 사용합니다./etc/apt/sources.list/etc/apt/sources.list.d/*

APT는 패키지의 서명을 확인합니다. 따라서 데이터 인증을 제공하는 운송 수단이 필요하지 않습니다. 공격자가 다운로드중인 파일을 수정하면이 사실을 알 수 있습니다. 서명 확인을 사용하면 전송중인 공격뿐만 아니라 다운로드중인 서버에 대한 공격을 탐지하므로 HTTPS 연결을 사용하는 것보다 낫습니다.

보다 정확하게는 패키지에 대한 (단순화 된) 데이터 흐름은 다음과 같습니다.

  1. 패키지는 빌드 머신에서 생성됩니다.
  2. 패키지는 빌드 머신에서 서명됩니다.
  3. 서명 된 패키지가 다운로드 미러로 복사됩니다.
  4. 패키지를 다운로드하십시오.

HTTPS는 4 단계가 올바르게 수행되도록합니다. 패키지 서명은 2-4 단계가 올바르게 수행되도록합니다.

실제로, 4 단계에서 HTTPS에 대한 작은 이점이 하나 있습니다. 패키지 서명은 패키지가 정품인지 확인합니다. 4 단계의 공격자는 합법적 인 서버를 가장하여 오래된 버전의 패키지를 제공 할 수 있습니다. 예를 들어 공격자는 시스템에 공격이 아닌 경우 패치했을 취약점을 악용하기 위해 보안 업데이트를 다운로드하지 못하게 할 수 있습니다. 이는 실제 공격자가 아니기 때문에 적극적인 공격자가 필요하기 때문에 (인터넷 연결을 제어하는 ​​사람이어야 함) 원칙적으로 발생할 수 있습니다.

HTTPS의 또 다른 이점은 네트워크 연결에서 스누핑하는 누군가로부터 Ubuntu 패키지를 다운로드한다는 사실을 숨기려고 할 때입니다. 그럼에도 불구하고 도청자는 어떤 호스트에 연결되어 있는지 확인할 수 있습니다. Ubuntu 미러에 연결하여 수백 메가 바이트를 다운로드하는 경우 Ubuntu 패키지를 다운로드하고있는 것이 분명합니다. 도청자는 대부분 파일 크기에서 다운로드중인 패키지를 파악할 수 있습니다. 따라서 비슷한 크기의 다른 파일도 제공하는 서버에서 다운로드하는 경우에만 HTTPS가 유용합니다. 타사 패키지를 제외하고는 매우 드문 경우가 아닙니다.

다시 말하면, HTTPS의 일반적인 이점은 실제 서버에 연결되어 있다는 것을 알기 때문에 Ubuntu 패키지를 다운로드 할 때 쓸모가 없습니다. 패키지의 서명 확인은 HTTPS가 제공 할 수있는 것보다 강력한 보증을 제공합니다.


11
덜 안전하지는 않지만 보호하려는 대상과 관련성이 적습니다. APT를 사용하면 트랜잭션 내용을 암호화하는 것이 중요하지 않습니다. 다운로드하는 내용이 논란의 여지가 없기 때문에 많은 사람들이 다운로드하는 것과 동일한 우분투 패키지입니다. 그러나 중요한 것은받은 파일이 변경되지 않았는지 확인하는 것입니다.
thomasrutter 2018 년

3
몇 주 전에 소스를 https로 변경하려고 시도했지만 작동하지 않아 apt-get update링크에 액세스하려고 할 때 오류가보고됩니다. ppas로 : 동일합니다. 누구든지 그것을 시도 했습니까?
Strapakowsky 2016 년

8
이것이 작동 하려면 저장소 (업데이트 서버) 가 https / SSL지원해야합니다 . 메인 archive.ubuntu.com 은하지 않습니다 . https : //를 URL 앞에 붙이고 디렉토리 목록 등을 얻는 지 확인하여 서버가 서버를 지원하는지 브라우저에서 확인할 수 있습니다.
ish

7
"4 단계의 공격자는 합법적 인 서버를 가장하여 오래된 버전의 패키지를 제공 할 수 있습니다." 실제로 패키지 정보에 만료 날짜를 지정하여이를 방지합니다. APT는이 날짜 이후에 거울이 오래되었다고 경고합니다.
tumbleweed

4
다음은 목록을 생성하는 스크립트와 함께 HTTPS를 지원하는 15 개의 미러 목록입니다. pastebin.com/QY2TQ1dq
Shnatsel

13

APT를 사용하면 일반적으로 더 중요한 것은 연결이 암호화되는 것이 아니라받는 파일이 변조되지 않은 것입니다.

APT는이를 위해 서명 확인 기능이 내장되어 있습니다.

암호화는 도청자가 다운로드하는 것을 볼 수는 없지만 실제로 다운로드하고 요청하는 것은 논란의 여지가 없습니다. 다른 수천 명의 우분투 사용자가 다운로드하는 것과 동일하며 파일에 아무것도 포함되어 있지 않습니다. 많은 서버에서 자유롭게 사용할 수 없습니다. 그래도 다운로드중인 패키지에 대한 개인 정보 보호가 필요한 경우 HTTPS를 사용할 수 있습니다 (sources.list에서 지정).

APT에 내장 된 서명 확인은 수신 한 파일이 변경되지 않았 음을 확인합니다. 파일의 위치는 중요하지 않으며 서버로드를 줄이거 나 속도를 높이기 위해 사용자와 서버 사이에 프록시 또는 리버스 프록시가있을 수도 있습니다. 서명 확인은 여전히 ​​원본 파일 및 Ubuntu의 개인 키 복사본으로 만 암호화하여 생성 할 수있는 서명과 일치하여 수정되지 않은 파일을 받고 있는지 확인합니다.

HTTPS로 전환하면 액세스 속도를 높이거나 더 이상 부하를 줄이기 위해 프록시 서버를 이용할 수 없습니다. 그리고 APT의 서명 확인이 아직 제공하지 않았다는 비탬 퍼링에 대해 더 이상 보증하지 않습니다. 그러나 도청 자 (예 : ISP)는 다운로드중인 패키지 (기밀이 아닐 수 있으며 Gilles가 파일 크기에서 추측 할 수 있음)를 알 수 없음을 의미합니다.


3
파일 크기가 표시되므로 HTTPS는 많은 개인 정보를 제공하지 않습니다. 실제로 HTTPS에는 작은 이점이 있습니다. 즉, 네트워크 연결을 제어하는 ​​공격자가 오래된 데이터를 자동으로 가져 오지 못하도록합니다. 조금 멀리 가져 왔습니다.
Gilles 'SO- 악마 그만'

6
좋은 지적입니다. "스토리 데이터"라는 말은 중간에있는 사람이 약간 이전 버전으로 구성된 우분투 미러 버전을 설정하지만 우분투가 서명 한 내용과 변경되지 않은 것을 의미한다고 가정합니다.
thomasrutter 2018 년

5
그래 그거야. 내가 조금 전문적이지 않다면 주저하지 말고 정보 보안이 아닌 Ask Ubuntu 라는 점을 명심해야한다 .
Gilles 'SO- 악마 그만해'1

apt에는 큰 구멍이있는 것 같습니다 apt update. 중간에 먹이를주는 사람이 있으면, 중간에있는 사람이 당신에게주는 것을 행복하게 가져 와서 / var / lib / apt / lists에 씁니다. 이것은 중간에 악의적 인 사람이 아니라 호텔 WiFi를 사용하고 로그인 페이지로 리디렉션되는 것처럼 로그인 apt update하기 전에 실행 하면 / var / lib / apt / lists가 휴지통으로 이동합니다 호텔 홈페이지 HTML로 BOGUS! 어쨌든 기본 TLS 인증서 검사는 이것을 즉시 배제합니다.
Marius

@Marius 이것은 패키지뿐만 아니라 목록을 포함하는 검증으로 인해 가능하지 않아야합니다. 표준 Apt 설치로이를 재현 한 경우 관리자에게보고해야합니다.
thomasrutter 2016 년

1

최신 APT 릴리스에는 TLS 지원 기능이 내장되어 있으므로 패키지 리포지토리 미러 URL을 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에 패키지가 변조되지 않도록하는 자체 서명 프로토콜이 APT에 포함되어 있어도 유용합니다 ( CVE-2016-1252 , CVE-2019-3462 ). HTTP / TLS 프로토콜 및 해당 암호는 철저한 조사를 받기 때문에이 보안 계층을 추가하면 심각한 제로 데이 취약점이 발생할 가능성이 훨씬 적습니다.


죄송합니다.이 사이트는 Ask Ubuntu입니다. :) 우분투와 비슷한 CDN 솔루션을 찾을 수 없습니다.
Leif Arne Storset

0

나는이 질문이 평신도를위한 지시와 함께 답을 사용할 수 있다고 생각한다.

APT는 여전히 매일 개발중인 Ubuntu 19.10 (Eoan) 빌드에서 기본적으로 HTTPS를 사용하지 않습니다. /etc/apt/sources.list 파일을 검사하고 모든 소스 URL이 "http :"URL 체계를 사용하는지 확인하여이를 확인할 수 있습니다.

HTTPS를 사용하도록 구성하려면 다음 지침을 따르십시오.

먼저 HTTPS를 지원하는 신뢰할 수있는 공식 우분투 아카이브 미러를 찾으십시오.

  1. 로 이동 우분투 공식 아카이브 거울 웹 페이지.
  2. 해당 웹 페이지의 표에서 (A) 신뢰할 수 있다고 간주되는 웹 사이트에서 호스팅되고 (B) "http :"미러가 있으며 선택적으로 (C) 지리적 근접성, 서버 속도 및 업데이트를 충족하는 미러를 식별하십시오. 신선도 환경 설정.
  3. 해당 웹 페이지의 표에서 (2) 단계에서 식별 된 미러의 "http"링크를 클릭하여 미러의 "http :"버전을 방문하십시오.
  4. 브라우저 주소 표시 줄에서 웹 페이지 URL의 "http :"를 "https :"로 수동 변경하십시오.
  5. "https :"URL을 통해 미러로 다시 이동하여 문제가 해결되는지 확인하십시오.

예를 들어, Wikimedia Foundation은 신뢰할 수 있다고 생각하므로 http://mirrors.wikimedia.org/ubuntu/ 미러 URL을 방문한 후 https://mirrors.wikimedia.org/ubuntu/로 변경하여 성공적으로 해결했습니다.

Firefox (67.0.4)를 사용 하고 "도구 모음 버튼 패널을 통해 해당하는 모든 사이트 암호화"기능을 사용 하여 HTTPS Everywhere (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 로 표시)을 기본 미러의 미러 기본 URL로 바꾸고 명령 sudo sed --in-place --regexp-extended 's http://(us\.archive\.ubuntu\.com|security\.ubuntu\.com) https://mirrors.wikimedia.org g' /etc/apt/sources.list을 실행하십시오.

셋째 , Ubuntu 아카이브 외부에서 소프트웨어를 설치 한 후 "http :"로 변경 될 수있는 "http :"소스에 대한 /etc/apt/sources.list.d/ 디렉토리의 내용을 검사해야합니다.

예를 들어, Microsoft의 Visual Studio Code 패키지는 "http :"URL을 지정하는 vscode.list 파일을이 디렉토리에 추가합니다. 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.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.