Python reference implementation of The Update Framework (TUF)
Find a file
Sebastien Awwad d69f9a2160
Test: changed target server cert checking in test proxy script
Added Python version checking and changed behavior
in Python2.7.9+ to use custom certificate for target server
inherited from command line argument.

In Python versions < 2.7.9, proxy_server.py does not perform certificate
validation of the target server. As that is not part of what the current
tests using this script require, that is currently OK. In Python
versions > 2.7.9 (SSLContext was added in 2.7.9), the same code actually does
check the certificate, using the system's trusted CAs. As a result, since we
are using custom certificates, we need to either disable certificate
checking in 2.7.9 or load the specific CA for target test server, using the
SSLContext and create_default_context functionality also added in 2.7.9. It
is easier to do the latter, so the behavior in 2.7.9+ is to check the cert
and below 2.7.9 is not to. Note that we do not support Python < 2.7.
SSLContext is also available in all Python3 versions that we support.

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2018-09-26 12:46:14 -04:00
.github Add issue and pull request templates 2017-09-28 17:01:56 -04:00
docs Remove the notes about the doc being a work in progress in CLI.md and CLI_EXAMPLES.md 2018-06-28 17:36:03 -04:00
tests Test: changed target server cert checking in test proxy script 2018-09-26 12:46:14 -04:00
tuf Session index: hostname-indexed --> scheme+hostname-indexed 2018-09-10 16:56:02 -04:00
.gitignore Ignore virtualenv and pyenv files 2017-10-11 11:34:07 -04:00
.gitmodules Remove ssl_commons and ssl_crypto submodules 2017-01-09 13:00:25 -05:00
.pyup.yml Fix .pyup.yml 2018-03-29 11:09:24 -04:00
.travis.yml Fix before_script entries 2017-12-07 10:36:31 -05:00
appveyor.yml Install extra SSLib dependencies in appveyor.yml 2018-06-04 15:15:01 -04:00
ci-requirements.txt minor: undo some import/dependency re-ordering 2018-08-31 13:28:43 -04:00
dev-requirements.txt Test: remove redundant proxy tests and their requirements, 2018-09-25 15:04:08 -04:00
LICENSE Move license files to root directory 2018-02-05 10:27:04 -05:00
LICENSE-MIT Move license files to root directory 2018-02-05 10:27:04 -05:00
MANIFEST.in Include correct README in MANIFEST.in 2018-06-20 17:50:41 -04:00
pylintrc Add _repository_name and _targets_directory to Pylint's exclude-protected 2018-04-18 11:04:57 -04:00
README.md Use logo that doesn't include text 2018-05-17 11:36:39 -04:00
requirements.in minor: undo some import/dependency re-ordering 2018-08-31 13:28:43 -04:00
requirements.txt Update TUF to handle HTTPS proxies 2018-08-31 13:18:35 -04:00
setup.cfg Update release files. 2014-07-16 12:51:35 -04:00
setup.py Remove partial single-source version; add comments explaining 2018-09-10 16:29:59 -04:00
tox.ini Drop support for Python 3.3 and use ci-requirements in tox.ini 2017-11-09 11:12:48 -05:00

A Framework for Securing Software Update Systems

Travis-CI Coveralls PyUp Python 3 FOSSA CII

TUF

The Update Framework (TUF) helps developers maintain the security of a software update system, even against attackers that compromise the repository or signing keys. TUF provides a flexible framework and specification that developers can adopt into any software update system.

TUF is hosted by the Linux Foundation as part of the Cloud Native Computing Foundation (CNCF) and is used in production by companies such as Docker, DigitalOcean, Flynn, LEAP, Kolide, Cloudflare, and VMware. A variant of TUF called Uptane is widely used to secure over-the-air updates in automobiles.

Documentation

Contact

Please contact us via our mailing list. Questions, feedback, and suggestions are welcomed on this low volume mailing list.

We strive to make the specification easy to implement, so if you come across any inconsistencies or experience any difficulty, do let us know by sending an email, or by reporting an issue in the GitHub specification repo.

Security Issues and Bugs

Security issues can be reported by emailing jcappos@nyu.edu.

At a minimum, the report must contain the following:

  • Description of the vulnerability.
  • Steps to reproduce the issue.

Optionally, reports that are emailed can be encrypted with PGP. You should use PGP key fingerprint E9C0 59EC 0D32 64FA B35F 94AD 465B F9F6 F8EB 475A.

Please do not use the GitHub issue tracker to submit vulnerability reports. The issue tracker is intended for bug reports and to make feature requests. Major feature requests, such as design changes to the specification, should be proposed via a TUF Augmentation Proposal (TAP).

License

This work is dual-licensed and distributed under the (1) MIT License and (2) Apache License, Version 2.0. Please see LICENSE-MIT and LICENSE.

Acknowledgements

This project is managed by Prof. Justin Cappos and other members of the Secure Systems Lab at New York University. Contributors and maintainers are governed by the CNCF Community Code of Conduct.

This material is based upon work supported by the National Science Foundation under Grant Nos. CNS-1345049 and CNS-0959138. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.