HDD Encryption/Decryption
Jump to navigation
Jump to search
Introduction
- The goal is to mount a PS3 HDD on a FreeBSD PC (or FreeBSD PS3) and do changes to it without ENCDEC device.
- And learn the cool FreeBSD GEOM framework as well :)
- Everything was tested by me on FreeBSD 9.1.
GEOM bswap16
- Swaps bytes in every 16-bit word
- Similar to dm-bswap16 on Linux.
- The kernel module needs a user-space GEOM counterpart, a shared library which is loaded and used by geom application to send commands to the kernel part.
http://gitorious.ps3dev.net/ps3freebsd/geom-bswap16
http://gitorious.ps3dev.net/ps3freebsd/geom-bswap16-lib
Test
# UI shared library for GEOM bswap16 cp geom_bswap16.so /lib/geom # Load kernel module kldload geom_bswap16.ko # Create a memory block device for testing mdconfig -a -t vnode -f ~/test.bin -u 0 # Create /dev/md0.bswap16 geom bswap16 create /dev/md0 hexdump -C /dev/md0 00000000 bb aa dd cc 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 ee ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 hexdump -C /dev/md0.bswap16 00000000 aa bb cc dd 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 ff ee 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 geom bswap16 destroy md0.bswap16 mdconfig -d -u 0
GEOM geli
- Problem: how to set masterkey in GELI ?
- GEOM geli is a wrong approach and won't work. We need a new GEOM class for PS3 HDD decryption !!!
Test
mdconfig -a -t vnode -f ~/ps3da_enc.bin -u 1 geom bswap16 create md1 geli init -K hdd_key.bin -P -e AES-XTS -l 128 -s 512 /dev/md1.bswap16 geli attach -p -k hdd_key.bin /dev/md1.bswap16 geli detach /dev/md1.bswap16.eli
GEOM AES-XTS
- Use opencrypto framework for AES-XTS algorithm.
http://gitorious.ps3dev.net/ps3freebsd/geom-aes-xts http://gitorious.ps3dev.net/ps3freebsd/geom-aes-xts-lib