|
1 | 1 | PEP: 480 |
2 | 2 | Title: Surviving a Compromise of PyPI: End-to-end signing of packages |
3 | | -Version: $Revision$ |
4 | | -Last-Modified: $Date$ |
5 | 3 | Author: Trishank Karthik Kuppusamy <karthik@trishank.com>, |
6 | 4 | Vladimir Diaz <vladimir.diaz@nyu.edu>, |
7 | 5 | Justin Cappos <jcappos@nyu.edu>, Marina Moore <mm9693@nyu.edu> |
@@ -78,7 +76,7 @@ TUF metadata available on PyPI to download distributions more securely. |
78 | 76 | the minimum security model, which supports continuous delivery of projects and |
79 | 77 | uses online cryptographic keys to sign the distributions uploaded by |
80 | 78 | developers. Although the minimum security model guards against most attacks on |
81 | | -software updaters [5]_ [7]_, such as mix-and-match and extraneous dependencies |
| 79 | +software updaters [5]_ [6]_, such as mix-and-match and extraneous dependencies |
82 | 80 | attacks, it can be improved to support end-to-end signing and to prohibit |
83 | 81 | forged distributions in the event that PyPI is compromised. |
84 | 82 |
|
@@ -299,12 +297,12 @@ The package manager (pip) shipped with CPython MUST work on non-CPython |
299 | 297 | interpreters and cannot have dependencies that have to be compiled (i.e., the |
300 | 298 | PyPI+TUF integration MUST NOT require compilation of C extensions in order to |
301 | 299 | verify cryptographic signatures). Verification of signatures MUST be done in |
302 | | -Python, and verifying RSA [11]_ signatures in pure-Python may be impractical due |
| 300 | +Python, and verifying RSA [8]_ signatures in pure-Python may be impractical due |
303 | 301 | to speed. Therefore, PyPI MAY use the `Ed25519`__ signature scheme. |
304 | 302 |
|
305 | 303 | __ http://ed25519.cr.yp.to/ |
306 | 304 |
|
307 | | -Ed25519 [12]_ is a public-key signature system that uses small cryptographic |
| 305 | +Ed25519 [9]_ is a public-key signature system that uses small cryptographic |
308 | 306 | signatures and keys. A `pure-Python implementation`__ of the Ed25519 signature |
309 | 307 | scheme is available. Verification of Ed25519 signatures is fast even when |
310 | 308 | performed in Python. |
@@ -728,7 +726,7 @@ attacks, or metadata inconsistency attacks. |
728 | 726 | Table 1: Attacks that are possible by compromising certain combinations of role |
729 | 727 | keys. In `September 2013`__, it was shown how the latest version (at the time) |
730 | 728 | of pip was susceptible to these attacks and how TUF could protect users against |
731 | | -them [8]_. Roles signed by offline keys are in **bold**. |
| 729 | +them [7]_. Roles signed by offline keys are in **bold**. |
732 | 730 |
|
733 | 731 | __ https://mail.python.org/pipermail/distutils-sig/2013-September/022755.html |
734 | 732 |
|
@@ -882,16 +880,13 @@ References |
882 | 880 | ========== |
883 | 881 |
|
884 | 882 | .. [2] https://theupdateframework.io/papers/survivable-key-compromise-ccs2010.pdf |
885 | | -.. [3] https://github.com/theupdateframework/tuf/blob/develop/docs/tuf-spec.txt |
886 | | -.. [4] https://packaging.python.org/glossary |
| 883 | +.. [3] https://theupdateframework.github.io/specification/latest/index.html |
| 884 | +.. [4] https://packaging.python.org/en/latest/glossary/ |
887 | 885 | .. [5] https://github.com/theupdateframework/pip/wiki/Attacks-on-software-repositories |
888 | | -.. [6] https://mail.python.org/pipermail/distutils-sig/2013-September/022773.html |
889 | | -.. [7] https://theupdateframework.io/papers/attacks-on-package-managers-ccs2008.pdf |
890 | | -.. [8] https://mail.python.org/pipermail/distutils-sig/2013-September/022755.html |
891 | | -.. [9] https://pypi.python.org/security |
892 | | -.. [10] https://mail.python.org/pipermail/distutils-sig/2013-August/022154.html |
893 | | -.. [11] https://en.wikipedia.org/wiki/RSA_%28algorithm%29 |
894 | | -.. [12] http://ed25519.cr.yp.to/ |
| 886 | +.. [6] https://theupdateframework.io/papers/attacks-on-package-managers-ccs2008.pdf |
| 887 | +.. [7] https://mail.python.org/pipermail/distutils-sig/2013-September/022755.html |
| 888 | +.. [8] https://en.wikipedia.org/wiki/RSA_(cryptosystem) |
| 889 | +.. [9] https://ed25519.cr.yp.to/ |
895 | 890 |
|
896 | 891 |
|
897 | 892 | Acknowledgements |
|
0 commit comments