Skip to content

Commit 61d04eb

Browse files
authored
Merge pull request #2 from awwad/multiroledelegation
Migrate from TUF 0.9 to TUF 1.0 and Also Add Multi-Role Delegation
2 parents 6936432 + 1a3cf37 commit 61d04eb

File tree

121 files changed

+8850
-2411
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+8850
-2411
lines changed

METADATA.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Metadata
22

3-
Metadata files provide information that clients can use to make update decisions. Different metadata files provide different information. The various metadata files are signed by different roles as are indicated by the root role. The concept of roles allows TUF to only trust information that a role is trusted to provide.
3+
Metadata files provide information that clients can use to make update decisions. Different metadata files provide different information. The various metadata files are signed by different keys as are indicated by the root role. The concept of roles allows TUF to only trust information that a role is trusted to provide.
44

55
The signed metadata files always include the time they were created and their expiration dates. This ensures that outdated metadata will be detected and that clients can refuse to accept metadata older than that which they've already seen.
66

README.rst

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Three major classes of software update systems are:
3636
- **Library package managers** such as those offered by many
3737
programming languages for installing additional libraries. These are
3838
systems such as Python's pip/easy_install + PyPI, Perl's CPAN,
39-
Ruby's RubyGems, and PHP's PEAR.
39+
Ruby's RubyGems, and PHP's Composer.
4040

4141
- **System package managers** used by operating systems to update and
4242
install all of the software on a client system. Debian's APT, Red
@@ -70,7 +70,7 @@ that they can do.
7070

7171
TUF is designed to perform the first two steps of the above update procedure,
7272
while guarding against the majority of attacks that malicious actors have at
73-
their disposable; especially those attacks that are overlooked by security-conscious
73+
their disposal; especially those attacks that are overlooked by security-conscious
7474
developers.
7575

7676

@@ -179,7 +179,8 @@ that need to generate TUF repository files, such as metadata,
179179
cryptographic keys, and signatures. Whereas the minimal install can only
180180
verify ed25519 signatures and is intended for sofware updater clients,
181181
``tuf[tools]`` provides repository maintainers secure ed25519 key and
182-
signature generation with PyNaCl / libsodium.
182+
signature verification with `PyNaCl <https://pynacl.readthedocs.io/en/latest/>`_,
183+
a Python binding to the Networking and Cryptography (NaCl) library.
183184

184185
TUF tools also enable general-purpose cryptography with PyCrypto
185186
and/or PyCA's Cryptography. Software updaters that want to support
@@ -209,9 +210,9 @@ section <https://virtualenv.pypa.io/en/latest/installation.html>`_,
209210
and instructions for installing locally from source are provided here:
210211
::
211212

212-
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.6.tar.gz
213-
$ tar xvfz virtualenv-1.11.6.tar.gz
214-
$ cd virtualenv-1.11.6
213+
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-15.0.3.tar.gz
214+
$ tar xvfz virtualenv-15.0.3.tar.gz
215+
$ cd virtualenv-15.0.3
215216
$ python virtualenv.py myVE
216217

217218

@@ -225,6 +226,12 @@ libraries with apt (Advanced Package Tool.)
225226
$ apt-get install python-dev
226227
$ apt-get install libffi-dev
227228

229+
OS X users can install these header libraries with the `Homebrew <http://brew.sh/>`_ package manager.
230+
::
231+
232+
$ brew install python
233+
$ brew install libffi
234+
228235
Installation of minimal, optional, development, and testing requirements
229236
can then be accomplished with one command:
230237
::

SECURITY.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ The following are some of the known attacks on software update systems, includin
1010

1111
* **Rollback attacks**. An attacker presents a software update system with older files than those the client has already seen, causing the client to use files older than those the client knows about.
1212

13+
* **Fast-forward attacks**. An attacker tricks a software update system into marking a file as newer (when in fact the
14+
latest version of the file is older than that indicated by the attacker, but newer than what the client has seen), and
15+
prevents the client from fetching the latest version of the file on the next update. The client can be prevented from installing
16+
the latest version of the file in this case because it would refuse to install a file that is older than what it expects
17+
(i.e., to prevent a rollback attack).
18+
1319
* **Indefinite freeze attacks**. An attacker continues to present a software update system with the same files the client has already seen. The result is that the client does not know that new files are available.
1420

1521
* **Endless data attacks**. An attacker responds to a file download request with an endless stream of data, causing harm to clients (e.g. a disk partition filling up or memory exhaustion).

dev-requirements.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@
1515
# Client must also install PyCrypto to verify RSASSA-PSS signatures. The
1616
# minimal install can only verify ed25519 signatures. Pinned packages:
1717
# http://nvie.com/posts/pin-your-packages/
18+
cffi==1.7.0
1819
pycrypto==2.6.1
19-
pynacl==0.2.3
20-
cryptography==1.0
20+
pynacl==1.0.1
21+
cryptography==1.4.0
2122

2223
# Testing requirements. The rest of the testing dependencies available in
2324
# 'tox.ini'

docs/proposals/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Proposals #
2+
3+
## Accepted ##
4+
5+
## Rejected ##
6+
7+
## In Progress ##
8+
* Trust pinning
9+
* Multirole delegations

0 commit comments

Comments
 (0)