Con toda la paranoia que ha venido con las revelaciones de la NSA y todo, me pregunto por qué el mecanismo de instalación de paquetes de Debian no admite HTTPS para su transporte, y mucho menos usarlo de forma predeterminada.
Sé que los paquetes de Debian tienen algún tipo de validación de firma usando GPG, pero todavía no creo que usar el transporte HTTPS en lugar de HTTP sea demasiado difícil, considerando lo crucial que es esto en cuanto a seguridad.
Editar: Principalmente quiero protegerme de los ataques de MitM (incluyendo solo el rastreo del tráfico), no de los administradores espejo de Debian. Los repositorios HTTP ponen toda la configuración del sistema sobre la mesa, si alguien espía mi tráfico yendo a los espejos de Debian.
Respuestas:
Ahi esta. Necesitas instalar el paquete
apt-transport-https
. Entonces puedes usar líneas comoen tu
sources.list
archivo Pero generalmente eso no es necesario, ya que todo el contenido es público de todos modos y agrega sobrecarga de cifrado y latencia. Dado que no confía en la clave pública de un atacante, incluso el tráfico http está a salvo de los ataques de MitM.apt
le advertirá y no instalará los paquetes cuando un atacante inyecte paquetes manipulados.EDITAR: Como se menciona en los comentarios, de hecho es más seguro usar el repositorio TLS . La investigación muestra que el uso de apt en repositorios sin cifrar puede representar un riesgo de seguridad ya que el transporte HTTP es vulnerable a los ataques de repetición.
fuente
Su suposición es incorrecta: puede usar descargas HTTPS. Solo tiene que encontrar un espejo que lo admita y poner su URL en su lista de fuentes. Deberá instalar el
apt-transport-https
paquete.Debian no facilita las descargas HTTPS porque hay muy pocos beneficios. La distribución de paquetes de Debian ya incluye un mecanismo para verificar paquetes: todos los paquetes están firmados con Gpg . Si un hombre en el medio activo redirige su tráfico a un servidor con paquetes dañados, la corrupción se detectará porque las firmas GPG no serán válidas. El uso de GPG en lugar de HTTPS tiene la ventaja de que protege contra más amenazas: no solo contra el intermediario activo en la conexión del usuario final, sino también contra un espejo malintencionado o infectado u otros problemas en cualquier parte de la cadena de distribución del paquete .
HTTPS proporciona una ligera ventaja de privacidad, ya que oscurece los paquetes que descargas. Sin embargo, un observador pasivo aún puede detectar el tráfico entre su computadora y un servidor de paquetes, por lo que sabrán que está descargando paquetes de Debian. También podrían tener una buena idea de qué paquetes está descargando desde los tamaños de archivo.
El único lugar donde HTTPS ayudaría es para la confianza de arranque, para obtener una imagen de instalación válida válida. Debian no parece proporcionar eso: hay sumas de comprobación de los medios de instalación , pero solo a través de HTTP.
fuente
Hace poco me encontré con el problema con el repositorio apto de mi empresa. El problema era que si usamos el transporte http estándar, cualquier otra persona puede obtener el paquete fácilmente. Como la Compañía está empaquetando su propio software propietario y no quiere compartirlo con todos, el transporte http se convierte en un problema. No es una tragedia sino un problema. Hay un par de formas de limitar el acceso al paquete: cortafuegos, restricción del acceso a nivel de servidor web, utilizando ssh como transporte. Aquí puede encontrar una lectura bastante fácil de consumir sobre este tema: Restrinja el acceso a su repositorio privado de Debian
En nuestro caso, decidimos usar https transporte + autenticación de certificado de cliente. Brevemente, todo lo que se necesita es:
Configure el servidor web cuyo repositorio de frentes acepte solo https; En el caso de nginx podría verse así:
Coloque el certificado del cliente, la clave del cliente y el certificado ca en / etc / apt / ssl y, en el caso de Ubuntu, agregue el archivo 00https a /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"; };
Tenga en cuenta que si está utilizando un certificado autofirmado, es importante desactivar la verificación del host:
Verify-Host "false";
si no lo hace, verá un error:SSL: certificate subject name (blah-blah-blah) does not match target host name 'example.com'
Y aquí vamos, ya no hay acceso no autorizado al repositorio. Así que esto es algo bastante útil y poderoso.
fuente
Tenga en cuenta que debido a vulnerabilidades como
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1647467
... que evita la firma de InRelease, probablemente sea una buena idea configurar HTTPS de todos modos.
fuente
Para el caso de uso de "anonimato" también existe el
apt-transport-tor
que le permite colocar URI comotor+http://
en los archivos sources.list. Esta es una protección de anonimato mucho mejor que simplemente encriptar la conexión a su espejo.Por ejemplo, un observador local aún sabría que está actualizando o instalando software incluso con HTTPS, y probablemente pueda hacer algunas suposiciones decentes sobre cuáles de los que está haciendo (y posiblemente incluso qué paquetes, según el tamaño).
Debian proporciona repositorios APT a través de los "servicios Onion" de Tor para que pueda obtener un cifrado de extremo a extremo (similar a TLS) sin tener que confiar en el sistema de nombres de dominio. Vea onion.debian.org para todos los servicios de Debian disponibles de esta manera. El repositorio principal de Debian FTP está en
vwakviie2ienjx6t.onion
fuente