왜 데비안 apt 도구에 대한 https 전송이 없습니까?


45

NSA 계시와 함께 제공되는 모든 편집증과 함께 데비안 패키지 설치 메커니즘이 기본적으로 사용하지 않고 왜 전송을 위해 HTTPS를 지원하지 않는지 궁금합니다.

데비안 패키지에는 GPG를 사용하여 일종의 서명 유효성 검사가 있다는 것을 알고 있지만 보안이 얼마나 중요한지 고려할 때 여전히 HTTP 대신 HTTPS 전송을 사용하는 것이 너무 어렵다고 생각하지 않습니다.

편집 : 나는 데비안 미러 관리자가 아닌 MitM 공격 (트래픽 스니핑 포함)으로부터 자신을 보호하고 싶습니다. 누군가가 데비안 미러로 이동하는 트래픽을 스누핑하면 HTTP 리포지토리가 전체 시스템 설정을 테이블에 배치합니다.



필요하지 않습니다 ... 공개 콘텐츠입니다 ... 패키지가 체크섬에 서명했습니다
Skaperen

네트워크 관리자에게 어떤 패키지를 설치 / 업그레이드하는지 알리지 않기를 원합니다.
Skaperen

관리자 또는 기타 도청 자.
zaadeh

답변:


49

있습니다. 패키지를 설치해야합니다 apt-transport-https. 그런 다음과 같은 줄을 사용할 수 있습니다

 deb https://some.server.com/debian stable main

당신의 sources.list파일. 그러나 일반적으로 전체 콘텐츠가 공개되고 암호화 오버 헤드와 대기 시간이 추가되므로 일반적으로 필요하지 않습니다. 공격자 공개 키를 신뢰하지 않기 때문에 http 트래픽조차도 MitM 공격으로부터 안전합니다. apt공격자가 조작 된 패키지를 주입 할 때 경고하고 패키지를 설치하지 못합니다.

편집 : 의견에서 언급했듯이 TLS 저장소 를 사용하는 것이 실제로 더 안전 합니다. 연구에 따르면 암호화되지 않은 리포지토리에 apt를 사용하면 HTTP 전송이 재생 공격에 취약하므로 실제로 보안 위험이 발생할 수 있습니다.


7
아니요, 대부분의 미러는 https를 지원하지 않습니다. 이런 종류의 트래픽을 암호화하는 것은 의미가 없기 때문에 간단합니다. 어쨌든 패키지가 확인되고 정보가 공개됩니다.
Marco

4
나는 여전히 TLS를 통해 다운로드하는 것을 선호하는 몇 가지 이유를 생각할 수 있습니다. 1) 패키지를 설치할 때 개인 정보 보호에 관심이 있고 2) MITM이 악용 할 수있는 패키지 서명 검사 코드에 버그가있을 수 있습니다.
잭 오코너

2
@ JackO'Connor, 개인 정보 보호에 대한 첫 번째 이의 제기는 이해할 만하지 만 두 번째는 TLS 코드에 버그가있을 수 있기 때문에 웹 사이트가 PGP 키로 콘텐츠에 서명하는 것을 좋아한다고 말하는 것과 같습니다. PGP와 TLS는 모두 신뢰를 설정합니다. 그 둘 다 필요하지 않습니다.
Paul Draper

7
@Marco 귀하의 답변이 잘못되었습니다. 많은 연구 논문에 따르면 APG 및 YUM 리포지토리는 모두 GPG 서명을 사용하여 HTTP를 통해 리포지토리에 액세스 할 때 재생 공격에 취약한 것으로 나타났습니다. 리포지토리는 시간의 100 % 인 TLS를 통해서만 액세스해야합니다.
Joe Damato

6
여기 @Joe Damato가 언급 한 논문이 있습니다-또한 그의 대답을 보십시오
SauceCode

17

가정이 잘못되었습니다. HTTPS 다운로드를 사용할 수 있습니다. 이를 지원하는 미러를 찾아서 소스 목록에 URL을 넣으면됩니다. apt-transport-https패키지 를 설치해야 합니다.

