Symbol encryption¶
UDB has the ability to load encrypted symbol files. These files are standard ELF symbol files which have been encrypted to prevent inspection by unauthorized parties. Encrypted symbol files provide a way to give on-site engineers access to essential debugging information while also protecting proprietary data.
Note
Early-access versions of the Undo Suite for ARM platforms do not support encrypted symbol files. Contact Undo Support for information on early-access releases.
Generating encrypted symbol files¶
Encrypted symbol files are generated from unencrypted symbol files using the undo encrypt-symbols program included in the UDB release.
undo encrypt-symbols input output [passphrase]¶
The undo encrypt-symbols program encrypts the input file with passphrase and writes the encrypted result to output. If passphrase is omitted, undo encrypt-symbols prompts the interactive user to input one. For example, to encrypt the symbol file
examples/hello-world.symbols
and put the encrypted output inexamples/hello-world.enc
, with a passphrase entered interactively:$ undo encrypt-symbols examples/hello-world.symbols examples/hello-world.enc Enter passphrase: Confirm passphrase:
- passphrase¶
The passphrase to use for encryption.
Warning
Passphrases specified using this option may be recorded in the shell command history.
- --help, -h¶
Display help message and exit.
- --version, -v¶
Print version information and exit.
undo encrypt-symbols uses the AES-128-CTR cipher, and requires a version of openssl supporting this cipher to be installed.
Note
openssl may be installed using your distribution’s package manager.
On Fedora and Red Hat:
$ sudo yum install openssl
On Ubuntu:
$ sudo apt install openssl
Loading encrypted symbol files¶
Encrypted symbol files may be loaded in UDB using the symbol-file and add-symbol-file commands.
symbol-file [-passphrase passphrase] [options] filename¶
Load the encrypted symbol file filename, decrypting it using passphrase as the key. The currently loaded symbols are replaced with those from filename. If the
-passphrase
option is omitted, the command prompts the user to enter a passphrase interactively. For example, to load the symbols from the encrypted fileexamples/hello-world.enc
, with a passphrase entered interactively:$ udb examples/hello-world not running> symbol-file examples/hello-world.enc Passphrase:
- -passphrase PASSPHRASE¶
Specify the passphrase for decrypting the symbol file.
Warning
Passphrases specified using this option may be recorded in the GDB command history.
$ udb examples/hello-world not running> symbol-file -passphrase secret examples/hello-world.enc not running>Other options are the same as in GDB and may viewed by running
help symbol-file
.
add-symbol-file [-passphrase passphrase] [options] filename¶
Similar to symbol-file, but adds to the existing symbols, instead of replacing them.
- -passphrase PASSPHRASE¶
Specify the passphrase for decrypting the symbol file.
Warning
Passphrases specified using this option may be recorded in the GDB command history.
Other options are the same as in GDB and may be viewed by running
help add-symbol-file
.