1
- # Trusting digital signatures in TEA
1
+ # Transparency Exchange API - Trusting digital signatures in TEA
2
2
3
3
Software transparency requires a trust platform so that users
4
4
can validate the information and artefacts published. Given
5
5
the situation today any information published is better than
6
6
none, so the framework for digital signatures will not
7
7
be mandatory for API compliance. Implementations may
8
8
require all published information to be signed and
9
- validated.
9
+ validated. In some vertical markets branch standards may require
10
+ digital signatures.
10
11
11
- Within the
12
- API documents can be signed with an electronic
12
+ Within the TEA API documents may be signed with an electronic
13
13
signature. CycloneDX boms supports signatures within
14
14
the JSON file, but other artefacts may need external
15
15
signature files, a detached signature.
16
16
17
+ ## Requirements
18
+
19
+ Digital signatures provide integrity and identity to published data.
20
+
17
21
- __ Integrity__ : Documents dowloaded needs to be the same
18
22
as documents published
19
- - __ Identity__ :
20
- - Customers need to be able to verify the
23
+ - __ Identity__ : Customers need to be able to verify the
21
24
publisher of the documents and verify that it is
22
25
the expected publisher.
23
- - A TEA server may want to verify that published
26
+ A TEA server may want to verify that published
24
27
documents are signed by the expected publisher
25
28
and that signatures are valid.
26
29
@@ -30,7 +33,7 @@ by a certificate authority (CA). The private key is used for
30
33
signing and needs to be protected.
31
34
32
35
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
34
37
external parties do not automatically trust that internal PKI.
35
38
36
39
This document outlines a proposal on how to build that trust and
@@ -45,15 +48,23 @@ and authentication, using the https:// URL scheme.
45
48
46
49
The TLS server certificate is normally issued by a public Certificate
47
50
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
50
58
51
59
If the certificate validates properly, the API can be trusted.
52
60
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.
57
68
58
69
## Getting trust anchors
59
70
@@ -70,6 +81,10 @@ An implementation should download these and apply them only
70
81
for this service, not in global scope. A PKI valid for example.com
71
82
is not valid for example.net.
72
83
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
+
73
88
## Validating the trust anchors using DNSsec (DANE)
74
89
75
90
## Digital signatures
@@ -96,6 +111,11 @@ as artefacts by using ephemeral certificates (very shortlived) and a
96
111
certificate transparency log for validation and verification.
97
112
Sigstore signatures contain timestamps from a timestamping service.
98
113
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
+
99
119
## Suggested PKI setup
100
120
101
121
### Root cert
0 commit comments