Skip to content

Commit 9a411b6

Browse files
committed
Update TAP 20 and move to accepted
* update rotate file definitions to match those in TAP 8 * add reference implementation * minor wording changes Signed-off-by: Marina Moore <mnm678@gmail.com>
1 parent a3ce168 commit 9a411b6

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

tap20.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Version: 1
44
* Last-Modified: 29-Jan-2024
55
* Author: Marina Moore
6-
* Status: Draft
6+
* Status: Accepted
77
* Content-Type: text/markdown
88
* Created: 19-Jan-2024
99

@@ -39,7 +39,7 @@ still the source of trust, but allows the role to act independently.
3939

4040
# Motivation
4141

42-
Several use cases can benefit from an independent revocation mechanism:
42+
The following use case can benefit from an independent revocation mechanism:
4343

4444

4545
## Community repositories
@@ -81,21 +81,21 @@ signatures wrapper as in tuf spec, not shown here):
8181

8282
```python
8383
{
84-
"_type" : "rotate" ,
85-
"previous" : PREV_FILENAME
84+
"_type" : "rotate",
85+
"version" : VERSION,
8686
"role" : ROLE,
8787
"keys" : {
8888
KEYID : KEY
8989
, ... } ,
90-
"threshold" : THRESHOLD }
90+
"threshold" : THRESHOLD
9191
}
9292
```
9393

9494
Where ROLE, KEYID, KEY, and THRESHOLD are as defined in the original
9595
tuf spec. The value of ROLE has to be the same as the role for the
96-
delegation. The value of THRESHOLD is its new value. PREV_FILENAME is
97-
the name of the previous rotate file in the chain, or the empty string if this is
98-
the first rotate file for this role. The keys specify the new valid keys
96+
delegation. The value of THRESHOLD is its new value. VERSION is the index of
97+
this rotate file, incrementing by 1 on each rotation. The keys specify the new
98+
valid keys
9999
and associated key ids (which may be a subset or superset of
100100
the old ones). A rotate file does _not_ contain an expiration date,
101101
it is meant to be signed once and never modified. The rotate
@@ -125,23 +125,23 @@ where NULL is the null key.
125125

126126
### Prioritizing Self Revocation
127127

128-
Rotation files are immutable unless replaced with a revocation (rotate
129-
to null). This is the only case in which they can be replaced or
128+
Rotation files are immutable unless replaced with a revocation.
129+
This is the only case in which they can be replaced or
130130
modified. If a client wants to rotate to a different
131131
key, without having access to their currently delegated private key,
132132
this requires a key revocation by the delegating metadata.
133133

134-
135134
# Security Analysis
136135

137136
There should be no negative security impact. The major benefits are
138137
that many security-sensitive revocations that require key use by
139138
multiple parties, will now be much easier to do.
140139

141-
Clients need to take care to check for rotation to a null key (rotate
140+
Clients need to take care to check for revocation (rotate
142141
files that contain a null key). This shall be handled in the
143142
same manner as an invalid metadata signature on by the role possessing
144-
the key. The role will be invalid until it is re-delegated to with a new key.
143+
the key. The role will be invalid until it is re-delegated to with a new
144+
rolename and key.
145145
Clients MUST use snapshot metadata to ensure that they receive all rotate files
146146
in the chain.
147147

@@ -162,7 +162,7 @@ verify the revocations.
162162

163163
# Augmented Reference Implementation
164164

165-
TODO
165+
https://github.com/theupdateframework/python-tuf/pull/2257/files
166166

167167
# Copyright
168168

0 commit comments

Comments
 (0)