From 0a4037802fbda6b8a4c3db8b9598952f2f312a75 Mon Sep 17 00:00:00 2001 From: Siemen Dhooghe Date: Mon, 3 Nov 2025 03:54:12 -0500 Subject: [PATCH 1/2] [pentest] Add markers in pentest framework In order to reliably find the calls of certain functions for GDB testing, we add markers around them which can be found in the dis file. These markers do influence the pentest code as they are function calls. Meanig that the trigger high and low can be changed. Signed-off-by: Siemen Dhooghe --- .../firmware/fi/cryptolib_fi_asym_impl.c | 24 +++++++++++++++++-- .../firmware/fi/cryptolib_fi_sym_impl.c | 13 ++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_asym_impl.c b/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_asym_impl.c index 2335f09e5f319..35550edcaa285 100644 --- a/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_asym_impl.c +++ b/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_asym_impl.c @@ -26,6 +26,9 @@ #define MODULE_ID MAKE_MODULE_ID('f', 'a', 'i') +// Markers in the dis file to be able to trace certain functions +#define PENTEST_MARKER_LABEL(name) asm volatile(#name ":" ::: "memory") + // OAEP label for testing. static const unsigned char kTestLabel[] = "Test label."; static const size_t kTestLabelLen = sizeof(kTestLabel) - 1; @@ -403,12 +406,14 @@ status_t cryptolib_fi_rsa_sign_impl( // Trigger window. if (uj_input.trigger & kPentestTrigger3) { + PENTEST_MARKER_LABEL(PENTEST_MARKER_RSA_SIGN_START); pentest_set_trigger_high(); } TRY(otcrypto_rsa_sign(&private_key, msg_digest, padding_mode, sig_buf)); // Trigger window. if (uj_input.trigger & kPentestTrigger3) { pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_RSA_SIGN_END); } // Return data back to host. @@ -561,13 +566,16 @@ status_t cryptolib_fi_rsa_verify_impl( hardened_bool_t verification_result; // Trigger window. if (uj_input.trigger & kPentestTrigger3) { + PENTEST_MARKER_LABEL(PENTEST_MARKER_RSA_VERIFY_START); pentest_set_trigger_high(); } - TRY(otcrypto_rsa_verify(&public_key, msg_digest, padding_mode, sig, - &verification_result)); + status_t status = otcrypto_rsa_verify(&public_key, msg_digest, padding_mode, + sig, &verification_result); if (uj_input.trigger & kPentestTrigger3) { pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_RSA_VERIFY_END); } + TRY(status); // Return data back to host. uj_output->result = true; @@ -633,9 +641,11 @@ status_t cryptolib_fi_p256_ecdh_impl( .keyblob = shared_secretblob, }; + PENTEST_MARKER_LABEL(PENTEST_MARKER_P256_ECDH_START); pentest_set_trigger_high(); TRY(otcrypto_ecdh_p256(&private_key, &public_key, &shared_secret)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_P256_ECDH_END); uint32_t share0[kPentestP256Words]; uint32_t share1[kPentestP256Words]; @@ -726,6 +736,7 @@ status_t cryptolib_fi_p256_sign_impl( // Trigger window 1. if (uj_input.trigger == 1) { + PENTEST_MARKER_LABEL(PENTEST_MARKER_P256_SIGN_START); pentest_set_trigger_high(); } // Sign the message. @@ -733,6 +744,7 @@ status_t cryptolib_fi_p256_sign_impl( signature_mut)); if (uj_input.trigger == 1) { pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_P256_SIGN_END); } // Return data back to host. @@ -790,10 +802,12 @@ status_t cryptolib_fi_p256_verify_impl( hardened_bool_t verification_result = kHardenedBoolFalse; + PENTEST_MARKER_LABEL(PENTEST_MARKER_P256_VERIFY_START); pentest_set_trigger_high(); TRY(otcrypto_ecdsa_p256_verify(&public_key, message_digest, signature, &verification_result)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_P256_VERIFY_END); // Return data back to host. uj_output->result = true; @@ -859,9 +873,11 @@ status_t cryptolib_fi_p384_ecdh_impl( .keyblob = shared_secretblob, }; + PENTEST_MARKER_LABEL(PENTEST_MARKER_P384_ECDH_START); pentest_set_trigger_high(); TRY(otcrypto_ecdh_p384(&private_key, &public_key, &shared_secret)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_P384_ECDH_END); uint32_t share0[kPentestP384Words]; uint32_t share1[kPentestP384Words]; @@ -952,12 +968,14 @@ status_t cryptolib_fi_p384_sign_impl( // Trigger window 1. if (uj_input.trigger == 1) { + PENTEST_MARKER_LABEL(PENTEST_MARKER_P384_SIGN_START); pentest_set_trigger_high(); } TRY(otcrypto_ecdsa_p384_sign_verify(&private_key, &public_key, message_digest, signature_mut)); if (uj_input.trigger == 1) { pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_P384_SIGN_END); } // Return data back to host. @@ -1015,10 +1033,12 @@ status_t cryptolib_fi_p384_verify_impl( hardened_bool_t verification_result = kHardenedBoolFalse; + PENTEST_MARKER_LABEL(PENTEST_MARKER_P384_VERIFY_START); pentest_set_trigger_high(); TRY(otcrypto_ecdsa_p384_verify(&public_key, message_digest, signature, &verification_result)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_P384_VERIFY_END); // Return data back to host. uj_output->result = true; diff --git a/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_sym_impl.c b/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_sym_impl.c index fdf3a39a2b426..ab72906b90ad0 100644 --- a/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_sym_impl.c +++ b/sw/device/tests/penetrationtests/firmware/fi/cryptolib_fi_sym_impl.c @@ -22,6 +22,9 @@ #define MODULE_ID MAKE_MODULE_ID('c', 'f', 's') +// Markers in the dis file to be able to trace certain functions +#define PENTEST_MARKER_LABEL(name) asm volatile(#name ":" ::: "memory") + status_t cryptolib_fi_aes_impl(cryptolib_fi_sym_aes_in_t uj_input, cryptolib_fi_sym_aes_out_t *uj_output) { // Set the AES mode. @@ -134,9 +137,11 @@ status_t cryptolib_fi_aes_impl(cryptolib_fi_sym_aes_in_t uj_input, }; // Trigger window. + PENTEST_MARKER_LABEL(PENTEST_MARKER_AES_START); pentest_set_trigger_high(); TRY(otcrypto_aes(&key, iv, mode, op, input, padding, output)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_AES_END); // Return data back to host. uj_output->data_len = padded_len_bytes; @@ -168,11 +173,13 @@ status_t cryptolib_fi_drbg_generate_impl( // Trigger window 0. if (uj_input.trigger & kPentestTrigger2) { + PENTEST_MARKER_LABEL(PENTEST_MARKER_DRBG_GENERATE_START); pentest_set_trigger_high(); } TRY(otcrypto_drbg_generate(nonce, output)); if (uj_input.trigger & kPentestTrigger2) { pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_DRBG_GENERATE_END); } // Return data back to host. @@ -197,11 +204,13 @@ status_t cryptolib_fi_drbg_reseed_impl( // Trigger window 0. if (uj_input.trigger & kPentestTrigger1) { + PENTEST_MARKER_LABEL(PENTEST_MARKER_DRBG_RESEED_START); pentest_set_trigger_high(); } TRY(otcrypto_drbg_instantiate(entropy)); if (uj_input.trigger & kPentestTrigger1) { pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_DRBG_RESEED_END); } // Return data back to host. @@ -298,10 +307,12 @@ status_t cryptolib_fi_gcm_impl(cryptolib_fi_sym_gcm_in_t uj_input, } // Trigger window. + PENTEST_MARKER_LABEL(PENTEST_MARKER_GCM_ENCRYPT_START); pentest_set_trigger_high(); TRY(otcrypto_aes_gcm_encrypt(&key, plaintext, iv, aad, tag_len, actual_ciphertext, actual_tag)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_GCM_ENCRYPT_END); // Return data back to host. uj_output->cfg = 0; @@ -385,9 +396,11 @@ status_t cryptolib_fi_hmac_impl(cryptolib_fi_sym_hmac_in_t uj_input, }; // Trigger window. + PENTEST_MARKER_LABEL(PENTEST_MARKER_HMAC_START); pentest_set_trigger_high(); TRY(otcrypto_hmac(&key, input_message, tag)); pentest_set_trigger_low(); + PENTEST_MARKER_LABEL(PENTEST_MARKER_HMAC_END); // Return data back to host. uj_output->data_len = tag_bytes; From 7e7b16c8e6edf1d0b0622b345c2883dd149b53b3 Mon Sep 17 00:00:00 2001 From: Siemen Dhooghe Date: Mon, 3 Nov 2025 03:55:07 -0500 Subject: [PATCH 2/2] [fisim/crypto] Add instruction skip simulator Add a script to load the pentest framework, connect to OpenOCD, and connect to GDB. Generate a trace file of a called function. Use the trace file to insert instruction skips in order to simulate fault attacks and test countermeasures. Signed-off-by: Siemen Dhooghe --- sw/device/tests/penetrationtests/BUILD | 24 +- .../tests/penetrationtests/doc/README.md | 21 +- .../doc/fi_sim_cw340_setup.png | Bin 0 -> 372862 bytes sw/device/tests/penetrationtests/pentest.bzl | 92 ++ sw/host/penetrationtests/python/fi/BUILD | 44 + .../fi_asym_cryptolib_python_gdb_test.py | 1417 +++++++++++++++++ .../fi_sym_cryptolib_python_gdb_test.py | 643 ++++++++ sw/host/penetrationtests/python/util/BUILD | 10 + .../python/util/common_library.py | 143 ++ .../python/util/dis_parser.py | 149 ++ .../python/util/gdb_controller.py | 207 +++ .../python/util/hyperdebug.py | 259 ++- .../penetrationtests/python/util/targets.py | 49 +- 13 files changed, 2969 insertions(+), 89 deletions(-) create mode 100644 sw/device/tests/penetrationtests/doc/fi_sim_cw340_setup.png create mode 100644 sw/host/penetrationtests/python/fi/gdb_testing/fi_asym_cryptolib_python_gdb_test.py create mode 100644 sw/host/penetrationtests/python/fi/gdb_testing/fi_sym_cryptolib_python_gdb_test.py create mode 100644 sw/host/penetrationtests/python/util/dis_parser.py create mode 100644 sw/host/penetrationtests/python/util/gdb_controller.py diff --git a/sw/device/tests/penetrationtests/BUILD b/sw/device/tests/penetrationtests/BUILD index c7a38e7d72010..30107fca1b11d 100644 --- a/sw/device/tests/penetrationtests/BUILD +++ b/sw/device/tests/penetrationtests/BUILD @@ -2,7 +2,7 @@ # Licensed under the Apache License, Version 2.0, see LICENSE for details. # SPDX-License-Identifier: Apache-2.0 -load(":pentest.bzl", "pentest_cryptolib_fi_asym", "pentest_cryptolib_fi_sym", "pentest_cryptolib_sca_asym", "pentest_cryptolib_sca_sym", "pentest_fi", "pentest_fi_ibex", "pentest_fi_otbn", "pentest_sca") +load(":pentest.bzl", "pentest_cryptolib_fi_asym", "pentest_cryptolib_fi_gdb_asym", "pentest_cryptolib_fi_gdb_sym", "pentest_cryptolib_fi_sym", "pentest_cryptolib_sca_asym", "pentest_cryptolib_sca_sym", "pentest_fi", "pentest_fi_ibex", "pentest_fi_otbn", "pentest_sca") load("@ot_python_deps//:requirements.bzl", "requirement") package(default_visibility = ["//visibility:public"]) @@ -287,6 +287,17 @@ pentest_cryptolib_fi_asym( test_vectors = CRYPTOLIB_FI_ASYM_TESTVECTOR_TARGETS, ) +pentest_cryptolib_fi_gdb_sym( + name = "fi_sym_cryptolib_python_gdb_test", + tags = [ + "manual", + "skip_in_ci", + ], + test_args = "", + test_harness = "//sw/host/penetrationtests/python/fi:fi_sym_cryptolib_python_gdb_test", + test_vectors = [], +) + pentest_cryptolib_fi_asym( name = "fi_asym_cryptolib_python_test", tags = [], @@ -295,6 +306,17 @@ pentest_cryptolib_fi_asym( test_vectors = [], ) +pentest_cryptolib_fi_gdb_asym( + name = "fi_asym_cryptolib_python_gdb_test", + tags = [ + "manual", + "skip_in_ci", + ], + test_args = "", + test_harness = "//sw/host/penetrationtests/python/fi:fi_asym_cryptolib_python_gdb_test", + test_vectors = [], +) + CRYPTOLIB_SCA_SYM_TESTVECTOR_TARGETS = [ "//sw/host/penetrationtests/testvectors/data:sca_sym_cryptolib", ] diff --git a/sw/device/tests/penetrationtests/doc/README.md b/sw/device/tests/penetrationtests/doc/README.md index 514e3a1f29e00..dfe86bb5e8b60 100644 --- a/sw/device/tests/penetrationtests/doc/README.md +++ b/sw/device/tests/penetrationtests/doc/README.md @@ -67,7 +67,7 @@ cd $REPO_TOP ./bazelisk.sh run //sw/device/tests/penetrationtests:fi_ibex_fpga_cw340_sival_rom_ext ``` -In addition, we have Python scripts to use the pentest framework in //sw/host/penetrationtests/python. +In addition, we have Python scripts to use the pentest framework in `//sw/host/penetrationtests/python`. These scripts are also tested. Use the following command to automatically test the Ibex FI tests on the CW340 FPGA board: @@ -76,6 +76,25 @@ cd $REPO_TOP ./bazelisk.sh run //sw/device/tests/penetrationtests:fi_ibex_python_test_fpga_cw340_sival_rom_ext ``` +## GDB Testing (FiSim) + +The crypto library is tested on a debug enabled CW340 FPGA by tracing several relevant cryptographic calls and apply instruction skips or other fault models to their execution. In order to use this testing, the CW340 FPGA has to be adapted. We provide a picture on its setup as reference: + +![CW340 debug setup](fi_sim_cw340_setup.png) + +In order to run a GDB test, find the "gdb_test" targets in the BUILD file in `//sw/device/tests/penetrationtests`. For example, +```console +./bazelisk.sh run //sw/device/tests/penetrationtests:fi_sym_cryptolib_python_gdb_test_fpga_cw340_rom_ext + +./bazelisk.sh run //sw/device/tests/penetrationtests:fi_asym_cryptolib_python_gdb_test_fpga_cw340_rom_ext +``` + +These tests specifically run in the rom_ext environment since this is a ROM version in the RMA lifecycle which enables debug. The test then builds and runs openocd in the background which opens the default port 3333 to GDB. The files in //sw/host/penetrationtests/python/util contain classes in order to communicate with the FPGA, OpenOCD, and GDB. + +The testing is performed on the flashed pentest framework in this directory which provides the interface to the crypto library in `//sw/device/lib/crypto`. The targeted functions are found parsing the dis file. The parser is also found in `//sw/host/penetrationtests/python/util`. + +All test outputs are saved in the `bazel-testlogs/sw/device/tests/penetrationtests` folder in opentitan. Take note that the output to the terminal is piped to the campaign file in that directory, please consult this file for the test output. This is done since each subtest can take 2-12h. + ## Versioning In `//sw/device/tests/penetrationtests/firmware/lib/pentest_lib.h`, a value PENTEST_VERSION is found with the current version of the pentest framework. diff --git a/sw/device/tests/penetrationtests/doc/fi_sim_cw340_setup.png b/sw/device/tests/penetrationtests/doc/fi_sim_cw340_setup.png new file mode 100644 index 0000000000000000000000000000000000000000..82d8a0117e60f8faed13f31b058f47f68c5214de GIT binary patch literal 372862 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

