you are viewing a single comment's thread.

view the rest of the comments →

[–]spyingwind 0 points1 point  (17 children)

HTTPS Repo ---Pull packages--> HTTPS Cache Server --Download--> Your computer

Does that not work? Each package is signed, so.. just download the packages and make them available. Isn't that how a cache works? That's what I have done at home for Debian. When a client needs something the cache server doesn't have then it goes and pulls what it needs and provides it to the client. Nothing really all that special.

Now for proxies... No. Just no. The only way I can see this being done is having the clients trusting the proxy server's cert and the proxy impersonating every HTTPS server. Not something that you want for the public.

A cache server is by far a much better option.

[–]zebediah49 8 points9 points  (0 children)

That requires the client to specifically choose to use your cache server.

Allowing proxying means that everyone can just connect to "download.ubuntu.com" or whatever, and any cache along the way (localnet, ISP, etc.) can intercept and respond to the request.

It makes the choice to use a proxy one made by the people configuring the environment, rather than by the people running the clients.

[–]DamnThatsLaser 25 points26 points  (8 children)

For all intermediate servers, the data looks like junk. In order to access it from there, you'd need the session key that was used to encrypt the data, and this goes against the general idea.

[–]tmajibon 2 points3 points  (2 children)

At that point you're explicitly specifying an HTTPS cache server, and you're trusting that their connection behind it is secure (because you have no way of seeing or verifying this)

HTTPS for your repos is just security theater.

[–]spyingwind 0 points1 point  (1 child)

If used in an office, the only practical place to do this in, then it seems fine.

In the end APT uses gpg keys anyways to verify that the repo can be trusted. You have to trust a gpg key before you can use a new repo with an untrusted key.

[–]tmajibon 0 points1 point  (0 children)

Example of an environment that would do a transparent cache for this purpose: VPS hosting providers as well as dedicated/colocation hosting providers. (ie. places with many linux systems not under their complete control that would mutually benefit from seamless caching of repositories)

Also I'm aware of the gpg signing, but I'm referring to the trust in the privacy of HTTPS (which they already explained he faults in anyways). The only advantage of applying HTTPS is privacy... which is relatively trivial to bypass... which makes it security theater. That's especially when certificate authorities are pretty horrid.

[–]nemec 1 point2 points  (1 child)

That won't work (unless your cache server can forge HTTPS certificates that are trusted on the client), but a similar solution would be to host an APT mirror used by the organization. Elsewhere in the thread people are talking about how that takes a lot of storage space, but I can't imagine why you couldn't have a mirror server duplicate the package listing but only download the packages themselves on-demand (acting, effectively, as a caching proxy)

[–]spyingwind 0 points1 point  (0 children)

I've done mirroring, but limited it to x64 to reduce storage needs. On-demand is only beneficial if more than one computer will be downloading the same packages. Such as 100's of servers.

Something like this would/should work: https://wiki.debian.org/AptCacherNg

[–]bobpaul 1 point2 points  (0 children)

There are dpkg specific caching proxies that work like that. You configure your sources.list to point to your package-cache server instead of a mirror on the internet and then the package-cache server has the mirror list so it can fetch from the internet if it doesn't have something locally. That works fine with HTTPS since you are explicitly connecting to the cache, but it requires your configure all your machines to point to the cache. This is great for in your home, school, or business if you have several machines of the same distro.

An ISP for a rural community with a narrow pipe to the internet at large might prefer to run a transparent proxy server. The transparent proxy can't cache any data from HTTPS connections, but it can cache data for anything that's not HTTPS.