Zrobiłem taki skrypt:
Kod:
erk_data=$(xxd -p -u -c 32 -l 32 "eid_root_key")
erk_iv=$(xxd -p -u -c 16 -s -16 "eid_root_key")
openssl aes-256-cbc -e -in "ata_data_seed" -out "ata_data_key" -K $erk_data -iv $erk_iv -nopad -nosalt
openssl aes-256-cbc -e -in "ata_tweak_seed" -out "ata_tweak_key" -K $erk_data -iv $erk_iv -nopad -nosalt
openssl aes-256-cbc -e -in "endec_data_seed" -out "endec_data_key" -K $erk_data -iv $erk_iv -nopad -nosalt
openssl aes-256-cbc -e -in "endec_tweak_seed" -out "endec_tweak_key" -K $erk_data -iv $erk_iv -nopad -nosalt
adk=$(xxd -p -u -c 32 ata_data_key)
atk=$(xxd -p -u -c 32 ata_tweak_key)
edk=$(xxd -p -u -c 32 endec_data_key)
etk=$(xxd -p -u -c 32 endec_tweak_key)
echo "$adk" "$atk" | xxd -r -p > hdd_key.bin
echo "$edk" "$etk" | xxd -r -p > vflash_key.bin
Generuje mi klucze 64 bajtowe, a podobno mają być 16. Jak k*a!? Przecież to niemożliwe skoro "data" to pierwsze 32 bajty ERK, a "iv" kolejne 16.
No i to jest dla Slim bo dla Fat w ogóle nie rozumiem tek wiki. Wszystko co się tyczy odszyfrowywania HDD to jest wielki chaos i burdel... Raz piszą że to jest AES-XTS, innym razem że AES-256-CBC (dla Slim). Jak dam "aes-128-xtc" to żadnych kluczy nie generuje i żadnego komunikatu nie dostaję.
Cytat:
Slim Consoles
XTS-AES-128 is used to encrypt all data on PS3 HDD.
XTS is NOT CBC!!! It's AES-ECB with tweak XORing. AES-CBC is impractical for HDD encryption. Each sector can be encrypted/decrypted independantly from other HDD sectors.
Good paper about XTS-AES: http://ntnu.diva-portal.org/smash/ge...753/FULLTEXT01
VFLASH is encrypted twice. First with ENCDEC keys and then with ATA keys.
Tweak and data XTS keys are of size 32 bytes but only the first 16 bytes are used.
You can set and clear ATA keys with my Linux ps3encdec device driver which i use to test HDD/VFLASH encryption. But be careful, never set/clear ATA keys while some HDD regions/partitions are mounted !!! You will corrupt your data on your HDD !!!
Phat Consoles
On the PHAT consoles AES-CBC-192 is used for HDD encryption and AES-CBC-128 for VFLASH encryption.
So no tweak and tweak key here. Each sector is encrypted with the same zeroed IV.
VFLASH is encrypted once with ENCDEC key and zeroed IV!
Data key is of size 32 bytes but only the first 24 bytes are used for HDD and 16 bytes for VFLASH.
See also http://www.multiupload.nl/6PIFV4GKSH (contains scripts of ENCDEC emulator for both types of consoles).
|
VLASH na razie zostawiam w spokoju, chcę się skupić na działającym generowaniu kluczy HDD_KEY.
Nie rozumiem co oznacza, że "ata_data_key" i "ata_tweak_key" mają 32 bajty, ale tylko 16 jest używane. Czyli "ata_data_key" i "ata_tweak_key"mają po pierwsze 16 bajtów czy reszta 16 jest zerowana?
Z fatem jest gorzej, a to na facie będę testować... Napisali, że "no tweak and tweak key here" czego w ogóle nie rozumiem. Jeśli "ata_tweak _key" nie bierze udziału w generowaniu hdd key to jak ja mam to zrobić?
Czy oni do ***** po pijaku pisali tą dokumentację? Cały dzień siedzę nad tym i niczego konstruktywnego nie wymyśliłem...
Nie ma się nawet kogo o to zapytać bo albo nikt nic nie wie albo ma w dupie. Czemu ta scena jest tak sp*a? :/