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

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



답변

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가 제공 할 수있는 것보다 강력한 보증을 제공합니다.


답변

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

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

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

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

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


답변

최신 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 프로토콜 및 해당 암호는 철저한 조사를 받기 때문에이 보안 계층을 추가하면 심각한 제로 데이 취약점이 발생할 가능성이 훨씬 적습니다.


답변

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

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.