Skip to content
ckuethe edited this page Feb 2, 2015 · 17 revisions

Reading List

Ideas

  • get a working system with CONFIG_FIT_SIGNATURE in uboot. make sandbox_config
  • do some stuff to make and test a signed FIT. See vboot_test.sh
  • can QEMU emulate high assurance boot? No.
  • how to boot a disk image through uboot? qemu -sd sd.img -kernel u-boot.elf ...
  • can uboot load a verified initrd, embedded in the FIT? ???
  • how to verify disk integrity? dm-verity
  • how to sign userland? signelf
  • how to execute only signed userland? ???

Protection Layers?

  • user - loads hash of trusted keys into HABv4 PROM
  • user - only signs bootloaders that use verified boot and disallow configuration change
  • user - only signs kernel images that use dm-verity
  • user - builds and signs approved rootfs image
  • user - only signs trusted userland binaries
  • processor/HABv4 - checks that bootloader is signed by trusted key
  • processor/HABv4 - encrypted boot?
  • processor/Trustzone - provides virtualized encrypted microsd to all other layers?
  • processor/SAHARAv4 - worth it to use hardware supported ciphers/hashes?
  • bootloader - uses verified boot, only a properly signed image will be booted
  • bootloader - prevents runtime configuration changes somehow?
  • bootloader - does not read environment from untrusted disk?
  • bootloader - do something with complex signed FIT images to package approved configurations
  • kernel - uses dm-verity to ensure that rootfs does not deviate from shipped image
  • kernel - uses elfsign to ensure that only signed executables can be run
  • kernel - MAC frameworks like Selinux, AppArmor, FLASK, etc?
  • kernel - full disk encryption
  • userland - dedicated partition for various purposes
  • userland - per-user encrypted home
  • userland - disallow interpreters (LOLWUT)

Partition Layout ?

/         /dev/mmcblk0p1 ext4     size=512M,ro,verity               #rootfs, read-only
/         /dev/mmcblk0p2 ext4     size=2048M,rw,nodev,union         #overlay, for new binaries, updates, etc.
/etc      /dev/mmcblk0p3 ext4     size=32M,rw,nodev,noexec,union    #overlay, just for system configuration
/tmp      /dev/mmcblk0p5 ext4     size=512M,rw,nodev,noexec,encrypt # randomly keyed encrypted /tmp
/var/tmp  /tmp           bind     defaults                          # reuse /tmp
/home     /dev/mmcblk0p6 ext4     rw,nodev,nosuid
/dev      none           devtmpfs defaults
/proc     none           procfs   defaults
/sys      none           sysfs    defaults

http://wiki.openwrt.org/doc/techref/flash.layout

Clone this wiki locally