Skip to content

Commit 00e6d2c

Browse files
committed
Update
Signed-off-by: Olle E. Johansson <[email protected]>
1 parent e8bd51b commit 00e6d2c

File tree

1 file changed

+34
-14
lines changed

1 file changed

+34
-14
lines changed

signatures/signature.md

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
# Trusting digital signatures in TEA
1+
# Transparency Exchange API - Trusting digital signatures in TEA
22

33
Software transparency requires a trust platform so that users
44
can validate the information and artefacts published. Given
55
the situation today any information published is better than
66
none, so the framework for digital signatures will not
77
be mandatory for API compliance. Implementations may
88
require all published information to be signed and
9-
validated.
9+
validated. In some vertical markets branch standards may require
10+
digital signatures.
1011

11-
Within the
12-
API documents can be signed with an electronic
12+
Within the TEA API documents may be signed with an electronic
1313
signature. CycloneDX boms supports signatures within
1414
the JSON file, but other artefacts may need external
1515
signature files, a detached signature.
1616

17+
## Requirements
18+
19+
Digital signatures provide integrity and identity to published data.
20+
1721
- __Integrity__: Documents dowloaded needs to be the same
1822
as documents published
19-
- __Identity__:
20-
- Customers need to be able to verify the
23+
- __Identity__: Customers need to be able to verify the
2124
publisher of the documents and verify that it is
2225
the expected publisher.
23-
- A TEA server may want to verify that published
26+
A TEA server may want to verify that published
2427
documents are signed by the expected publisher
2528
and that signatures are valid.
2629

@@ -30,7 +33,7 @@ by a certificate authority (CA). The private key is used for
3033
signing and needs to be protected.
3134

3235
A software publisher may buy CA services from a commercial vendor
33-
or set up an internal solution. The issue with internal PKIs is that
36+
or set up an internal PKI solution. The issue with internal PKIs is that
3437
external parties do not automatically trust that internal PKI.
3538

3639
This document outlines a proposal on how to build that trust and
@@ -45,15 +48,23 @@ and authentication, using the https:// URL scheme.
4548

4649
The TLS server certificate is normally issued by a public Certificate
4750
Authority that is part of the Web PKI. The client needs to validate
48-
the TLS server certificate to make sure that the certificate name
49-
(CN or Subject Alt Name) matches the host part of the URI.
51+
the TLS server certificate to make sure
52+
53+
- that the certificate name (CN or Subject Alt Name) matches the
54+
host part of the URI.
55+
- that the certificate is valid, i.e. the not-before date and the
56+
not-after date is not out of range
57+
- that the certificate is signed by a trusted CA
5058

5159
If the certificate validates properly, the API can be trusted.
5260
Validation proves that the server is the right server for the
53-
given host name in the URL. This trust can be used to
54-
implement trust in a private PKI used to sign documents. In
55-
addition, trust anchors can be published in DNS as an extra
56-
level of validation.
61+
given host name in the URL.
62+
63+
This trust can be used to implement trust in a private PKI
64+
used to sign documents delivered over the API.
65+
66+
In addition, trust anchors can be
67+
published in DNSsec as an extra level of validation.
5768

5869
## Getting trust anchors
5970

@@ -70,6 +81,10 @@ An implementation should download these and apply them only
7081
for this service, not in global scope. A PKI valid for example.com
7182
is not valid for example.net.
7283

84+
Note that the TEA api can host many years of documents for
85+
published versions. Old and expired trust anchors may be needed
86+
to validate digital signatures on old documents.
87+
7388
## Validating the trust anchors using DNSsec (DANE)
7489

7590
## Digital signatures
@@ -96,6 +111,11 @@ as artefacts by using ephemeral certificates (very shortlived) and a
96111
certificate transparency log for validation and verification.
97112
Sigstore signatures contain timestamps from a timestamping service.
98113

114+
Sigstore lends itself very well to Open Source projects but not really
115+
commercial projects. The Sigstore platform can be deployed internally
116+
for enterprise use, but in that case will have the same problem as any
117+
internal PKI with establishing trust.
118+
99119
## Suggested PKI setup
100120

101121
### Root cert

0 commit comments

Comments
 (0)