데비안은 이점이 거의 없기 때문에 HTTPS 다운로드를 쉽게하지 않습니다. 데비안 패키지 배포판에는 이미 패키지를 확인하는 메커니즘이 포함되어 있습니다. 모든 패키지는 Gpg 로 서명됩니다 . 활성 중간자 (man-in-the-middle)가 패키지가 손상된 서버로 트래픽을 리디렉션하면 GPG 서명이 유효하지 않기 때문에 손상이 감지됩니다. HTTPS 대신 GPG를 사용하면 최종 사용자 연결의 활성 MITM (Man-in-the-Middle)뿐만 아니라 불량 또는 감염된 미러 또는 패키지 배포 체인의 다른 위치에 대한 위협으로부터 보호 할 수 있다는 이점이 있습니다. .

HTTPS는 다운로드 한 패키지를 가릴 수 있다는 점에서 약간의 개인 정보 보호 이점을 제공합니다. 그러나 수동 관찰자는 여전히 컴퓨터와 패키지 서버 간의 트래픽을 감지 할 수 있으므로 데비안 패키지를 다운로드하고 있음을 알게됩니다. 또한 파일 크기에서 어떤 패키지를 다운로드하고 있는지 알 수 있습니다.

HTTPS가 도움이되는 곳은 알려진 올바른 설치 이미지를 얻는 것입니다. 데비안은 다음을 제공하지 않는 것 같습니다 : 설치 미디어의 체크섬이 있지만 HTTP를 통해서만 제공됩니다.


설치 미디어의 HTTPS 버전이 있습니다 : cdimage.debian.org/debian-cd
Fedir RYKHTIK

2
혜택이 거의 없습니까? justi.cz/security/2019/01/22/apt-rce.html어떻 습니까?
Aaron Franke

@AaronFranke HTTPS보다 HTTP로 쉽게 악용 할 수있는 하나의 특정 버그는 별다른 이점이 없습니다. HTTP가 HTTPS보다 공격면이 더 큰 것처럼 보이지는 않습니다. 실제로 HTTPS 자체에는 더 많은 코드가 포함되므로 공격면이 더 큽니다. 따라서 전혀 순이익이 아닙니다. 두 가지 한계 리스크 사이의 균형입니다.
Gilles 'SO- 악마 그만'

9

최근에 저는 회사의 적절한 저장소에 문제가 생겼습니다. 문제는 표준 http 전송을 사용하면 다른 사람이 쉽게 패키지를 얻을 수 있다는 것입니다. 회사가 자체 소유 소프트웨어를 패키징하고 모든 사람과 공유하고 싶지 않기 때문에 http 전송이 문제가됩니다. 비극이 아니라 문제입니다. ssh를 전송으로 사용하여 패키지에 대한 액세스를 제한하는 방법 (방화벽, 웹 서버 수준의 액세스 제한)에는 몇 가지 방법이 있습니다. 이 주제에 대한 독서를 매우 쉽게 읽을 수 있습니다 : 개인 데비안 리포지토리에 대한 액세스 제한

이 경우 https 전송 + 클라이언트 인증서 인증을 사용하기로 결정했습니다. 간단히 말하면 다음과 같습니다.

  1. 자체 서명 된 인증서, 클라이언트 및 서버 준비 (easy-rsa 사용)
  2. https 만 수락하도록 저장소를 앞면으로하는 웹 서버를 구성하십시오. nginx의 경우 다음과 같이 보일 수 있습니다.

    server {
    
      listen 443;
    
      root /path/to/public;
      server_name secure_repo;
    
      ssl on;
      ssl_certificate /etc/nginx/ssl/server.crt;
      ssl_certificate_key /etc/nginx/ssl/server.key;
    
      ssl_session_timeout 5m;
    
      ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:;
    
      ssl_prefer_server_ciphers on;
      ssl_client_certificate /etc/nginx/ssl/ca.crt;
      ssl_verify_client on;
    
      location / {
         autoindex on;
      }
    }
    
  3. 클라이언트 인증서, 클라이언트 키 및 ca 인증서를 / etc / apt / ssl에 넣고 우분투의 경우 00https 파일을 /etc/apt/apt.conf.d에 추가하십시오.

    Debug::Acquire::https "true"; Acquire::https::example.com { Verify-Peer "true"; Verify-Host "false"; CaInfo "/etc/apt/ssl/ca.crt"; SslCert "/etc/apt/ssl/client.crt"; SslKey "/etc/apt/ssl/client.key"; };

