[tahoe-lafs-trac-stream] [tahoe-lafs] #2055: Building tahoe safely is non-trivial
tahoe-lafs
trac at tahoe-lafs.org
Mon Mar 17 13:43:35 UTC 2014
#2055: Building tahoe safely is non-trivial
-------------------------+-----------------------------------
Reporter: leif | Owner: daira
Type: defect | Status: new
Priority: normal | Milestone: undecided
Component: unknown | Version: 1.10.0
Resolution: | Keywords: install security eggs
Launchpad Bug: |
-------------------------+-----------------------------------
Comment (by dstufft):
Oldish ticket, but it was linked to me today!
So here's some information about various versions of packaging tools and
what they support wrt HTTPS.
pip < 1.3 - YOLO with HTTP all around
pip 1.3 - Hits PyPI using HTTPS (does not fall back to HTTP), however it
automatically scrapes things located on a packages /simple/foo/ page on
PyPI, which may be hosted over HTTP, additionally if anything uses a
setup_requires that is downloaded+installed by setuptools not pip,
additonally if a package has dependency_links then pip will also scrape
those which may be hosted via HTTP, uses an old copy of root certificates
that were incorrectly taken from mozilla's trust root and are old.
pip 1.4 - Mostly the same as 1.3, however it adds the ability to disable
scraping external site to PyPI, uses an old copy of root certificates that
were incorrectly taken from mozilla's trust root and are old.
pip 1.5 - Switches the options in 1.4 to on by default, pip no longer
scrapes sites other than PyPI by default, additionally disables processing
dependency links by default. With the default configuration the only non
HTTPS network access can come from setup_requires. Uses an up to date (at
time of release) bundled ca bundle that was properly taken from Mozilla
(via a tool agl wrote).
pip 1.6 (future/proposed) - Removes the ability to enable dependency links
at all, takes control of setup_requires so that setuptools no longer has
any control over it and ``pip install <something>`` by default is only
over verified HTTPS unless the user invoking pip explicitly uses a HTTP
url somewhere.
setuptools < 0.7 - YOLO with HTTP all around
setuptools >= 0.7 - Will use HTTPS to hit PyPI, may or may not acually be
active because it attempts to discover certificates and I believe it fails
open, installing depends on an old version of certifi which incorrectly
uses the mozilla cert bundle and is outdated. Can still use HTTP if listed
on a project /simple/foo/ or inside of a dependency link. No way to
specify it must be loaded over HTTPS but can restrict which hosts are
used.
FWIW pip --no-download is bad and you shouldn't use it. If you want to do
that you should donwload the packages to a directory (you can use pip
install --download <directory> [package [package ...]] for that) and then
use pip install --no-index -find-links <directory> [package [package
...]].
You can tell easy_install/setuptools not to hit the network by telling it
the allowed hosts are 'None'
(http://pythonhosted.org/setuptools/easy_install.html#restricting-
downloads-with-allow-hosts).
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2055#comment:10>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list