Debian apt aracı için neden https transportu yok?


45

NSA'nın ifşaları ve her şeyiyle gelen tüm paranoya ile birlikte, debian paket kurulum mekanizmasının neden varsayılan olarak kullanmasa da, HTTPS'yi taşıması için desteklemediğini merak ediyorum.

Debian paketlerinin GPG kullanarak bir tür imza doğrulaması olduğunu biliyorum, ancak bunun HTTP açısından HTTPS aktarımını kullanmanın, bunun güvenlik açısından ne kadar önemli olduğunu düşünerek çok zor olacağını düşünmüyorum.

Düzenleme: Kendimi en çok Debian Mirror yöneticilerinden değil MitM saldırılarından (sadece trafik koklama dahil) korumak istiyorum. HTTP depoları, trafiğime merak uyandıran debian aynalarına giderse, tüm sistem kurulumunu masaya koyar.



gerekli değil ... bu herkese açık içeriğe sahip ... paketler sağlama toplamı imzaladı
Skaperen

Tamam, böylece ağ yöneticinize hangi paketleri kurduğunuzu / yükselttiğinizi bildirmek istemezsiniz.
Skaperen

yöneticileri veya başka herhangi bir gizli konuşmacı.
zaadeh

Yanıtlar:


49

Var. Paketi yüklemeniz gerekiyor apt-transport-https. Sonra gibi çizgiler kullanabilirsiniz

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

sizin de sources.listdosyaya. Ancak, genellikle bu gerekli değildir, çünkü tüm içerik zaten herkese açıktır ve şifreleme yükünü ve gecikmesini de ekler. Bir saldırganın ortak anahtarına güvenmediğiniz için, http trafiği bile MitM saldırılarından güvenlidir. aptsizi uyarır ve bir saldırgan manipüle paketleri enjekte ettiğinde paketleri kurmaz.

EDIT: Yorumlarda belirtildiği gibi, TLS deposunu kullanmak gerçekten daha güvenli . Araştırmalar, şifrelenmemiş havuzlarda apt kullanımının gerçekten de, HTTP taşımacılığı tekrar saldırılara karşı savunmasız olduğu için güvenlik riski oluşturabileceğini gösteriyor.


7
Hayır, çoğu ayna https'yi desteklemez. Sadece bu tür trafiği şifrelemek pek mantıklı değil. Paketler zaten doğrulanıyor ve bilgiler herkese açık.
Marco

4
TLS üzerinden indirmeyi hala tercih etmemin birkaç nedeni olduğunu düşünebilirim: 1) Paketleri kurarken gizliliğimi önemseyebilirim ve 2) paket imzası kontrol kodunda bir MITM'nin kullanabileceği hatalar olabilir.
Jack O'Connor,

2
@ JackO'Connor, gizlilik konusundaki ilk itiraz anlaşılabilir olmakla birlikte, ikincisi, web sitelerinin içeriğini PGP anahtarlarıyla imzalamayı sevdiğim için çünkü TLS kodunda hatalar olabilir. Hem PGP hem de TLS güven oluşturur; Bunun için ikisine de gerek yok.
Paul Draper

7
@Marco cevabınız yanlış; çok sayıda araştırma makalesi, hem APT hem de YUM havuzlarının, depoya GPG imzalarıyla bile HTTP üzerinden erişildiğinde tekrar saldırılara karşı savunmasız olduklarını göstermiştir. Havuzlara yalnızca zamanın% 100'ü olan TLS üzerinden erişilmelidir.
Joe Damato

6
İşte Joe Damato'nun kastettiği makale - burada
SauceCode

17

Varsayımınız yanlış: HTTPS indirmelerini kullanabilirsiniz. Sadece onu destekleyen bir ayna bulmanız ve URL'sini kaynaklar listenize eklemeniz gerekir. apt-transport-httpsPaketi yüklemeniz gerekir .