dRa}i=wau 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


vs)@OK-k$;_*k1 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 literal 0 HcmV?d00001 diff --git a/sw/device/tests/penetrationtests/pentest.bzl b/sw/device/tests/penetrationtests/pentest.bzl index b28460ea489ad..a162594667070 100644 --- a/sw/device/tests/penetrationtests/pentest.bzl +++ b/sw/device/tests/penetrationtests/pentest.bzl @@ -24,6 +24,10 @@ PENTEST_EXEC_ENVS = { "//hw/top_earlgrey:fpga_cw340_rom_ext": "fpga_cw340", } | EARLGREY_SILICON_OWNER_ROM_EXT_ENVS +GDB_EXEC_ENVS = { + "//hw/top_earlgrey:fpga_cw340_rom_ext": "fpga_cw340", +} + FIRMWARE_DEPS_FI = [ "//sw/device/tests/penetrationtests/firmware/fi:alert_fi", "//sw/device/tests/penetrationtests/firmware/fi:crypto_fi", @@ -388,6 +392,50 @@ def pentest_cryptolib_fi_sym(name, test_vectors, test_args, test_harness, tags): deps = FIRMWARE_DEPS_CRYPTOLIB_FI_SYM, ) +def pentest_cryptolib_fi_gdb_sym(name, test_vectors, test_args, test_harness, tags): + """A macro for defining a CryptoTest test case. + + Args: + name: the name of the test. + test_vectors: the test vectors to use. + test_args: additional arguments to pass to the test. + test_harness: the test harness to use. + tags: indicate the tags for CI. + """ + opentitan_test( + name = name, + srcs = ["//sw/device/tests/penetrationtests/firmware:firmware_cryptolib_fi_sym.c"], + fpga = fpga_params( + timeout = "long", + data = test_vectors, + tags = tags, + test_cmd = """ + --bootstrap={firmware} + """ + test_args, + test_harness = test_harness, + ), + fpga_cw340 = fpga_params( + timeout = "long", + tags = tags, + data = test_vectors, + test_cmd = """ + --bootstrap={firmware} + """ + test_args, + test_harness = test_harness, + ), + exec_env = GDB_EXEC_ENVS, + silicon = silicon_params( + timeout = "eternal", + tags = tags, + data = test_vectors, + test_cmd = """ + --bootstrap={firmware} + """ + test_args, + test_harness = test_harness, + ), + deps = FIRMWARE_DEPS_CRYPTOLIB_FI_SYM, + ) + def pentest_cryptolib_fi_asym(name, test_vectors, test_args, test_harness, tags): """A macro for defining a CryptoTest test case. @@ -432,6 +480,50 @@ def pentest_cryptolib_fi_asym(name, test_vectors, test_args, test_harness, tags) deps = FIRMWARE_DEPS_CRYPTOLIB_FI_ASYM, ) +def pentest_cryptolib_fi_gdb_asym(name, test_vectors, test_args, test_harness, tags): + """A macro for defining a CryptoTest test case. + + Args: + name: the name of the test. + test_vectors: the test vectors to use. + test_args: additional arguments to pass to the test. + test_harness: the test harness to use. + tags: indicate the tags for CI. + """ + opentitan_test( + name = name, + srcs = ["//sw/device/tests/penetrationtests/firmware:firmware_cryptolib_fi_asym.c"], + fpga = fpga_params( + timeout = "long", + data = test_vectors, + tags = tags, + test_cmd = """ + --bootstrap={firmware} + """ + test_args, + test_harness = test_harness, + ), + fpga_cw340 = fpga_params( + timeout = "long", + tags = tags, + data = test_vectors, + test_cmd = """ + --bootstrap={firmware} + """ + test_args, + test_harness = test_harness, + ), + exec_env = GDB_EXEC_ENVS, + silicon = silicon_params( + timeout = "eternal", + tags = tags, + data = test_vectors, + test_cmd = """ + --bootstrap={firmware} + """ + test_args, + test_harness = test_harness, + ), + deps = FIRMWARE_DEPS_CRYPTOLIB_FI_ASYM, + ) + def pentest_cryptolib_sca_sym(name, test_vectors, test_args, test_harness, tags): """A macro for defining a CryptoTest test case. diff --git a/sw/host/penetrationtests/python/fi/BUILD b/sw/host/penetrationtests/python/fi/BUILD index c9af46cfdf9da..9e455fb9a0918 100644 --- a/sw/host/penetrationtests/python/fi/BUILD +++ b/sw/host/penetrationtests/python/fi/BUILD @@ -150,6 +150,28 @@ py_binary( ], ) +py_binary( + name = "fi_sym_cryptolib_python_gdb_test", + testonly = True, + srcs = ["gdb_testing/fi_sym_cryptolib_python_gdb_test.py"], + data = [ + "//sw/host/opentitantool", + "//third_party/openocd:openocd_bin", + "//util/openocd/board:cw340_ftdi.cfg", + "//util/openocd/target:lowrisc-earlgrey.cfg", + "@lowrisc_rv32imcb_toolchain//:bin/riscv32-unknown-elf-gdb", + ], + deps = [ + "//sw/host/penetrationtests/python/fi:fi_sym_cryptolib_commands", + "//sw/host/penetrationtests/python/util:common_library", + "//sw/host/penetrationtests/python/util:dis_parser", + "//sw/host/penetrationtests/python/util:gdb_controller", + "//sw/host/penetrationtests/python/util:targets", + "@rules_python//python/runfiles", + requirement("pycryptodome"), + ], +) + py_binary( name = "fi_asym_cryptolib_python_test", testonly = True, @@ -168,6 +190,28 @@ py_binary( ], ) +py_binary( + name = "fi_asym_cryptolib_python_gdb_test", + testonly = True, + srcs = ["gdb_testing/fi_asym_cryptolib_python_gdb_test.py"], + data = [ + "//sw/host/opentitantool", + "//third_party/openocd:openocd_bin", + "//util/openocd/board:cw340_ftdi.cfg", + "//util/openocd/target:lowrisc-earlgrey.cfg", + "@lowrisc_rv32imcb_toolchain//:bin/riscv32-unknown-elf-gdb", + ], + deps = [ + "//sw/host/penetrationtests/python/fi:fi_asym_cryptolib_commands", + "//sw/host/penetrationtests/python/util:common_library", + "//sw/host/penetrationtests/python/util:dis_parser", + "//sw/host/penetrationtests/python/util:gdb_controller", + "//sw/host/penetrationtests/python/util:targets", + "@rules_python//python/runfiles", + requirement("pycryptodome"), + ], +) + py_library( name = "fi_ibex_functions", srcs = ["host_scripts/fi_ibex_functions.py"], diff --git a/sw/host/penetrationtests/python/fi/gdb_testing/fi_asym_cryptolib_python_gdb_test.py b/sw/host/penetrationtests/python/fi/gdb_testing/fi_asym_cryptolib_python_gdb_test.py new file mode 100644 index 0000000000000..3ebcb12f6d0c0 --- /dev/null +++ b/sw/host/penetrationtests/python/fi/gdb_testing/fi_asym_cryptolib_python_gdb_test.py @@ -0,0 +1,1417 @@ +# Copyright lowRISC contributors (OpenTitan project). +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +# What to do when running into errors: +# - If device is busy or seeing "rejected 'gdb' connection, no more connections allowed", +# cut the USB connection, e.g., sudo fuser /dev/ttyUSB0 and kill the PID +# - If the port is busy check sudo lsof -i :3333 and then kill the PID + +from sw.host.penetrationtests.python.fi.communication.fi_asym_cryptolib_commands import ( + OTFIAsymCrypto, +) +from python.runfiles import Runfiles +from sw.host.penetrationtests.python.util import targets +from sw.host.penetrationtests.python.util import common_library +from sw.host.penetrationtests.python.util.gdb_controller import GDBController +from sw.host.penetrationtests.python.util.dis_parser import DisParser +from collections import Counter +import json +import argparse +import unittest +import sys +import os +import time +from Crypto.PublicKey import RSA, ECC +from Crypto.Signature import pkcs1_15, DSS +from Crypto.Hash import SHA256, SHA384 + +ignored_keys_set = set(["status"]) +opentitantool_path = "" +log_dir = "" +elf_path = "" + +# We set to only apply instruction skips in the first +# MAX_SKIPS_PER_LOOP iterations of a loop +MAX_SKIPS_PER_LOOP = 3 + +target = None +asymfi = None + +# Read in the extra arguments from the opentitan_test. +parser = argparse.ArgumentParser() +parser.add_argument("--bitstream", type=str) +parser.add_argument("--bootstrap", type=str) + +args, config_args = parser.parse_known_args() + +BITSTREAM = args.bitstream +BOOTSTRAP = args.bootstrap + +original_stdout = sys.stdout + + +class AsymCryptolibFiSim(unittest.TestCase): + def test_p384_verify(self): + print("Starting the p384 verify test") + # Preparing the input for an invalid signature + key = ECC.generate(curve="P-384") + pubx = [x for x in key.pointQ.x.to_bytes(48, "little")] + puby = [x for x in key.pointQ.y.to_bytes(48, "little")] + message = [i for i in range(16)] + signer = DSS.new(key, "fips-186-3") + h = SHA384.new(bytes(message)) + signature = [x for x in signer.sign(h)] + # Corrupt the signature for FiSim Testing + signature[0] ^= 0x1 + r_bytes = signature[:48] + s_bytes = signature[48:] + r_bytes.reverse() + s_bytes.reverse() + cfg = 0 + trigger = 1 + h = SHA384.new(bytes(message)) + message_digest = [x for x in h.digest()] + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "p384_verify_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "p384_verify_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "p384_verify_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = asymfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # We provide the name of the unique marker in the pentest framework + function_name = "PENTEST_MARKER_P384_VERIFY" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the p384 verify from the testOS (we do not read its output) + asymfi.handle_p384_verify( + pubx, puby, r_bytes, s_bytes, message_digest, cfg, trigger + ) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + started = True + for pc, count in pc_count_dict.items(): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print("Applying instruction skip in ", pc, "occurence", i_count) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + asymfi.handle_p384_verify( + pubx, puby, r_bytes, s_bytes, message_digest, cfg, trigger + ) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + verification_result = testos_response_json["result"] + verification_status = testos_response_json["status"] + if verification_result and (verification_status == 0): + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + # We do not need to reset the target since it gave an output + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", + flush=True, + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + def test_p384_ecdh(self): + print("Starting the p384 ecdh test") + # Preparing the input for an invalid signature + private_key1 = ECC.generate(curve="P-384") + private_key_array1 = [x for x in private_key1.d.to_bytes(48, "little")] + private_key2 = ECC.generate(curve="P-384") + private_key_array2 = [x for x in private_key2.d.to_bytes(48, "little")] + private_key_array = [private_key_array1, private_key_array2] + key = ECC.generate(curve="P-384") + public_point = key.pointQ + public_x = [x for x in public_point.x.to_bytes(48, "little")] + public_y = [x for x in public_point.y.to_bytes(48, "little")] + cfg = 0 + trigger = 0 + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "p384_ecdh_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "p384_ecdh_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "p384_ecdh_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = asymfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + ecdh_output = [None, None] + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # We provide the name of the unique marker in the pentest framework + function_name = "PENTEST_MARKER_P384_ECDH" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the p384 verify from the testOS (we do not read its output) + asymfi.handle_p384_ecdh(private_key_array[0], public_x, public_y, cfg, trigger) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + started = True + for pc, count in pc_count_dict.items(): + # Search for collisions in outputs between the ecdh instances + for i in range(2): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print("Applying instruction skip in ", pc, "occurence", i_count) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + asymfi.handle_p384_ecdh( + private_key_array[i], public_x, public_y, cfg, trigger + ) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + if testos_response_json["status"] == 0: + ecdh_output[i] = tuple( + testos_response_json["shared_key"] + ) + if ecdh_output[i] == ecdh_output[1 - i]: + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + # We do not need to reset the target since it gave an output + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", + flush=True, + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + def test_p256_verify(self): + print("Starting the p256 verify test") + # Preparing the input for an invalid signature + key = ECC.generate(curve="P-256") + pubx = [x for x in key.pointQ.x.to_bytes(32, "little")] + puby = [x for x in key.pointQ.y.to_bytes(32, "little")] + message = [i for i in range(16)] + signer = DSS.new(key, "fips-186-3") + h = SHA256.new(bytes(message)) + signature = [x for x in signer.sign(h)] + # Corrupt the signature for FiSim Testing + signature[0] ^= 0x1 + r_bytes = signature[:32] + s_bytes = signature[32:] + r_bytes.reverse() + s_bytes.reverse() + cfg = 0 + trigger = 1 + h = SHA256.new(bytes(message)) + message_digest = [x for x in h.digest()] + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "p256_verify_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "p256_verify_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "p256_verify_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = asymfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # Provide the marker name and extract the start and end address from the dis file + function_name = "PENTEST_MARKER_P256_VERIFY" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the p256 verify from the testOS (we do not read its output) + asymfi.handle_p256_verify( + pubx, puby, r_bytes, s_bytes, message_digest, cfg, trigger + ) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + started = True + for pc, count in pc_count_dict.items(): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print("Applying instruction skip in ", pc, "occurence", i_count) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + asymfi.handle_p256_verify( + pubx, puby, r_bytes, s_bytes, message_digest, cfg, trigger + ) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + verification_result = testos_response_json["result"] + verification_status = testos_response_json["status"] + if verification_result and (verification_status == 0): + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + # We do not need to reset the target since it gave an output + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", + flush=True, + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + def test_p256_ecdh(self): + print("Starting the p256 ecdh test") + # Preparing the input for an invalid signature + private_key1 = ECC.generate(curve="P-256") + private_key_array1 = [x for x in private_key1.d.to_bytes(32, "little")] + private_key2 = ECC.generate(curve="P-256") + private_key_array2 = [x for x in private_key2.d.to_bytes(32, "little")] + private_key_array = [private_key_array1, private_key_array2] + key = ECC.generate(curve="P-256") + public_point = key.pointQ + public_x = [x for x in public_point.x.to_bytes(32, "little")] + public_y = [x for x in public_point.y.to_bytes(32, "little")] + cfg = 0 + trigger = 0 + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "p256_ecdh_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "p256_ecdh_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "p256_ecdh_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = asymfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + ecdh_output = [None, None] + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # We provide the name of the unique marker in the pentest framework + function_name = "PENTEST_MARKER_P256_ECDH" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the p256 verify from the testOS (we do not read its output) + asymfi.handle_p256_ecdh(private_key_array[0], public_x, public_y, cfg, trigger) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + started = True + for pc, count in pc_count_dict.items(): + # Search for collisions in outputs between the ecdh instances + for i in range(2): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print("Applying instruction skip in ", pc, "occurence", i_count) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + asymfi.handle_p256_ecdh( + private_key_array[i], public_x, public_y, cfg, trigger + ) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + if testos_response_json["status"] == 0: + ecdh_output[i] = tuple( + testos_response_json["shared_key"] + ) + if ecdh_output[i] == ecdh_output[1 - i]: + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + # We do not need to reset the target since it gave an output + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", + flush=True, + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + def test_rsa_verify(self): + print("Starting the rsa verify test") + # Preparing the input for an invalid signature + key = RSA.generate(2048) + public_exponent = key.e + n = [x for x in (key.n).to_bytes(256, "little")] + n_len = 256 + data_len = 13 + data = [i for i in range(data_len)] + h = SHA256.new(bytes(data)) + signer = pkcs1_15.new(key) + signature = signer.sign(h) + sig = [x for x in signature] + # Corrupt the signature for FiSim Testing + sig[0] ^= 0x1 + sig.reverse() + sig_len = len(sig) + cfg = 0 + trigger = 0x4 + hashing = 0 + padding = 0 + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "rsa_verify_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "rsa_verify_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "rsa_verify_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = asymfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # Provide the marker name and extract the start and end address from the dis file + function_name = "PENTEST_MARKER_RSA_VERIFY" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the rsa verify from the testOS (we do not read its output) + asymfi.handle_rsa_verify( + data, + data_len, + public_exponent, + n, + n_len, + sig, + sig_len, + padding, + hashing, + cfg, + trigger, + ) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + # Sometimes the tracing fails due to race conditions, + # we have a quick initial timeout to catch this + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + started = True + for pc, count in pc_count_dict.items(): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print("Applying instruction skip in ", pc, "occurence", i_count) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + asymfi.handle_rsa_verify( + data, + data_len, + public_exponent, + n, + n_len, + sig, + sig_len, + padding, + hashing, + cfg, + trigger, + ) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + verification_result = testos_response_json["result"] + verification_status = testos_response_json["status"] + if verification_result and (verification_status == 0): + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + # We do not need to reset the target since it returned an output + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", flush=True + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + +if __name__ == "__main__": + r = Runfiles.Create() + # Get the openocd path. + openocd_path = r.Rlocation("lowrisc_opentitan/third_party/openocd/build_openocd/bin/openocd") + # Get the openocd config files. + # The first file is on the cw340 (this is specific to the cw340) + CONFIG_FILE_CHIP = r.Rlocation("lowrisc_opentitan/util/openocd/board/cw340_ftdi.cfg") + # The config for the earlgrey design + CONFIG_FILE_DESIGN = r.Rlocation("lowrisc_opentitan/util/openocd/target/lowrisc-earlgrey.cfg") + # Get the opentitantool path. + opentitantool_path = r.Rlocation("lowrisc_opentitan/sw/host/opentitantool/opentitantool") + # The path for GDB and the default port (set up by OpenOCD) + GDB_PATH = r.Rlocation("lowrisc_rv32imcb_toolchain/bin/riscv32-unknown-elf-gdb") + GDB_PORT = 3333 + # Program the bitstream for FPGAs. + bitstream_path = None + if BITSTREAM: + bitstream_path = r.Rlocation("lowrisc_opentitan/" + BITSTREAM) + # Get the test result path + log_dir = os.environ.get("TEST_UNDECLARED_OUTPUTS_DIR") + # Get the firmware path. + firmware_path = r.Rlocation("lowrisc_opentitan/" + BOOTSTRAP) + # Get the disassembly path. + dis_path = firmware_path.replace(".img", ".dis") + # And the path for the elf. + elf_path = firmware_path.replace(".img", ".elf") + + if "fpga" in BOOTSTRAP: + target_type = "fpga" + else: + target_type = "chip" + + target_cfg = targets.TargetConfig( + target_type=target_type, + interface_type="hyperdebug", + fw_bin=firmware_path, + opentitantool=opentitantool_path, + bitstream=bitstream_path, + tool_args=config_args, + openocd=openocd_path, + openocd_chip_config=CONFIG_FILE_CHIP, + openocd_design_config=CONFIG_FILE_DESIGN, + ) + + target = targets.Target(target_cfg) + asymfi = OTFIAsymCrypto(target) + parser = DisParser(dis_path) + + unittest.main(argv=[sys.argv[0]]) diff --git a/sw/host/penetrationtests/python/fi/gdb_testing/fi_sym_cryptolib_python_gdb_test.py b/sw/host/penetrationtests/python/fi/gdb_testing/fi_sym_cryptolib_python_gdb_test.py new file mode 100644 index 0000000000000..febf0765b2cdc --- /dev/null +++ b/sw/host/penetrationtests/python/fi/gdb_testing/fi_sym_cryptolib_python_gdb_test.py @@ -0,0 +1,643 @@ +# Copyright lowRISC contributors (OpenTitan project). +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +# What to do when running into errors: +# - If device is busy or seeing "rejected 'gdb' connection, no more connections allowed", +# cut the USB connection, e.g., sudo fuser /dev/ttyUSB0 and kill the PID +# - If the port is busy check sudo lsof -i :3333 and then kill the PID + +from sw.host.penetrationtests.python.fi.communication.fi_sym_cryptolib_commands import ( + OTFISymCrypto, +) +from python.runfiles import Runfiles +from sw.host.penetrationtests.python.util import targets +from sw.host.penetrationtests.python.util import common_library +from sw.host.penetrationtests.python.util.gdb_controller import GDBController +from sw.host.penetrationtests.python.util.dis_parser import DisParser +from collections import Counter +import json +import argparse +import unittest +import sys +import os +import time + +ignored_keys_set = set(["status"]) +opentitantool_path = "" +log_dir = "" +elf_path = "" + +# We set to only apply instruction skips in the first +# MAX_SKIPS_PER_LOOP iterations of a loop +MAX_SKIPS_PER_LOOP = 2 + +target = None +symfi = None + +# Read in the extra arguments from the opentitan_test. +parser = argparse.ArgumentParser() +parser.add_argument("--bitstream", type=str) +parser.add_argument("--bootstrap", type=str) + +args, config_args = parser.parse_known_args() + +BITSTREAM = args.bitstream +BOOTSTRAP = args.bootstrap + +original_stdout = sys.stdout + + +class SymCryptolibFiSim(unittest.TestCase): + def test_hmac(self): + print("Starting the hmac-sha256 test") + # We only test SHA256 + data_len = 32 + # We prepare two data inputs and check for collisions between them + data1 = [i for i in range(data_len)] + data2 = [data_len - i for i in range(data_len)] + data = [data1, data2] + key_len = 32 + key = [i for i in range(key_len)] + cfg = 0 + trigger = 0 + hash_mode = 0 + mode = 0 + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "hmac_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "hmac_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "hmac_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = symfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # We provide the name of the unique marker in the pentest framework + function_name = "PENTEST_MARKER_HMAC" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the hmac from the testOS (we do not read its output) + symfi.handle_hmac(data[0], data_len, key, key_len, hash_mode, mode, cfg, trigger) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + # Sometimes the tracing fails due to race conditions, + # we have a quick initial timeout to catch this + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + data_out = [None, None] + + started = True + for pc, count in pc_count_dict.items(): + # Search for collisions in outputs between the HMAC instances + for i in range(2): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print( + "Applying instruction skip in ", pc, "occurence", i_count, "data", i + ) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + symfi.handle_hmac( + data[i], data_len, key, key_len, hash_mode, mode, cfg, trigger + ) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, + gdb_port=GDB_PORT, + elf_file=elf_path, + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, + gdb_port=GDB_PORT, + elf_file=elf_path, + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + if testos_response_json["status"] == 0: + data_out[i] = tuple(testos_response_json["data"]) + + if data_out[i] == data_out[1 - i]: + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, + gdb_port=GDB_PORT, + elf_file=elf_path, + ) + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", + flush=True, + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + def test_drbg_generate(self): + print("Starting the drbg generate test") + entropy_len = 32 + entropy1 = [i for i in range(entropy_len)] + entropy2 = [entropy_len - i for i in range(entropy_len)] + entropy = [entropy1, entropy2] + nonce_len = 16 + nonce = [i for i in range(nonce_len)] + reseed_interval = 100 + data_len = 16 + mode = 0 + trigger = 2 + cfg = 0 + + # Directory for the trace log files + pc_trace_file = os.path.join(log_dir, "drbg_pc_trace.log") + # Directory for the output results + test_results_file = os.path.join(log_dir, "drbg_test_results.log") + # Directory for the the log of the campaign + campaign_file = os.path.join(log_dir, "drbg_test_campaign.log") + + successful_faults = 0 + total_attacks = 0 + + def trigger_testos_init(print_output=True): + # Initializing the testOS (setting up the alerts and accelerators) + (device_id, _, _, _, _, _, _) = symfi.init( + alert_config=common_library.no_escalation_alert_config + ) + if print_output: + print("Output from init ", device_id) + + def read_testos_output(): + # Read the output from the operation + response = target.read_response(max_tries=1000) + return response + + drbg_out = [None, None] + + gdb = None + started = False + with open(test_results_file, "w") as test_results, open(campaign_file, "w") as campaign: + print(f"Switching terminal output to {campaign_file}", flush=True) + sys.stdout = campaign + try: + # Program the bitstream, flash the target, and set up OpenOCD + target.initialize_target() + + # Initialize the testOS + trigger_testos_init() + + # Connect to GDB + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + # We provide the name of the unique marker in the pentest framework + function_name = "PENTEST_MARKER_DRBG_GENERATE" + # Gives back an array of hits where the function is called + trace_address = parser.get_marker_addresses(function_name) + print("Start and stop addresses of ", function_name, ": ", trace_address) + + crash_observation_address = parser.get_function_start_address( + "ottf_exception_handler" + ) + + # Start the tracing + # We set a short timeout to detect whether GDB has connected properly + # and a long timeout for the entire tracing + initial_timeout = 10 + total_timeout = 60 * 60 * 5 + + gdb.setup_pc_trace(pc_trace_file, trace_address[0], trace_address[1]) + gdb.send_command("c", check_response=False) + + # Trigger the drbg from the testOS (we do not read its output) + symfi.handle_drbg_reseed( + entropy[0], entropy_len, nonce, nonce_len, reseed_interval, mode, 0, 0 + ) + target.read_response() + symfi.handle_drbg_generate([0], 0, data_len, mode, cfg, trigger) + + start_time = time.time() + initial_timeout_stopped = False + total_timeout_stopped = False + + # Run the tracing to get the trace log + # Sometimes the tracing fails due to race conditions, + # we have a quick initial timeout to catch this + while time.time() - start_time < initial_timeout: + output = gdb.read_output() + if "breakpoint 1, " in output: + initial_timeout_stopped = True + break + if not initial_timeout_stopped: + print("No initial break point found, can be a misfire, try again") + sys.exit(1) + while time.time() - start_time < total_timeout: + output = gdb.read_output() + if "PC trace complete" in output: + print("\nTrace complete") + total_timeout_stopped = True + break + if not total_timeout_stopped: + print("Final tracing timeout reached") + sys.exit(1) + + # Parse and truncate the trace log to get all PCs in a list + pc_list = gdb.parse_pc_trace_file(pc_trace_file) + # Get the unique PCs and annotate their occurence count + pc_count_dict = Counter(pc_list) + if len(pc_count_dict) <= 0: + print("Found no tracing, stopping") + sys.exit(1) + print("Tracing has a total of", len(pc_count_dict), "unique PCs", flush=True) + + # Reset the target, flush the output, and close gdb + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController(gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path) + + started = True + for pc, count in pc_count_dict.items(): + # Search for collisions in outputs between the gcm instances + for i in range(2): + i_count = 0 + while i_count < min(MAX_SKIPS_PER_LOOP, count): + print("-" * 80) + print( + "Applying instruction skip in ", pc, "occurence", i_count, "data", i + ) + print("-" * 80) + + crash_observation = "crash detected" + + try: + # The observation points + observations = { + # Crash check + crash_observation_address: f"{crash_observation}", + } + gdb.add_observation(observations) + + gdb.apply_instruction_skip( + pc, parser.parse_next_instruction(pc), i_count + ) + gdb.send_command("c", check_response=False) + + # The instruction skip loop + symfi.handle_drbg_reseed( + entropy[i], + entropy_len, + nonce, + nonce_len, + reseed_interval, + mode, + 0, + 0, + ) + target.read_response() + symfi.handle_drbg_generate([0], 0, data_len, mode, cfg, trigger) + testos_response = read_testos_output() + + gdb_response = gdb.read_output() + if "instruction skip applied" in gdb_response: + i_count += 1 + total_attacks += 1 + + if crash_observation in gdb_response: + print("Crash detected, resetting", flush=True) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, + gdb_port=GDB_PORT, + elf_file=elf_path, + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, + gdb_port=GDB_PORT, + elf_file=elf_path, + ) + else: + testos_response_json = json.loads(testos_response) + print("Output:", testos_response_json, flush=True) + if testos_response_json["status"] == 0: + drbg_out[i] = tuple(testos_response_json["data"]) + + if drbg_out[i] == drbg_out[1 - i]: + successful_faults += 1 + print("-" * 80) + print("Successful FI attack!") + print("Location:", pc, "iteration", i_count - 1) + print(gdb_response) + print("Response:", testos_response_json) + print("-" * 80) + test_results.write( + f"{pc}, {i_count - 1}: {testos_response_json}\n" + ) + # Reset GDB by closing and opening again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, + gdb_port=GDB_PORT, + elf_file=elf_path, + ) + else: + print("No break point found, something went wrong", flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + except json.JSONDecodeError: + print( + "Error: JSON decoding failed. Invalid response format", + flush=True, + ) + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.reset_target() + target.dump_all() + trigger_testos_init(print_output=False) + # Reset again + gdb.close_gdb() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + gdb.dump_output() + target.dump_all() + + except TimeoutError as e: + print("Timeout error, retrying", flush=True) + print(e, flush=True) + gdb.close_gdb() + target.close_openocd() + target.initialize_target() + trigger_testos_init() + target.dump_all() + gdb = GDBController( + gdb_path=GDB_PATH, gdb_port=GDB_PORT, elf_file=elf_path + ) + + finally: + print("-" * 80) + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + # Close the OpenOCD and GDB connection at the end + if gdb: + gdb.close_gdb() + target.close_openocd() + test_results.write( + f"Total attacks {total_attacks}, successful attacks {successful_faults}\n" + ) + sys.stdout = original_stdout + print("Trace data is logged in ", pc_trace_file) + print("The campaign is logged in ", campaign_file) + print("Instruction skip results are logged in ", test_results_file) + print(f"Total attacks {total_attacks}, successful attacks {successful_faults}") + print("You can find the dissassembly in ", dis_path) + self.assertEqual(successful_faults, 0) + self.assertEqual(started, True) + + +if __name__ == "__main__": + r = Runfiles.Create() + # Get the openocd path. + openocd_path = r.Rlocation("lowrisc_opentitan/third_party/openocd/build_openocd/bin/openocd") + # Get the openocd config files. + # The first file is on the cw340 (this is specific to the cw340) + CONFIG_FILE_CHIP = r.Rlocation("lowrisc_opentitan/util/openocd/board/cw340_ftdi.cfg") + # The config for the earlgrey design + CONFIG_FILE_DESIGN = r.Rlocation("lowrisc_opentitan/util/openocd/target/lowrisc-earlgrey.cfg") + # Get the opentitantool path. + opentitantool_path = r.Rlocation("lowrisc_opentitan/sw/host/opentitantool/opentitantool") + # The path for GDB and the default port (set up by OpenOCD) + GDB_PATH = r.Rlocation("lowrisc_rv32imcb_toolchain/bin/riscv32-unknown-elf-gdb") + GDB_PORT = 3333 + # Program the bitstream for FPGAs. + bitstream_path = None + if BITSTREAM: + bitstream_path = r.Rlocation("lowrisc_opentitan/" + BITSTREAM) + # Get the test result path + log_dir = os.environ.get("TEST_UNDECLARED_OUTPUTS_DIR") + # Get the firmware path. + firmware_path = r.Rlocation("lowrisc_opentitan/" + BOOTSTRAP) + # Get the disassembly path. + dis_path = firmware_path.replace(".img", ".dis") + # And the path for the elf. + elf_path = firmware_path.replace(".img", ".elf") + + if "fpga" in BOOTSTRAP: + target_type = "fpga" + else: + target_type = "chip" + + target_cfg = targets.TargetConfig( + target_type=target_type, + interface_type="hyperdebug", + fw_bin=firmware_path, + opentitantool=opentitantool_path, + bitstream=bitstream_path, + tool_args=config_args, + openocd=openocd_path, + openocd_chip_config=CONFIG_FILE_CHIP, + openocd_design_config=CONFIG_FILE_DESIGN, + ) + + target = targets.Target(target_cfg) + symfi = OTFISymCrypto(target) + parser = DisParser(dis_path) + + unittest.main(argv=[sys.argv[0]]) diff --git a/sw/host/penetrationtests/python/util/BUILD b/sw/host/penetrationtests/python/util/BUILD index cf3ee37eb3d5e..02657651adad1 100644 --- a/sw/host/penetrationtests/python/util/BUILD +++ b/sw/host/penetrationtests/python/util/BUILD @@ -30,3 +30,13 @@ py_library( name = "hyperdebug", srcs = ["hyperdebug.py"], ) + +py_library( + name = "gdb_controller", + srcs = ["gdb_controller.py"], +) + +py_library( + name = "dis_parser", + srcs = ["dis_parser.py"], +) diff --git a/sw/host/penetrationtests/python/util/common_library.py b/sw/host/penetrationtests/python/util/common_library.py index 54515894b467b..cb29601bf2ba6 100644 --- a/sw/host/penetrationtests/python/util/common_library.py +++ b/sw/host/penetrationtests/python/util/common_library.py @@ -310,3 +310,146 @@ "duration_cycles": [0, 7200, 48, 48], "ping_timeout": 1200, } + +no_escalation_alert_config = { + "alert_classes": [ + 2, # "uart0_fatal_fault", + 2, # "uart1_fatal_fault", + 2, # "uart2_fatal_fault", + 2, # "uart3_fatal_fault", + 0, # "gpio_fatal_fault", + 0, # "spi_device_fatal_fault", + 2, # "i2c0_fatal_fault", + 2, # "i2c1_fatal_fault", + 2, # "i2c2_fatal_fault", + 2, # "pattgen_fatal_fault", + 0, # "rv_timer_fatal_fault", + 0, # "otp_ctrl_fatal_macro_error", + 0, # "otp_ctrl_fatal_check_error", + 0, # "otp_ctrl_fatal_bus_integ_error", + 0, # "otp_ctrl_fatal_prim_otp_alert", + 1, # "otp_ctrl_recov_prim_otp_alert", + 0, # "lc_ctrl_fatal_prog_error", + 0, # "lc_ctrl_fatal_state_error", + 0, # "lc_ctrl_fatal_bus_integ_error", + 2, # "spi_host0_fatal_fault", + 2, # "spi_host1_fatal_fault", + 2, # "usbdev_fatal_fault", + 0, # "pwrmgr_aon_fatal_fault", + 0, # "rstmgr_aon_fatal_fault", + 0, # "rstmgr_aon_fatal_cnsty_fault", + 1, # "clkmgr_aon_recov_fault", + 0, # "clkmgr_aon_fatal_fault", + 2, # "sysrst_ctrl_aon_fatal_fault", + 2, # "adc_ctrl_aon_fatal_fault", + 2, # "pwm_aon_fatal_fault", + 2, # "pinmux_aon_fatal_fault", + 0, # "aon_timer_aon_fatal_fault", + 1, # "sensor_ctrl_recov_alert", + 0, # "sensor_ctrl_fatal_alert", + 0, # "sram_ctrl_ret_aon_fatal_error", + 1, # "flash_ctrl_recov_err", + 0, # "flash_ctrl_fatal_std_err", + 0, # "flash_ctrl_fatal_err", + 0, # "flash_ctrl_fatal_prim_flash_alert", + 1, # "flash_ctrl_recov_prim_flash_alert", + 0, # "rv_dm_fatal_fault", + 0, # "rv_plic_fatal_fault", + 1, # "aes_recov_ctrl_update_err", + 0, # "aes_fatal_fault", + 0, # "hmac_fatal_fault", + 1, # "kmac_recov_operation_err", + 0, # "kmac_fatal_fault_err", + 0, # "otbn_fatal", + 1, # "otbn_recov", + 1, # "keymgr_recov_operation_err", + 0, # "keymgr_fatal_fault_err", + 1, # "csrng_recov_alert", + 0, # "csrng_fatal_alert", + 1, # "entropy_src_recov_alert", + 0, # "entropy_src_fatal_alert", + 1, # "edn0_recov_alert", + 0, # "edn0_fatal_alert", + 1, # "edn1_recov_alert", + 0, # "edn1_fatal_alert", + 0, # "sram_ctrl_main_fatal_error", + 0, # "rom_ctrl_fatal", + 0, # "rv_core_ibex_fatal_sw_err", + 1, # "rv_core_ibex_recov_sw_err", + 0, # "rv_core_ibex_fatal_hw_err", + 1, # "rv_core_ibex_recov_hw_err" + ], + "enable_alerts": [ + True, # "uart0_fatal_fault", + True, # "uart1_fatal_fault", + True, # "uart2_fatal_fault", + True, # "uart3_fatal_fault", + True, # "gpio_fatal_fault", + True, # "spi_device_fatal_fault", + True, # "i2c0_fatal_fault", + True, # "i2c1_fatal_fault", + True, # "i2c2_fatal_fault", + True, # "pattgen_fatal_fault", + True, # "rv_timer_fatal_fault", + True, # "otp_ctrl_fatal_macro_error", + True, # "otp_ctrl_fatal_check_error", + True, # "otp_ctrl_fatal_bus_integ_error", + True, # "otp_ctrl_fatal_prim_otp_alert", + True, # "otp_ctrl_recov_prim_otp_alert", + True, # "lc_ctrl_fatal_prog_error", + True, # "lc_ctrl_fatal_state_error", + True, # "lc_ctrl_fatal_bus_integ_error", + True, # "spi_host0_fatal_fault", + True, # "spi_host1_fatal_fault", + True, # "usbdev_fatal_fault", + True, # "pwrmgr_aon_fatal_fault", + True, # "rstmgr_aon_fatal_fault", + True, # "rstmgr_aon_fatal_cnsty_fault", + True, # "clkmgr_aon_recov_fault", + True, # "clkmgr_aon_fatal_fault", + True, # "sysrst_ctrl_aon_fatal_fault", + True, # "adc_ctrl_aon_fatal_fault", + True, # "pwm_aon_fatal_fault", + True, # "pinmux_aon_fatal_fault", + True, # "aon_timer_aon_fatal_fault", + True, # "sensor_ctrl_recov_alert", + True, # "sensor_ctrl_fatal_alert", + True, # "sram_ctrl_ret_aon_fatal_error", + True, # "flash_ctrl_recov_err", + True, # "flash_ctrl_fatal_std_err", + # On FPGA, this alert always raised, so leave it off + False, # "flash_ctrl_fatal_err", + True, # "flash_ctrl_fatal_prim_flash_alert", + True, # "flash_ctrl_recov_prim_flash_alert", + True, # "rv_dm_fatal_fault", + True, # "rv_plic_fatal_fault", + True, # "aes_recov_ctrl_update_err", + True, # "aes_fatal_fault", + True, # "hmac_fatal_fault", + True, # "kmac_recov_operation_err", + True, # "kmac_fatal_fault_err", + True, # "otbn_fatal", + True, # "otbn_recov", + True, # "keymgr_recov_operation_err", + True, # "keymgr_fatal_fault_err", + True, # "csrng_recov_alert", + True, # "csrng_fatal_alert", + True, # "entropy_src_recov_alert", + True, # "entropy_src_fatal_alert", + True, # "edn0_recov_alert", + True, # "edn0_fatal_alert", + True, # "edn1_recov_alert", + True, # "edn1_fatal_alert", + True, # "sram_ctrl_main_fatal_error", + True, # "rom_ctrl_fatal", + True, # "rv_core_ibex_fatal_sw_err", + True, # "rv_core_ibex_recov_sw_err", + True, # "rv_core_ibex_fatal_hw_err", + True, # "rv_core_ibex_recov_hw_err" + ], + "enable_classes": [False, False, False, False], + "accumulation_thresholds": [2, 2, 2, 2], + "signals": [4294967295, 4294967295, 4294967295, 4294967295], + "duration_cycles": [0, 7200, 48, 48], + "ping_timeout": 1200, +} diff --git a/sw/host/penetrationtests/python/util/dis_parser.py b/sw/host/penetrationtests/python/util/dis_parser.py new file mode 100644 index 0000000000000..bd0d3d6ac9391 --- /dev/null +++ b/sw/host/penetrationtests/python/util/dis_parser.py @@ -0,0 +1,149 @@ +# Copyright lowRISC contributors (OpenTitan project). +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +import sys +import os +import re + + +class DisParser: + def __init__(self, dis_file_path=None): + self.dis_file_path = dis_file_path + if not os.path.exists(self.dis_file_path): + print(f"Error: File not found at path: {self.dis_file_path}") + sys.exit(1) + + def get_function_addresses(self, function_name): + try: + with open(self.dis_file_path, "r") as f: + dis_content = f.read() + except IOError as e: + print(f"Error reading file: {e}") + return [] + + addresses = [] + escaped_name = re.escape(function_name) + lines = dis_content.splitlines() + + jump_line_pattern = re.compile(r"^\s*([0-9a-fA-F]{8}):.*?<" + escaped_name + r">") + + next_addr_pattern = re.compile(r"^\s*([0-9a-fA-F]{8}):") + + for i, line in enumerate(lines): + match = jump_line_pattern.match(line) + if match: + jump_address = match.group(1) + + for j in range(i + 1, len(lines)): + next_line = lines[j] + + if not next_line.strip(): + continue + + next_match = next_addr_pattern.match(next_line) + + if next_match: + address_after_jump = next_match.group(1) + addresses.append((f"0x{jump_address}", f"0x{address_after_jump}")) + break + + return addresses + + def parse_next_instruction(self, pc_address): + if pc_address.startswith("0x"): + pc_address = pc_address[2:] + + instruction_addr_pattern = re.compile(r"^\s*([0-9a-fA-F]{8}):") + + found_current_address = False + + try: + with open(self.dis_file_path, "r") as f: + for line in f: + match = instruction_addr_pattern.match(line) + + if match: + line_address = match.group(1) + + if not found_current_address: + if line_address == pc_address: + found_current_address = True + else: + return f"0x{line_address}" + + if found_current_address: + return None + else: + print(f"Error: Address 0x{pc_address} not found in disassembly.") + return None + + except IOError as e: + print(f"Error reading file: {e}") + return None + + def get_function_start_address(self, function_name): + try: + with open(self.dis_file_path, "r") as f: + for line in f: + escaped_name = re.escape(function_name) + pattern = re.compile(r"^([0-9a-fA-F]{8})\s*<" + escaped_name + r">:") + + match = pattern.search(line) + if match: + return f"0x{match.group(1)}" + + except IOError as e: + print(f"Error reading file: {e}") + return None + + return None + + def get_function_end_address(self, function_name): + """ + Finds the address of the last 'ret' instruction in a function. + """ + try: + with open(self.dis_file_path, "r") as f: + escaped_name = re.escape(function_name) + start_pattern = re.compile(r"^[0-9a-fA-F]+\s+<" + escaped_name + r">:") + any_func_pattern = re.compile(r"^[0-9a-fA-F]+\s+<.*>:") + inst_pattern = re.compile(r"^\s*([0-9a-fA-F]+):\s+.*?\s+([a-zA-Z\.]+)") + + in_function = False + function_instructions = [] + + for line in f: + if not in_function: + if start_pattern.search(line): + in_function = True + else: + if any_func_pattern.search(line): + break + + inst_match = inst_pattern.search(line) + if inst_match: + address = inst_match.group(1) + mnemonic = inst_match.group(2) + function_instructions.append((address, mnemonic)) + + if not in_function: + print(f"Error: {function_name} not found") + return None + + for address, mnemonic in reversed(function_instructions): + if mnemonic == "ret": + return f"0x{address}" + + print(f"Warning: No 'ret' instruction found for {function_name}") + return None + + except IOError as e: + print(f"Error reading file: {e}") + return None + + def get_marker_addresses(self, marker_name): + return [ + self.get_function_start_address(marker_name + "_START"), + self.get_function_start_address(marker_name + "_END"), + ] diff --git a/sw/host/penetrationtests/python/util/gdb_controller.py b/sw/host/penetrationtests/python/util/gdb_controller.py new file mode 100644 index 0000000000000..6bfcf138b72b2 --- /dev/null +++ b/sw/host/penetrationtests/python/util/gdb_controller.py @@ -0,0 +1,207 @@ +# Copyright lowRISC contributors (OpenTitan project). +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +from subprocess import PIPE, Popen, TimeoutExpired +import select +import os +import time +import re +import signal + + +class GDBController: + def __init__(self, gdb_path, gdb_port=3333, remote_host="localhost", elf_file=None): + self.remote_host = remote_host + self.gdb_port = gdb_port + self.gdb_path = gdb_path + gdb_command = [ + gdb_path, + # "--interpreter=mi", + "-ex", + f"target remote {remote_host}:{gdb_port}", + ] + if elf_file: + gdb_command.append(elf_file) + + try: + self.gdb_process = Popen(gdb_command, stdin=PIPE, stdout=PIPE, stderr=PIPE, bufsize=0) + + # Flush the output from GDB + self.dump_output() + # Start clean + self.send_command("delete breakpoints", timeout=10) + # Need to flush again from the breakpoints + self.dump_output() + + # Set number of breakpoints + self.n_brkp = 1 + except Exception: + self.close_gdb() + raise + + def read_output(self, print_errors=False, timeout=0.05): + if not self.gdb_process: + return "" + + output = "" + + readable_pipes = [] + if self.gdb_process.stdout: + readable_pipes.append(self.gdb_process.stdout.fileno()) + if self.gdb_process.stderr: + readable_pipes.append(self.gdb_process.stderr.fileno()) + + try: + readable, _, _ = select.select(readable_pipes, [], [], timeout) + + for fd in readable: + if fd == self.gdb_process.stdout.fileno(): + data = os.read(fd, 4096).decode("utf-8", errors="ignore") + output += data + elif fd == self.gdb_process.stderr.fileno(): + # GDB uses stderr for logging/errors + err_data = os.read(fd, 4096).decode("utf-8", errors="ignore") + if print_errors: + print(f"GDB Stderr: {err_data}") + except Exception as e: + print(f"Error reading GDB output: {e}") + + return output + + def dump_output(self, timeout=0.05): + self.read_output(timeout=timeout) + + def send_command(self, mi_command, timeout=0.05, check_response=True): + if not self.gdb_process or not self.gdb_process.stdin: + raise RuntimeError("GDB process not started or stdin not available.") + + command_line = mi_command.strip() + "\n" + + self.gdb_process.stdin.write(command_line.encode("utf-8")) + # Aria: After sending the command let's wait for a while till the command is + # processed on the receiving end + time.sleep(0.1) + + self.gdb_process.stdin.flush() + + if check_response: + start_time = time.time() + response = "" + while True: + response += self.read_output() + + if response.strip().endswith("(gdb)") or ( + "^done" in response and response.strip().endswith("=") + ): + break + + if time.time() - start_time > timeout: + raise TimeoutError( + f"GDB timed out after {timeout}s. Current output: {response}, {mi_command}" + ) + + # To debug you can print this output to see GDB's response + return response + else: + return None + + def reset_target(self, reset_delay=0.005): + self.send_command("monitor reset run", check_response=False) + time.sleep(reset_delay) + self.dump_output() + + def close_gdb(self): + if not self.gdb_process or self.gdb_process.poll() is not None: + return + + self.dump_output() + self.gdb_process.send_signal(signal.SIGINT) + try: + self.gdb_process.communicate(timeout=1) + except TimeoutExpired: + self.gdb_process.kill() + self.gdb_process.communicate() + finally: + self.gdb_process = None + + def get_program_counter(self): + gdb_command = "p $pc" + + try: + response = self.send_command(gdb_command, timeout=0.5) + pc_pattern = re.compile(r"0x([0-9a-fA-F]+)") + match = pc_pattern.search(response) + if match: + return "0x" + match.group(1).strip() + if "No symbol " in response or "Undefined command" in response: + raise RuntimeError(f"GDB returned an error: {response}") + + except Exception: + return None + + def setup_pc_trace(self, file_name, trace_start_addr, trace_end_addr): + self.n_brkp = 1 + self.send_command(f"set logging file {file_name}") + self.send_command("set logging overwrite on") + self.send_command("set pagination off") + self.send_command("set logging enabled on") + traceloop_definition = f"""\ + define traceloop + while 1 + if $pc=={trace_end_addr} + printf "PC trace complete.\\n" + return + end + printf "PC: 0x%x\\n", $pc + stepi + end + end + """ + self.send_command(traceloop_definition) + self.send_command(f"tb *({trace_start_addr})") + commands_definition = "commands 1\ntraceloop\nend" + self.send_command(commands_definition) + self.n_brkp += 1 + + def parse_pc_trace_file(self, file_path): + pc_list = [] + pc_pattern = re.compile(r"PC: (0x[0-9a-fA-F]+)") + + try: + with open(file_path, "r") as f: + for line in f: + match = pc_pattern.search(line) + if match: + pc_list.append(match.group(1)) + except FileNotFoundError: + print(f"Error: Trace file not found at {file_path}") + except Exception as e: + print(f"Error reading or parsing trace file: {e}") + + return pc_list + + def apply_instruction_skip(self, pc_address, next_pc_address, count): + skip_commands = f"commands {self.n_brkp}\n" + skip_commands += f"set $pc={next_pc_address}\n" + skip_commands += 'printf "instruction skip applied\\n"\n' + skip_commands += "c\n" + skip_commands += "end" + + self.send_command(f"tb *({pc_address})") + if count > 1: + ignore_amount = count - 1 + self.send_command(f"ignore {self.n_brkp} {ignore_amount}") + self.send_command(skip_commands) + self.n_brkp += 1 + + def add_observation(self, observations): + for addr, log_message in observations.items(): + obs_command = f"commands {self.n_brkp}\n" + obs_command += f'printf "fisim_result: {log_message} \\n"\n' + obs_command += "c\n" + obs_command += "end" + + self.send_command(f"tb *({addr})") + self.send_command(obs_command) + self.n_brkp += 1 diff --git a/sw/host/penetrationtests/python/util/hyperdebug.py b/sw/host/penetrationtests/python/util/hyperdebug.py index c286915a9616e..6acb322bac4d3 100644 --- a/sw/host/penetrationtests/python/util/hyperdebug.py +++ b/sw/host/penetrationtests/python/util/hyperdebug.py @@ -3,84 +3,85 @@ # SPDX-License-Identifier: Apache-2.0 import time -from subprocess import PIPE, Popen -from typing import Optional - +from subprocess import Popen, run, PIPE, CalledProcessError, TimeoutExpired +import select +import signal import serial +import sys +import os +import socket from serial.tools.list_ports import comports -class HyperDebug(): +class HyperDebug: """Class for the FPGA or Chip connected via a hyperdebug. Initializes OpenTitan with the provided firmware & provides helper functions. """ - def __init__(self, opentitantool, fw_bin, bitstream, tool_args): + + def __init__( + self, + opentitantool, + fw_bin, + bitstream, + tool_args, + openocd, + openocd_chip_config, + openocd_design_config, + ): self.opentitantool = opentitantool self.fw_bin = fw_bin self.bitstream = bitstream self.tool_args = tool_args + self.openocd = openocd + self.openocd_chip_config = openocd_chip_config + self.openocd_design_config = openocd_design_config + self.openocd_process = None - def initialize_target(self): + def initialize_target(self, print_output=True): # Programming the bitstream via the opentitantool seems to block # communication, programming it twice seems to solve the problem - self.program_bitstream(self.bitstream) - self.program_bitstream(self.bitstream) - - self.flash_target(self.fw_bin) - - def program_bitstream(self, bitstream, program_delay=2): - if bitstream: - bitstream_process = Popen( - [ - self.opentitantool, - ] + - self.tool_args + - [ - "--exec", - "transport init", - "--exec", - "fpga load-bitstream " + bitstream, - "no-op", - ], - stderr=PIPE, - ) - stderr = bitstream_process.communicate() - rc = bitstream_process.returncode - if rc != 0: - raise RuntimeError("Error: Failed to program the bitstream.") - return 0 - else: - stderr_str = stderr[1].decode('utf-8') - if "Skip loading bitstream" not in stderr_str: - time.sleep(program_delay) + self.program_bitstream(self.bitstream, print_output=print_output) + self.program_bitstream(self.bitstream, print_output=print_output) + + self.flash_target(self.fw_bin, print_output=print_output) + + if self.openocd: + self.start_openocd(print_output=print_output) + + def program_bitstream(self, bitstream, program_delay=2, print_output=True): + if not bitstream: + return + + command = ( + [self.opentitantool] + + self.tool_args + + ["--exec", "transport init", "--exec", f"fpga load-bitstream {bitstream}", "no-op"] + ) + try: + result = run(command, check=True, capture_output=True, text=True) + if "Skip loading bitstream" not in result.stderr: + time.sleep(program_delay) + if print_output: print(f"Info: FPGA programmed with {bitstream}.") - return 1 - - def flash_target(self, firmware, boot_delay=2): - flash_process = Popen( - [ - self.opentitantool, - ] + - self.tool_args + - [ - "--exec", - "transport init", - "--exec", - "bootstrap " + firmware, - "no-op", - ], - stdout=PIPE, stderr=PIPE + except CalledProcessError as e: + print(f"Error: Failed to program the bitstream.\nStderr: {e.stderr}", file=sys.stderr) + raise + + def flash_target(self, firmware, boot_delay=2, print_output=True): + command = ( + [self.opentitantool] + + self.tool_args + + ["--exec", "transport init", "--exec", f"bootstrap {firmware}", "no-op"] ) - flash_process.communicate() - rc = flash_process.returncode - if rc != 0: - raise RuntimeError("Error: Failed to flash chip.") - return 0 - else: - # Wait until chip finished booting. + try: + run(command, check=True, capture_output=True) + # Wait until chip finishes booting. time.sleep(boot_delay) - print(f"Info: Chip flashed with {firmware}.") - return 1 + if print_output: + print(f"Info: Chip flashed with {firmware}.") + except CalledProcessError as e: + print(f"Error: Failed to flash chip.\nStderr: {e.stderr}", file=sys.stderr) + raise def init_communication(self, port, baudrate): """Open the communication interface. @@ -96,6 +97,117 @@ def init_communication(self, port, baudrate): com_interface.timeout = 1 return com_interface + def start_openocd(self, startup_delay=4, print_output=True): + self.close_openocd() + # We set up OpenOCD with the following default ports + # 6666 for tcl connections + # 4444 for telnet connections + # 3333 for gdb connections + # You can adapt those ports, e.g., via adding the config: -c "telnet_port 4444" + OPENOCD_COMMANDS = "adapter speed 500; transport select jtag; reset_config trst_only" + + command = [ + self.openocd, + "-f", + self.openocd_chip_config, + "-c", + OPENOCD_COMMANDS, + "-f", + self.openocd_design_config, + ] + + if print_output: + print("Starting OpenOCD", flush=True) + + self.openocd_process = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE) + + # OpenOCD provides its status data via the error output + openocd_stderr = self.openocd_process.stderr.fileno() + os.set_blocking(openocd_stderr, False) + # Wait until the openocd is set up (this process will remain in the background) + time.sleep(startup_delay) + readable, _, _ = select.select([openocd_stderr], [], [], 0.1) + if readable: + try: + data_after_wait = os.read(openocd_stderr, 1024 * 1024).decode( + "utf-8", errors="ignore" + ) + if print_output: + print(data_after_wait, flush=True) + if "Error:" in data_after_wait: + print("Error detected in starting openocd") + + except BlockingIOError: + print("Error reading the openocd output") + pass + + def close_openocd(self): + if not self.openocd_process or self.openocd_process.poll() is not None: + return + + self.openocd_process.send_signal(signal.SIGINT) + try: + self.openocd_process.communicate(timeout=10) + except TimeoutExpired: + self.openocd_process.kill() + self.openocd_process.communicate() + finally: + self.openocd_process = None + + def read_openocd(self): + if self.openocd_process: + openocd_stderr = self.openocd_process.stderr.fileno() + readable, _, _ = select.select([openocd_stderr], [], [], 0.1) + if readable: + try: + data = os.read(openocd_stderr, 1024 * 1024).decode("utf-8", errors="ignore") + return data + + except BlockingIOError: + print("Error reading the OpenOCD output") + pass + return None + + def send_openocd_command(self, command, timeout=1.0, port=6666): + HOST = "127.0.0.1" + + try: + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.settimeout(timeout) + s.connect((HOST, port)) + except socket.error as e: + print(f"Error connecting to OpenOCD on port {port}: {e}", flush=True) + return f"ERROR: Connection failed: {e}" + + full_command = f"{command}\x1a" + try: + s.sendall(full_command.encode("utf-8")) + + response = b"" + while True: + chunk = s.recv(4096) + if not chunk: + break + response += chunk + if b"\x00" in chunk: + break + + except socket.timeout: + print(f"Warning: Command '{command}' timed out after {timeout}s.", flush=True) + except socket.error as e: + print(f"Error sending/receiving data: {e}", flush=True) + s.close() + return f"ERROR: Send/Receive failed: {e}" + + s.close() + + decoded_response = response.decode("utf-8", errors="ignore").strip() + + if decoded_response.startswith(command): + decoded_response = decoded_response[len(command):].strip() + + return decoded_response.strip() + def find_target_port(self): for port in comports(): if "UART2" in port.description and "HyperDebug" in port.description: @@ -103,14 +215,12 @@ def find_target_port(self): print("Target not found!") return None - def reset_target(self, com_reset: Optional[bool] = False, reset_delay=0.005): + def reset_target(self, com_reset=False, reset_delay=0.005): """Resets the target.""" - reset_process = Popen( - [ - self.opentitantool, - ] + - self.tool_args + - [ + reset_process = ( + [self.opentitantool] + + self.tool_args + + [ "--exec", "transport init", "--exec", @@ -118,14 +228,13 @@ def reset_target(self, com_reset: Optional[bool] = False, reset_delay=0.005): "--exec", "gpio write RESET true", "no-op", - ], - stdout=PIPE, stderr=PIPE + ] ) - reset_process.communicate() - rc = reset_process.returncode - if rc != 0: - raise RuntimeError("Error: Failed to reset chip.") - else: + try: + run(reset_process, check=True, capture_output=True, text=True) time.sleep(reset_delay) + except CalledProcessError: + print("Error: Failed to reset chip.") + raise if com_reset: self.com_interface = self.init_communication(None, 115200) diff --git a/sw/host/penetrationtests/python/util/targets.py b/sw/host/penetrationtests/python/util/targets.py index 72cb70aad6d2d..ae0b8292ea3bf 100644 --- a/sw/host/penetrationtests/python/util/targets.py +++ b/sw/host/penetrationtests/python/util/targets.py @@ -11,9 +11,10 @@ @dataclass class TargetConfig: - """ Target configuration. + """Target configuration. Stores information about the target. """ + target_type: str fw_bin: str interface_type: Optional[str] = None @@ -26,6 +27,9 @@ class TargetConfig: opentitantool: Optional[str] = None usb_serial: Optional[str] = None husky_serial: Optional[str] = None + openocd: Optional[str] = None + openocd_chip_config: Optional[str] = (None,) + openocd_design_config: Optional[str] = None class Target: @@ -43,7 +47,6 @@ class Target: pacing = 10 / baudrate def __init__(self, target_cfg: TargetConfig): - self.target_cfg = target_cfg self.target = None @@ -53,18 +56,21 @@ def __init__(self, target_cfg: TargetConfig): target_cfg.opentitantool, target_cfg.fw_bin, target_cfg.bitstream, - target_cfg.tool_args + target_cfg.tool_args, + target_cfg.openocd, + target_cfg.openocd_chip_config, + target_cfg.openocd_design_config, ) self.com_interface = self.target.init_communication(target_cfg.port, self.baudrate) - def initialize_target(self): - self.target.initialize_target() + def initialize_target(self, print_output=True): + self.target.initialize_target(print_output=print_output) # Clear the UART self.dump_all() - def reset_target(self): - self.target.reset_target() + def reset_target(self, reset_delay=0.005): + self.target.reset_target(reset_delay=reset_delay) def write(self, data): """Write data to the target.""" @@ -84,11 +90,14 @@ def readline(self): def print_all(self, max_tries=50): it = 0 while it != max_tries: - read_line = str(self.readline().decode().strip()) - if len(read_line) > 0: - print(read_line, flush=True) - else: - break + try: + read_line = str(self.readline().decode().strip()) + if len(read_line) > 0: + print(read_line, flush=True) + else: + break + except UnicodeDecodeError: + pass it += 1 def dump_all(self, max_tries=50): @@ -166,3 +175,19 @@ def read_response(self, max_tries: Optional[int] = 50): break it += 1 return "" + + def start_openocd(self): + if self.target_cfg.openocd: + self.target.start_openocd() + + def read_openocd(self): + if self.target_cfg.openocd: + return self.target.read_openocd() + + def close_openocd(self): + if self.target_cfg.openocd: + self.target.close_openocd() + + def send_openocd_command(self, command): + if self.target_cfg.openocd: + return self.target.send_openocd_command(command)