From b5534779dff8d507b63cd544d84a5b3ddd64fb25 Mon Sep 17 00:00:00 2001 From: Riyaz Faizullabhoy Date: Mon, 4 Apr 2016 16:00:46 -0700 Subject: [PATCH] Include trust pinning flow diagram Signed-off-by: Riyaz Faizullabhoy --- certs/certs.go | 6 ++---- docs/images/trust-pinning-flow.png | Bin 0 -> 63615 bytes docs/reference/client-config.md | 12 +++++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 docs/images/trust-pinning-flow.png diff --git a/certs/certs.go b/certs/certs.go index 2b46d72b69..2007de3878 100644 --- a/certs/certs.go +++ b/certs/certs.go @@ -123,9 +123,7 @@ func ValidateRoot(certStore trustmanager.X509Store, root *data.Signed, gun strin return &ErrValidationFail{Reason: "failed to validate data with current trusted certificates"} } } else { - logrus.Debugf("found no currently valid root certificates for %s", gun) - logrus.Debugf("using trust_pinning config to bootstrap trust: %v", trustPinning) - + logrus.Debugf("found no currently valid root certificates for %s, using trust_pinning config to bootstrap trust:", gun, trustPinning) trustPinChecker, err := NewTrustPinChecker(trustPinning, gun) if err != nil { return &ErrValidationFail{Reason: err.Error()} @@ -146,7 +144,7 @@ func ValidateRoot(certStore trustmanager.X509Store, root *data.Signed, gun strin if len(validPinnedCerts) == 0 { return &ErrValidationFail{Reason: "unable to match any certificates to trust_pinning config"} } - allValidCerts = validPinnedCerts + certsFromRoot = validPinnedCerts } // Validate the integrity of the new root (does it have valid signatures) diff --git a/docs/images/trust-pinning-flow.png b/docs/images/trust-pinning-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..6d883358901f9d7c21f3481de6fa82362f4410aa GIT binary patch literal 63615 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 E2X-#t`~Uy| literal 0 HcmV?d00001 diff --git a/docs/reference/client-config.md b/docs/reference/client-config.md index 8d99683ba7..30c3417a0e 100644 --- a/docs/reference/client-config.md +++ b/docs/reference/client-config.md @@ -127,10 +127,16 @@ This section is optional, Notary will use TOFU over HTTPS by default and trust certificates in the downloaded root file. In this section, one can provide specific certificates to pin to, or a CA -to pin to as a root of trust for a GUN. +to pin to as a root of trust for a GUN. Multiple sections can be specified, +but the pinned certificates will take highest priority for validation, followed +by the pinned CA, followed by TOFUS (TOFU over HTTPS). The diagram below +describes this validation flow: -Only one trust pinning option can be used per GUN, and any validation failure -will result in a failed bootstrapping of the repo. +
    Trust pinning flow
    + +Only one trust pinning option will be used to validate a GUN even if multiple +sections are specified, and any validation failure will result in a failed +bootstrapping of the repo.