자체 서명 인증서를 사용하는 경우 호스트 확인을 끄는 것이 중요합니다. Verify-Host "false";이 작업을 수행하지 않으면 오류가 발생합니다. SSL: certificate subject name (blah-blah-blah) does not match target host name 'example.com'

이제 우리는 저장소에 대한 더 이상 무단 액세스가 없습니다. 따라서 이것은 매우 유용하고 강력한 것입니다.


3
큰 답변 주셔서 감사합니다. 그러나 나는 주요 문제가 여전히 있다고 생각합니다. HTTPS는 실제로 웹 및 데비안 패키지를 통한 전송을위한 기본 프로토콜이되어야합니다. 논쟁은 왜 HTTPS가 아니어야합니까? 왜 그렇지 않아야합니까?
zaadeh

1
@aalizadeh, 나는 당신에게 동의합니다. https를 사용할 때 오버 헤드가 있지만 거대한 오버 헤드는 없습니다. https가 기본 전송이 아닌 주된 이유는 일부 조직에서 암호화 된 트래픽을 명시 적으로 금지하기 때문입니다 (직원이 인터넷을 통해 수행하는 작업에 코를 고수하기 위해). 이는 리포지토리가 지원해야 함을 의미합니다. http 및 https 전송. 다른 고려 사항이있을 수 있습니다
at0S

1
자체 서명 된 인증서에서도 "Verify-Host"false ";«사용이 잘못되었습니다. 대신 클라이언트가 (올바른) 서버 인증서를 인식하도록해야합니다.
Axel Beckert

1
실제로 내 고객은 내부 시스템 일뿐입니다. 따라서 모든 적절한 pki 인프라를 만드는 대신 모퉁이를 잘라 냈습니다. 그리고 예, 나중에 pki가 올바르게 설정되었고 Verify-Host가 false입니다. 제거되었습니다. 그리고 네, 요점은 유효합니다.
at0S

1
우분투 xenial을 사용하면 apt 패키지가 권한이없는 사용자 _apt로 가져옵니다. 파일 권한 문제를 관리하거나 해결하는 방법에 대한 세부 사항 으로이 스레드를 업데이트 할 수 있습니까?
David

7

다음과 같은 취약점으로 인해

https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1647467

... InRelease 서명을 우회하는 경우 어쨌든 HTTPS를 구성하는 것이 좋습니다.


1
그리고 이제 이것도 마찬가지입니다 : mirror.fail AKA usn.ubuntu.com/3746-1 AKA CVE-2018-0501. InRelease 서명 이 충분하지 않습니다 . "그러나 모든 미러를 HTTPS로 옮기려면 시간과 조정이 필요합니다!". 예. 지금 시작하십시오. 이것은 마지막 InRelease 실패가 아닙니다.
Royce Williams

1
다른 생태계 인 알파인의 또 다른 예가 있습니다. 패키지 관리 시스템은 기본적으로 HTTPS를 사용하지 않으며 패키지 무결성을 확인하기 위해 서명에만 의존하고 ... 2018 년 9 월에 원격으로 악용 가능한 버그가 확인되었습니다 : justi.cz/security/2018/09/13/alpine- apk-rce.html 알파인은 이제 기본적으로 HTTPS를 사용하기 시작 합니다.
Royce Williams

4

"익명 성"사용 사례의 경우 source.list 파일 apt-transport-tor과 같은 URI를 넣을 수도 tor+http://있습니다. 이것은 단순히 미러에 대한 연결을 암호화하는 것보다 훨씬 더 나은 익명 성 보호입니다.

예를 들어, 로컬 관찰자는 여전히 HTTPS를 사용하여 소프트웨어를 업데이트하거나 설치하고 있음을 알고 있으며 현재 수행중인 패키지와 크기에 따라 패키지를 추정 할 수 있습니다.

데비안은 Tor "Onion services"를 통해 APT 리포지토리를 제공하므로 도메인 이름 시스템을 신뢰하지 않고도 종단 간 암호화 (TLS와 유사)를 얻을 수 있습니다. 이 방법으로 사용 가능한 모든 데비안 서비스는 onion.debian.org 를 참조하십시오 . 주요 데비안 FTP 저장소는vwakviie2ienjx6t.onion

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