[Cryptech Tech] A more intelligent master key memory
Joachim Strömbergson
joachim.strombergson at assured.se
Tue Mar 13 13:33:31 UTC 2018
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Aloha!
I've done a short study on a possible way to improve the master key
memory in Cryptech. Based on the survey below, using a Lattice iCE40LP
device looks promising. Esp in the light of the available open tool
suite based on Yosys.
(A more) Intelligent Master Key Memory
======================================
The current Master Key Memory (MKM) is implemented using a simple,
serial RAM connected to the FPGA via SPI. On the alpha board there is
support for powering the RAM chip with a battery connected via a
switch. This provides a first, rudimentary possible way to achive tamper
protection of the master key.
There are however specialized security devices that provides integrated
tamper detection, key memory anti-remanence functionality etc. One such
family of devices are the DeepCover Security Managers by Maxim:
https://para.maximintegrated.com/en/search.mvp?fam=sec_super&1351=Yes
There are several devices, for example a small chip with 64 byte storage:
https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/DS3600.html
For transparency reasons we would rather implement our own master key
storage using "stupid" chips, nor rely on a black box solution (which
the Maxim chip really is).
One solution discussed is to use a very small, low power FPGA with
non-volatile fabric configuration. The master key is stored in discrete
registers or block RAM. The FPGA logic implements tamper detect and key
destruction mechanisms etc. One key function provided by the Maxim
device is ant-remanence functionality.
I found a good article about SRAM remanence and counter mechanisms for
key storage:
https://www.design-reuse.com/articles/17660/on-chip-sram-data-remanance-attacks.html
Either flip bits periodically or move key in memory.
Key flip by XORing with 0xff...ff.
When key is moved erase old key and then write pattern 0xaa...aa or
0x55...55 to the old place (and all other places where the key isn't
stored. Requires a separate pointer register that should also be wiped
during tamper detect.
Suggested time between anti-remanence operations in the article is 5
minutes.
Suggested list of features
- --------------------------
MUST provide
- - Key memory. At least 128 bit. But possibly at least 64 bytes.
- - Anti-remanence (eg complementing, movement) of key memory.
Including counter to trigger anti-remanence operation.
- - Tamper response wipining and overwriting of key memory.
- - Tamper-detect logic input. At least one pin. Level triggered.
- - SPI, I2C or UART interface
MAY provide
- - Access control (password to unlock)
- - Tamper detect with comparators (for example temperature)
- - Tamper event logging. x events rolling log.
- - Real time-ish clock for timestamp of log.
Things to consider when using FPGAs to build a secure memory
- ------------------------------------------------------------
- - Clocks. External or internal
- - Sleep modes. How to react fast if sleeping?
- - Debug and scan ports (JTAG). Can they be locked down?
- - Static power consumption
- - Free (good) or even open (better) tools
- - Package types
Lattice Semi
–--------–––
iCE40 LP are the smallest devices with lowest power consumption available.
As low as 21uA in static power. SRAM-based, but with on-chip
non-volatile configuration memory. Can configure itself from boot. Have
internal clocks (48 MHz, 32 kHz).
http://www.latticesemi.com/Products/FPGAandCPLD/iCE40
Data sheet:
http://www.latticesemi.com/view_document?document_id=49312
Example packages:
- - 16-ball CSP
- - 32-pin QFN
Free tool - iCEcube2:
http://www.latticesemi.com/Products/DesignSoftwareAndIP/FPGAandLDS/iCEcube2
Open tool, reverse engineered bitstream. Based on Yosys.
Right now smallest device supported is iCE40-LP384-QN32.
http://www.clifford.at/icestorm/
Eval board:
http://www.latticesemi.com/icestick
Actel (Microsemi)
- -----------------
IGLOO Nano. Down to 2uW in Flash Freeze mode. Embedded SRAM and NVM.
Flash based. Security focused device. Configuration protected with
AES-128. No internal clock.
Data sheet:
https://www.microsemi.com/document-portal/doc_download/130695-ds0110-igloo-nano-low-power-flash-fpgas-datasheet
Example packages
- - 36-ball CSP
- - 48-pin QFN
Free tool (Libero SoC):
https://www.microsemi.com/products/fpga-soc/design-resources/design-software/libero-soc
- --
Med vänlig hälsning, Yours
Joachim Strömbergson - Assured AB
========================================================================
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBCAAGBQJap9MrAAoJEF3cfFQkIuyNK8EQAMYvVKiTYrLFT+Fq8dp/lW4r
xtXvOqz/XDKaAFP7zCZB7pjPXisYlqrQYb22fcee0yLus63AQjozHh2dsgK8pk3j
qZu52aGHqD6CmuVSNjpnNTwikFT9npp/St6OYY6r4ZG4EuTxocPrk9OnMCdP/2wc
g2HiALfBfn97YaohVM+f5YLT4I/NmZDqa5H5Fx+XAhhw9Lny/PGTcuU+UjMDExsS
0P1kVOsUkvUfcgq3Df4xuWYUmuqyylBpYDz3YyLwPYeYSI1g+8m6h5KIDAxy6FR6
vp2cs6oUxjp5GEZvawNayVaoWA3rCZTfGBRPoecbjFfLbpSHJuEo3fHe7sCnMkTF
qyLrJM+DOBnhQE1KxMsdWYgjo2LFphVAlGTq22z+9Iw0FMFmeVK00vjJCzsVphPj
raJFdeHfrNaldOCK3qcyP9yGO+x6yCXoObYxH0DqWdaYMKYGZvtc6ojFswb0Y9ur
Yq8iAgGBFiFdXOOyqv4QdKlYnPYU9S+2cIrtCKUlVXV3cWO2ESvGF4DLnHovUOv2
fSgiLz0rZ21UOnAzZKZchMbDweERobzOurxghoQwo9s8xcsFFok0mGD0iUhEEkO9
USLPlu+WGRMymgGnm21ss3ePc0J08Ox8Vpy6wNkeMjW6brKJW1diTTeroWgr5Ad/
24KgTQgraQUqpSOXIGdT
=jWpZ
-----END PGP SIGNATURE-----
More information about the Tech
mailing list