Debian, HTTPS indirmelerini kolaylaştırmaz, çünkü çok az fayda vardır. Debian paket dağıtımı zaten paketleri doğrulamak için bir mekanizma içermektedir: tüm paketler Gpg ile imzalanmıştır . Etkin bir ortadaki adam trafiğinizi bozuk paketlere sahip bir sunucuya yönlendirirse, GPG imzaları geçerli olmayacağından yolsuzluk algılanır. HTTPS yerine GPG kullanmak, daha fazla tehdide karşı koruma avantajına sahiptir: yalnızca son kullanıcı bağlantısında ortadaki aktif adama karşı değil, aynı zamanda paket dağıtım zincirinin herhangi bir yerinde sahte veya virüslü bir aynaya veya diğer sorunlara karşı .

HTTPS, indirdiğiniz paketleri gizlemesinde hafif bir gizlilik avantajı sağlar. Ancak pasif bir gözlemci, bilgisayarınız ve bir paket sunucusu arasındaki trafiği hala algılayabilir, bu nedenle Debian paketlerini indirdiğinizi bilirler. Ayrıca, dosya boyutlarından hangi paketleri indirdiğinizi iyi bir şekilde öğrenebilirler.

HTTPS'nin yardım edeceği yerlerden biri, bilinen bir yükleme görüntüsünü elde etmek için güven önyüklemesidir. Debian bunu sağlamıyor gibi gözüküyor: kurulum medyasının toplamı var , ancak yalnızca HTTP üzerinden.


Kurulum medyasının HTTPS sürümü var: cdimage.debian.org/debian-cd
Fedir RYKHTIK


@AaronFranke HTTP ile sömürülmesi daha kolay olan ve HTTPS'den çok daha az yarar sağlayan bir hata, evet. HTTP, HTTPS'den daha büyük bir saldırı yüzeyine sahip değildi: aslında HTTPS, daha fazla kod içerdiğinden daha büyük bir saldırı yüzeyine sahip. Bu yüzden net bir fayda bile değil: iki marjinal risk arasındaki bir denge.
Gilles 'SO- kötülükten vazgeç'

9

Kısa süre önce bu konuyu Şirketimin uygun deposuyla karşıladım. Sorun, eğer standart http transport kullanıyorsak, başkalarının kolayca paket alabilmesiydi. Şirket kendi tescilli yazılımını paketlerken ve onu herkesle paylaşmak istemediğinden, http transport bir problem haline geliyor. Bir trajedi değil, sorun. Pakete erişimin nasıl sınırlandırılacağının birkaç yolu vardır - güvenlik duvarı, web sunucusu düzeyinde erişimi kısıtlamak, ssh olarak kullanmak. Bu konuyla ilgili okuma yapmak oldukça kolay burada bulunabilir: Özel Debian Deponuza Erişiminizi Kısıtlayın

Bizim durumumuzda https transport + client sertifika kimlik doğrulaması kullanmaya karar verdik. Kısaca, tüm alır:

  1. Kendinden imzalı sertifikaları, müşteriyi ve sunucuyu hazırlayın (easy-rsa kullanarak);
  2. Yalnızca https kabul etmek için depo önündeki web sunucusunu yapılandırın; Nginx durumunda şöyle görünebilir:

    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. Müşteri sertifikası, müşteri anahtarı ve ca sertifikasını / etc / apt / ssl dizinine koyun ve Ubuntu durumunda, /etc/apt/apt.conf.d dizinine 00https dosya ekleyin:

    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"; };

Kendinden imzalı bir sertifika kullanıyorsanız, ana bilgisayar doğrulamasının kapatılmasının önemli olduğunu unutmayın: Verify-Host "false";Bunu yapmazsanız bir hatayla karşılaşırsınız: SSL: certificate subject name (blah-blah-blah) does not match target host name 'example.com'

Ve işte başlıyoruz, depoya yetkisiz erişim yok. Yani bu oldukça kullanışlı ve güçlü bir şey.


