diff options
Diffstat (limited to 'markdown/GettingStartedNovena.md')
-rw-r--r-- | markdown/GettingStartedNovena.md | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/markdown/GettingStartedNovena.md b/markdown/GettingStartedNovena.md new file mode 100644 index 0000000..66f220c --- /dev/null +++ b/markdown/GettingStartedNovena.md @@ -0,0 +1,147 @@ +[[PageOutline]] + +# Getting Started on the Novena + +## The Novena Board + +[[Image(http://bunniefoo.com/novena/pvt1_release/novena_pvt1e_top_sm.jpg)]] + +[Novena](http://www.kosagi.com/w/index.php?title=Novena_Main_Page) is an open hardware and F/OSS-friendly computing platform. It is a small single-board Linux PC, with a Freescale i.MX6 (ARM +Cortex-A9) CPU and a Xilinx Spartan-6 LX45 FPGA. + +It is available in limited quantities through [crowd supply](https://www.crowdsupply.com/sutajio-kosagi/novena). + +### Setting up the Novena + +The Novena PVT-2 requires some initial setup. You will need to attach a USB keyboard and HDMI monitor. + +Once this is done, most of us prefer to run it headless, and ssh in. + +You may also want to bring the packages up to date: + +``` +$ sudo apt-get update +$ sudo apt-get upgrade +``` + +## The Avalanche Noise Board + +[[Image(rev03-on-novena.jpg, 40%)]] + +The avalanche noise board is a Novena daughter board that contains a zener-diode noise circuit that can be read directly by the FPGA. + +*(More information from FT: block diagram, schematics, ...)* + +It is available in limited quantities directly from Fredrik Thulin, and will be distributed at the PrahaWorkshop. + +## Binary Packages + +Cryptech maintains an ```apt``` repository, with two binary packages for the Novena: + +* a bitstream, to be configured into the FPGA +* software, to run on the CPU + + +### How to get them + +All commands are run on the Novena. + +1. First, get the hactrn CA certificate: + +``` +$ wget http://www.hactrn.net/cacert.asc +``` + +Get the key used to sign the CA certificate. + +``` +$ gpg --recv-keys 2DC6FF82 +``` + +Validate the CA certificate + +``` +$ gpg cacert.asc +``` + +Install the CA certficiate. + +``` +$ sudo mkdir /usr/share/ca-certificates/hactrn.org +$ sudo mv cacert /usr/share/ca-certificates/hactrn.org/cacert.crt +$ sudo dpkg-reconfigure ca-certificates +``` + +2. Get the repository key. + +``` +$ wget https://apt.cryptech.is/novena/apt-gpg-key.asc +``` + +Validate the key. + +``` +$ id=37A8E93F5D7E7B9A +$ gpg --recv-key $id +$ gpg --check-sig $id +$ gpg --export $id | sudo apt-key add - +``` + +See the apt-key(8) manual page for more information about the APT key database, including how to remove keys you don't want anymore. + +Install the key. + +``` +$ sudo apt-key add apt-gpg-key.asc +``` + +3. Get the packages + +Configure apt to use the repository. + +``` +$ sudo wget -q -O /etc/apt/sources.list.d/novena.list http://apt.cryptech.is/novena/sources.list +``` + +Update the package index file. + +``` +$ sudo apt-get update +``` + +Get the cryptech meta-package. + +``` +$ sudo apt-get install cryptech-novena +``` + +This installs the ```cryptech-novena-rtl``` and ```cryptech-novena-sw``` packages. + +The ```cryptech-novena-rtl``` package includes an ```init.d``` script that configures the FPGA on system startup. This script should run automatically as part of the install process. + +### Updating the packages + +Once you've performed the steps above you should be able to upgrade to newer +version of the code using the normal APT upgrade process, eg: + +``` +$ sudo apt-get update +$ sudo apt-get upgrade +``` + +## Setting up PKCS!#11 + +The PKCS11 token is in /usr/lib/libpkcs11.so. In order to start using it you need to set a pin and an SO pin. This you do with p11util thus: + +``` +(echo 12345678;echo 1234) | sudo p11util --set-so-pin --set-user-pin --pin-from-stdin +``` + +It is strongly suggested to change the so pin and pin (in that order above) to something sensible. Now your token is ready to use. Your favorite PKCS11-client may or may not work depending on the state of support for PKCS11 function calls - please open tickets for whatever is missing. If you want/need to talk PKCS11 from another host, you could install and configure [[PKCS11Proxy]] on both the novena and your host. Note that currently pkcs11-proxy doesn't handle differing word-lengths so your client-side will have to be 32bit (since the novena is). + + +## Setting up the lab signer + +The lab DNSSEC signer MUST, at this point, be running on a 32-bit system in order to work with the 32-bit Novena. + +[[https://www.dropbox.com/s/f8b4s9vic7hsqyb/cryptech-proxy-lab-20150718r2.pdf]]([https://www.dropbox.com/s/f8b4s9vic7hsqyb/cryptech-proxy-lab-20150718r2.pdf]) |