From db1905ba3c2e45899bdd21fa9663cc05741fb15a Mon Sep 17 00:00:00 2001 From: Trammell hudson Date: Wed, 15 Jul 2020 14:03:33 +0200 Subject: [PATCH] tpm2-pcr-validate: test various attestation failures Signed-off-by: Trammell hudson --- sbin/tpm2-pcr-validate | 10 ++++++--- tests/pcrs-t490.txt | 6 +++++ tests/quote-t490.tgz | Bin 0 -> 15334 bytes tests/test-verify.sh | 50 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 tests/pcrs-t490.txt create mode 100644 tests/quote-t490.tgz create mode 100755 tests/test-verify.sh diff --git a/sbin/tpm2-pcr-validate b/sbin/tpm2-pcr-validate index 63247355..684135a4 100755 --- a/sbin/tpm2-pcr-validate +++ b/sbin/tpm2-pcr-validate @@ -26,7 +26,7 @@ with open(sys.argv[1]) as f: pcrs = load(f, Loader=Loader)["pcrs"][alg] fail = False -verbose = True +verbose = False pcr_list = [] for pcr in pcrs: @@ -38,8 +38,10 @@ for pcr in pcrs: pcr_list = "%s:%s" % (alg, ",".join(pcr_list)) -for filename in sys.argv[2:0]: - with open(sys.argv[2]) as f: +for filename in sys.argv[2:]: + with open(filename) as f: + if verbose: + print("%s: Reading PCRs" % (filename)) quote = load(f, Loader=Loader)["pcrs"][alg] for pcr in pcrs: @@ -50,6 +52,8 @@ for filename in sys.argv[2:0]: elif good_pcr != quote[pcr]: print("%s: PCR%d mismatch %x" % (filename, pcr, quote[pcr]), file=sys.stderr) fail = True + elif verbose: + print("%s: PCR%d: %s matches %s" % (filename, pcr, quote[pcr], good_pcr)) if fail: print("%s: FAILED VALIDATION" % (pcr_list), file=sys.stderr) diff --git a/tests/pcrs-t490.txt b/tests/pcrs-t490.txt new file mode 100644 index 00000000..e625d94f --- /dev/null +++ b/tests/pcrs-t490.txt @@ -0,0 +1,6 @@ +pcrs: + sha256: + 0 : 0x3FBF10A9DD919CD821C71C71B203F3839233120537798917F53714F1EFF7F036 + 1 : 0x6BAD0D93219F5B1E3BA7031BAB290ECA4D973AE6468145847A49D44BCC0905BD + 2 : 0x3D458CFE55CC03EA1F443F1562BEEC8DF51C75E14A9FCF9A7234A13F198E7969 + 4 : 0xC28F2726BA0A11B9FBA161419FF95BE3DA6CA9ADDC286D5FA1E1E9EC0B79DC35 diff --git a/tests/quote-t490.tgz b/tests/quote-t490.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5be21fb65d645df1812d0caf9c60d865737b4aae GIT binary patch literal 15334 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 ; exit 1 ; } +warn() { echo "$@" >&2 ; } + +DIR="`dirname $0`" +export PATH="$DIR/../sbin:$DIR/../bin:$PATH" + +warn "----- Good test -----" +tpm2-attest verify \ + "$DIR/quote-t490.tgz" \ + "$DIR/pcrs-t490.txt" \ + abcdef \ + "$DIR/../certs" \ +> /tmp/attest-good.log \ +|| die "attestion verification failed" + + +warn "--- Wrong nonce (should fail)" +tpm2-attest verify \ + "$DIR/quote-t490.tgz" \ + "$DIR/pcrs-t490.txt" \ + 12345678 \ + "$DIR/../certs" \ +> /tmp/attest-fail.log \ +&& die "wrong nonce: attestion verification should have failed" + +warn "--- Wrong PCRs (should fail)" +sed -e 's/0xC/0xD/' < "$DIR/pcrs-t490.txt" > /tmp/bad-pcrs.txt +tpm2-attest verify \ + "$DIR/quote-t490.tgz" \ + "/tmp/bad-pcrs.txt" \ + abcdef \ + "$DIR/../certs" \ +>> /tmp/attest-fail.log \ +&& die "wrong PCRs: attestion verification should have failed" + +warn "--- Missing PCR (should fail)" +( cat "$DIR/pcrs-t490.txt" ; echo " 5 : 0xC28F2726BA0A11B9FBA161419FF95BE3DA6CA9ADDC286D5FA1E1E9EC0B79DC35" ) > /tmp/bad-pcrs.txt +tpm2-attest verify \ + "$DIR/quote-t490.tgz" \ + "/tmp/bad-pcrs.txt" \ + abcdef \ + "$DIR/../certs" \ +>> /tmp/attest-fail.log \ +&& die "missing PCR: attestion verification should have failed" +