3
Harika cevap için teşekkürler. Fakat asıl meselenin hala orada olduğunu düşünüyorum. HTTPS, özellikle web ve debian paketleri üzerinden yapılan transferler için varsayılan protokol haline gelmelidir. Argüman neden HTTPS olmamalı, neden olmasın?
zaadeh

1
@ aalizadeh, sizinle aynı fikirdeyim, https kullanırken ek yük yoktur, ancak büyük ek yük yoktur. Bence, https’in varsayılan bir taşıma yöntemi olmamasının ana nedeni, bazı kuruluşların şifreli trafiği açıkça yasaklamalarıdır (burunlarını çalışanların İnternet üzerinden yaptıklarına sokmak istedikleri için), yani depoların desteklemesi gerektiği anlamına gelir. Hem http hem de https taşımaları. Başka düşünceler de olabilir
09

1
"Doğrulama-Ana Bilgisayar" yanlış ";« kullanılması, kendinden imzalı sertifikalarla bile yanlıştır. Müşterilerinizi bunun yerine (doğru) sunucu sertifikasından haberdar etmeniz gerekir.
Axel Beckert

1
Gerçekten, ama burada müşterilerim yalnızca iç sistemlerdi. Böylece uygun pki altyapısını oluşturmak yerine köşeyi kestim. Ve evet, daha sonra pki düzgün bir şekilde yerleşti ve Verify-Host yanlıştı; kaldırıldı. Ve evet, nokta geçerli.
saat

1
ubuntu xenial ile apt paketleri imtiyazsız kullanıcı _apt olarak kabul edilir, lütfen bu konuyu dosya izin sorunlarını nasıl yönettiğiniz veya çözdüğünüzle ilgili detaylar ile güncelleyebilir misiniz?
David

7

Bu gibi güvenlik açıkları nedeniyle

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

... InRelease imzasını ortadan kaldıran, HTTPS'yi yapılandırmak iyi bir fikir olabilir.


1
Ve şimdi bunun da aynısı : ayna.fail AKA usn.ubuntu.com/3746-1 AKA CVE-2018-0501. InRelease imzalama yeterli değil . "Ancak tüm aynaların HTTPS'ye taşınması zaman ve koordinasyon gerektirecektir!" Evet. Şimdi başla. Bu, son InRelease başarısızlığı olmayacak.
Royce Williams

1
İşte farklı bir ekosistemden başka bir örnek - Alpine. Paket yönetim sistemi HTTPS'yi varsayılan olarak kullanmaz ve yalnızca paket bütünlüğünü doğrulamak için imzalamayı kullanır ... ve bu doğrulama işleminin Eylül 2018’de uzaktan sömürülebilir bir hataya uğradığı belirlenir : justi.cz/security/2018/09/13/alpine- apk-rce.html Alpine, şimdi varsayılan olarak HTTPS kullanmaya başlamalıdır .
Royce Williams

4

"Anonimlik" kullanım durumu için, apt-transport-tordaha sonra URI'leri tor+http://sources.list dosyalarında olduğu gibi koymanıza izin veren de vardır . Bu, aynanızla olan bağlantıyı şifrelemekten çok daha iyi bir anonimlik korumasıdır.

Örneğin, yerel bir gözlemci HTTPS ile bile yazılımı güncellediğinizi veya kurduğunuzu hala bilecektir ve muhtemelen hangisinin ne yaptığına (ve muhtemelen hangi paketlerin boyutuna göre) olduğuna dair iyi tahminler yapabilir.

Debian, Tor "Soğan hizmetleri" üzerinden APT depoları sağlar, böylece alan adı sistemine güvenmek zorunda kalmadan uçtan uca şifreleme (TLS'ye benzer) elde edebilirsiniz. Bkz onion.debian.org kullanılabilir tüm Debian hizmetler bu şekilde için. Ana Debian FTP deposuvwakviie2ienjx6t.onion

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.