How about building a deprecation period into the tooling? pip 1.5+ could warn users who are using *.pypi.python.org of the error in their ways and encourage them to switch to the new system and gives a date of total removal. After removal the code could also be removed from pip 1.x+.
- Michael On Tue, Aug 6, 2013 at 8:36 PM, Donald Stufft <don...@stufft.io> wrote: > > On Aug 6, 2013, at 9:10 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > > > On 7 August 2013 01:58, Donald Stufft <don...@stufft.io> wrote: > >> On Aug 6, 2013, at 8:22 AM, Nick Coghlan <ncogh...@gmail.com> wrote: > >>> One means by which I could see an f.pypi.python.org DNS record being > >>> left in place indefinitely is if the TUF folks are able to come up > >>> with a scheme for offering end-to-end security for the *existing* PyPI > >>> metadata, *and* the TUF metadata is mirrored by bandersnatch *and* the > >>> TUF client side integrity checks are invoked by pip. In that case, the > >>> security argument regarding the lack of TLS on the subdomains would be > >>> rendered moot, and the backwards compatibility argument for keeping it > >>> active would win. > >> > >> It would be rendered moot as far as any tooling that was updated to work > >> with it (such as pip etc) however the browser level attacks would still > be > >> in play. If those can be solved essentially require giving mirror > operators > >> a SSL certificate for N.pypi.python.org (which still does not preclude > a > >> malicious mirror operator or a compromised mirror from being used to > >> steal logins on PyPI). > > > > We're not talking about "mirror operators" in an abstract sense any > > more: we're talking specifically about the possibility of a formal > > relationship with Gocept to keep the f.pypi.python.org domain alive > > indefinitely. > > > > It isn't Gocept's fault that the upstream mirroring system design was > > broken, so the burden is on us to work with Christian to come up with > > a transition plan that is acceptable to both sides. > > I recognize this. The problem is that Gocept isn't the sole user of > their mirror. If they were (or we knew the set of users who were) then > we could approach each one of them. > > > > > That may mean retiring the subdomain and Gocept changing the > > configuration at affected sites, or it may mean Gocept negotiating a > > more formal relationship with the PSF to continue operating > > f.pypi.python.org in particular. Both options need to be on the table > > from the upstream side, giving Gocept a chance to assess the > > alternatives (i.e. change existing sites to point to a new domain, or > > accept that some existing sites will remain insecure until they have > > been upgraded, just as we have to accept that old clients will remain > > insecure when accessing the main site over HTTP). > > Gocept can't make that decision for installations other than their own. > Christian said that his mirror is seeing 150-300GB of traffic besides the > traffic Gocept generates. Some of that is coming from ``pip --use-mirrors`` > I'm sure, but some of it is also coming from other people who have > hardcoded f.pypi.python.org in their config for whom we don't know who > they are and we don't have a good way of informing them so they can > make an informed consent on using an insecure transport. > > > > >>> Another potential alternative might be for Gocept to approach the PSF > >>> about getting an SSL certificate for that domain, ensuring pip and > >>> setuptools both support HSTS, and then switching that mirror over to > >>> using HSTS (so even configurations hardcoded to use > >>> http://f.pypi.python.org will still get a validated secure > >>> connection). > >> > >> FWIW this doesn't make it secure unless they change their configuration > to > >> point to https://f.pypi.python.org/simple instead of > http://f.pypi.python.org/simple.* > >> > >> Programmatic libraries typically don't support HSTS (as HSTS it > primarily used > >> to prevent attacks that don't typically apply to command line clients). > And certainly > >> none of the existing tools support it. So given that we'd be relying on > the redirect > >> that upgrades the connection to HTTPS an attacker could simply return > HTML > >> instead of the redirect to HTTPS. > > > > Yeah, I realised this flaw after posting. An alternative hack that > > would allow the problem to be solved through an "upgrade > > pip/easy_install" solution rather than an "ensure all configs have > > been edited" approach would be a simple URL translation map that > > converts legacy "http://f.pypi.python.org" references to a new URL. > > > >> Hence why it makes sense to remove, because either way users will need > to edit > >> their existing configurations if they intend to be secure and moving to > a different > >> domain will prevent the in browser attacks as well. > >> > >> * This is also true of anyone who has hard coded an url to > http://pypi.python.org/simple/ > >> however there's no reasonable way to fix that. > > > > Hardcoded references to http://f.pypi.python.org/simple/ aren't *that* > > different from hardcoded references to the main site. The only > > addition is the inclusion of Gocept in the chain of trust. Given that > > Christian wrote the now recommended mirroring client, trusting > > Christian/Gocept is fairly unavoidable at this point :) > > The main difference is hard coded references to PyPI is unlikely. The > clients defaulted to that so there was no reason to point to it in your > configuration. This is representative of the traffic we see coming into > PyPI and the decline of HTTP connections to /simple/. > > > > > We don't have a hard deadline for fixing this on the upstream side - > > it's in the "important but not currently urgent" category. If we can > > get the active legacy mirrors down to just f.pypi.python.org that will > > be solid progress, and then we can work out a specific arrangement for > > that last mirror which works for Gocept as well. > > > > Cheers, > > Nick. > > > > -- > > Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia > > > ----------------- > Donald Stufft > PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 > DCFA > > > _______________________________________________ > Distutils-SIG maillist - Distutils-SIG@python.org > http://mail.python.org/mailman/listinfo/distutils-sig > >
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig