1780 27c3 console_hacking_2010

134
Console Hacking 2010 PS3 Epic Fail bushing, marcan, segher, sven 27th Chaos Communication Congress Mittwoch, 29. Dezember 2010

Transcript of 1780 27c3 console_hacking_2010

Page 1: 1780 27c3 console_hacking_2010

Console Hacking 2010PS3 Epic Fail

bushing, marcan, segher, sven

27th Chaos Communication Congress

Mittwoch, 29. Dezember 2010

Page 2: 1780 27c3 console_hacking_2010

Who are we?

• In 2008 at 25c3 these teams worked together as 'WiiPhonies'

• We won the 25c3 CTF

• We changed our name to 'Fail 0verflow'

• Not trademark infringing

• The domain was available

• The ratio of fail to win is high.

We've been collaborating on various embedded and thought expansive projects, the most famous of which that hit the press earlier this year was the full reconstruction of the $REDACTED allowing $REDACTED to be completely broken, that was a fun couple of weeks.

Mittwoch, 29. Dezember 2010

Page 3: 1780 27c3 console_hacking_2010

Wii had a good run

• 3 years, 9 firmware updates, 1 real feature

• 73 mil. consoles, 30 mil. vuln. bootloaders

• 1 million users of Homebrew Channel

Mittwoch, 29. Dezember 2010

Page 4: 1780 27c3 console_hacking_2010

t

Wii Xbox 360 PS3

2006

2011

2010

2009

2008

2007

Mittwoch, 29. Dezember 2010

Page 5: 1780 27c3 console_hacking_2010

Twiizer Attack

Twilight HackHomebrew

Channel

Drivechips

Bannerbomb

Bannerbombfor 4.2

latest updatebroken

Indiana Pwns

t

Wii Xbox 360 PS3

2006

2011

2010

2009

2008

2007

Mittwoch, 29. Dezember 2010

Page 6: 1780 27c3 console_hacking_2010

Twiizer Attack

Twilight HackHomebrew

Channel

Drivechips

Bannerbomb

Bannerbombfor 4.2

latest updatebroken

Indiana Pwns

t

Wii Xbox 360 PS3

2006

2011

2010

2009

2008

2007

Drive firmwarehacked

King Kong Hack

JTAG Hack

Mittwoch, 29. Dezember 2010

Page 7: 1780 27c3 console_hacking_2010

Twiizer Attack

Twilight HackHomebrew

Channel

Drivechips

Bannerbomb

Bannerbombfor 4.2

latest updatebroken

Indiana Pwns

t

Wii Xbox 360 PS3

2006

2011

2010

2009

2008

2007

slim w/o Linuxreleased

Geohot’s hackLinux removed

JailbreakDowngradethis talk :)

OtherOSRSX exploit

Drive firmwarehacked

King Kong Hack

JTAG Hack

Mittwoch, 29. Dezember 2010

Page 8: 1780 27c3 console_hacking_2010

Mittwoch, 29. Dezember 2010

Page 9: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

Mittwoch, 29. Dezember 2010

Page 10: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

Mittwoch, 29. Dezember 2010

Page 11: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

Mittwoch, 29. Dezember 2010

Page 12: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

Mittwoch, 29. Dezember 2010

Page 13: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

Mittwoch, 29. Dezember 2010

Page 14: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

Mittwoch, 29. Dezember 2010

Page 15: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

Mittwoch, 29. Dezember 2010

Page 16: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

Mittwoch, 29. Dezember 2010

Page 17: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

4 years

Mittwoch, 29. Dezember 2010

Page 18: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

4 years HomebrewPiracy

Mittwoch, 29. Dezember 2010

Page 19: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

4 years HomebrewPiracy

piracy

Mittwoch, 29. Dezember 2010

Page 20: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

4 years HomebrewPiracy

piracy

Mittwoch, 29. Dezember 2010

Page 21: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

4 years HomebrewPiracy

piracy

hacked after it was closed

Mittwoch, 29. Dezember 2010

Page 22: 1780 27c3 console_hacking_2010

device y security hacked for effectPS2 1999 ? ? piracy -

dbox2 2000 signed kernel 3 months Linux pay TV decoding

GameCube 2001 encrypted boot 12 months Homebrew piracy

Xbox 2001 encrypted/signed bootup, signed executables 4 months LinuxHomebrew

piracy

iPod 2001 checksum <12 months Linux -

DS 2004 signed/encrypted executables 6 months Homebrew piracy

PSP 2004 signed bootup/executables 2 months Homebrew piracy

Xbox 360 2005 encrypted/signed bootup,encrypted/signed executables, encrypted RAM, hypervisor, eFuses

12 months LinuxHomebrew

leaked keys

PS3 2006 encrypted/signed bootup,encrypted/signed executables, hypervisor, eFuses, isolated SPU

not yet - -

Wii 2006 encrypted bootup 1 month Linux piracy

AppleTV 2007 signed bootloader 2 weeks Linux Front Row piracy

iPhone 2007 signed/encrypted bootup/executables 11 days Homebrew, SIM-Lock

piracy

iPad 2010 signed/encrypted bootup/executables 1 day Homebrew piracy

4 years HomebrewPiracy

piracy

hacked after it was closed

12 months

Mittwoch, 29. Dezember 2010

Page 23: 1780 27c3 console_hacking_2010

PS3 Architecture

Mittwoch, 29. Dezember 2010

Page 24: 1780 27c3 console_hacking_2010

The Cell Broadband Engine

Source: IBM

Mittwoch, 29. Dezember 2010

Page 25: 1780 27c3 console_hacking_2010

SPU Isolation

Source: IBM

0x00000 0x3e000 0x40000

Mittwoch, 29. Dezember 2010

Page 26: 1780 27c3 console_hacking_2010

SPU

LV1 / Hypervisor

LV2 / GameOS

Problem State / Games

Mittwoch, 29. Dezember 2010

Page 27: 1780 27c3 console_hacking_2010

metldr

Mittwoch, 29. Dezember 2010

Page 28: 1780 27c3 console_hacking_2010

metldr

lv0ldr

Mittwoch, 29. Dezember 2010

Page 29: 1780 27c3 console_hacking_2010

metldr

lv0ldr

lv0

Mittwoch, 29. Dezember 2010

Page 30: 1780 27c3 console_hacking_2010

metldr

lv0ldr

lv0

metldr /lv1ldr

Mittwoch, 29. Dezember 2010

Page 31: 1780 27c3 console_hacking_2010

metldr

lv0ldr

lv0

metldr /lv1ldr

lv1

Mittwoch, 29. Dezember 2010

Page 32: 1780 27c3 console_hacking_2010

metldr

lv0ldr

lv0

metldr /lv1ldr

lv1

metldr /lv2ldr

Mittwoch, 29. Dezember 2010

Page 33: 1780 27c3 console_hacking_2010

metldr

lv0ldr

lv0

metldr /lv1ldr

lv1

metldr /lv2ldr

lv2

Mittwoch, 29. Dezember 2010

Page 34: 1780 27c3 console_hacking_2010

BROKENBROKENMittwoch, 29. Dezember 2010

Page 35: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 36: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 37: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 38: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 39: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 40: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 41: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 42: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 43: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 44: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 45: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 46: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 47: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 48: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 49: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKENMittwoch, 29. Dezember 2010

Page 50: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

Mittwoch, 29. Dezember 2010

Page 51: 1780 27c3 console_hacking_2010

OtherOS

Mittwoch, 29. Dezember 2010

Page 52: 1780 27c3 console_hacking_2010

OtherOS✘Not supported on the PS3 Slim

Mittwoch, 29. Dezember 2010

Page 53: 1780 27c3 console_hacking_2010

OtherOS✘

You have earned a trophy.Draw Attention!

Not supported on the PS3 Slim

Mittwoch, 29. Dezember 2010

Page 54: 1780 27c3 console_hacking_2010

Geohot ExploitXDR RAM Glitching Attack

Mittwoch, 29. Dezember 2010

Page 55: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

Mittwoch, 29. Dezember 2010

Page 56: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

Mittwoch, 29. Dezember 2010

Page 57: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

Mittwoch, 29. Dezember 2010

Page 58: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

Mittwoch, 29. Dezember 2010

Page 59: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

Mittwoch, 29. Dezember 2010

Page 60: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

HTAB

Mittwoch, 29. Dezember 2010

Page 61: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

HTAB

Mittwoch, 29. Dezember 2010

Page 62: 1780 27c3 console_hacking_2010

RAM

Hypervisor

Kernel

HTAB

HTAB

You have earned a trophy.Hypervisor ExposedHV

Mittwoch, 29. Dezember 2010

Page 63: 1780 27c3 console_hacking_2010

OtherOS✘Mittwoch, 29. Dezember 2010

Page 64: 1780 27c3 console_hacking_2010

OtherOS✘✘✘Forcibly removed on the PS3 Fat

Mittwoch, 29. Dezember 2010

Page 65: 1780 27c3 console_hacking_2010

OtherOS✘

You have earned a trophy.Pissed Off Hackers

✘✘Forcibly removed on the PS3 Fat

Mittwoch, 29. Dezember 2010

Page 66: 1780 27c3 console_hacking_2010

Mittwoch, 29. Dezember 2010

Page 67: 1780 27c3 console_hacking_2010

PSJailbreak

Mittwoch, 29. Dezember 2010

Page 68: 1780 27c3 console_hacking_2010

PSJailbreak

(And over 9000 clones)

Mittwoch, 29. Dezember 2010

Page 69: 1780 27c3 console_hacking_2010

PSJailbreak Exploit

Mittwoch, 29. Dezember 2010

Page 70: 1780 27c3 console_hacking_2010

PSJailbreak

PWN1

Hub

FINALPWN2 JIGPWN4PWN3

Mittwoch, 29. Dezember 2010

Page 71: 1780 27c3 console_hacking_2010

Device 1

PAYLOAD

TL = 0xF00INTERFACE #1CONFIGURATION #1 .. #4

Mittwoch, 29. Dezember 2010

Page 72: 1780 27c3 console_hacking_2010

Device 4

Mittwoch, 29. Dezember 2010

Page 73: 1780 27c3 console_hacking_2010

Device 4

CONFIGURATION #1TL = 0x12

INTERFACE #1

Mittwoch, 29. Dezember 2010

Page 74: 1780 27c3 console_hacking_2010

Device 4

CONFIGURATION #1TL = 0x12

INTERFACE #1

CONFIGURATION #2

Mittwoch, 29. Dezember 2010

Page 75: 1780 27c3 console_hacking_2010

Device 2

CONFIGURATION #1

TL = 0x16INTERFACE #1

04 21 B4 2F

Mittwoch, 29. Dezember 2010

Page 76: 1780 27c3 console_hacking_2010

CONFIGURATION #2

CONFIGURATION #1

04 21 B4 2F

CONFIGURATION #1

Device 4

TL = 0x12INTERFACE #1

Mittwoch, 29. Dezember 2010

Page 77: 1780 27c3 console_hacking_2010

CONFIGURATION #2

CONFIGURATION #1

Device 4

TL = 0x12INTERFACE #1

CONFIGURATION #2TL = 0x2FB4

Mittwoch, 29. Dezember 2010

Page 78: 1780 27c3 console_hacking_2010

C++ Objects

INTERFACE OBJECT #NVTABLE POINTER

C++

INTERFACE OBJECT #N+1VTABLE POINTER

C++

INTERFACE OBJECT #N+2VTABLE POINTER

C++

Mittwoch, 29. Dezember 2010

Page 79: 1780 27c3 console_hacking_2010

C++ Objects

INTERFACE OBJECT #NVTABLE POINTER

C++

INTERFACE OBJECT #N+1 C++

INTERFACE OBJECT #N+2VTABLE POINTER

C++

CONFIGURATION #3 INTERFACE #1

Mittwoch, 29. Dezember 2010

Page 80: 1780 27c3 console_hacking_2010

C++ Objects

INTERFACE OBJECT #NVTABLE POINTER

C++

INTERFACE OBJECT #N+1 C++

INTERFACE OBJECT #N+2VTABLE POINTER

C++

CONFIGURATION #3 INTERFACE #1

PAYLOAD POINTER

Mittwoch, 29. Dezember 2010

Page 81: 1780 27c3 console_hacking_2010

Device 3

CONFIGURATION #1 .. #2

INTERFACE #1 INTERFACE #2 INTERFACE #3

INTERFACE #4 INTERFACE #5 INTERFACE #6

INTERFACE #7 INTERFACE #8 INTERFACE #9

INTERFACE #10 INTERFACE #11 ...........

Mittwoch, 29. Dezember 2010

Page 82: 1780 27c3 console_hacking_2010

Mittwoch, 29. Dezember 2010

Page 83: 1780 27c3 console_hacking_2010

You have earned a trophy.LV2 Code Execution

Mittwoch, 29. Dezember 2010

Page 84: 1780 27c3 console_hacking_2010

NO W^X in LV2Any old exploit == code execution

Mittwoch, 29. Dezember 2010

Page 85: 1780 27c3 console_hacking_2010

Hypervisor allows unsigned code

It happily marks pages as executable and plays no role in enforcing that only trusted code runs

Mittwoch, 29. Dezember 2010

Page 86: 1780 27c3 console_hacking_2010

Results

• LV2 “GameOS” compromised

• LV1 Hypervisor NOT compromised

• Secure SPE NOT compromised

Mittwoch, 29. Dezember 2010

Page 87: 1780 27c3 console_hacking_2010

Results

• LV2 “GameOS” compromised

• LV1 Hypervisor NOT compromised

• Secure SPE NOT compromised

• Piracy

You have earned a trophy.Piracy

Mittwoch, 29. Dezember 2010

Page 88: 1780 27c3 console_hacking_2010

Fail Security Model

• The hypervisor does not enforce LV2 and game integrity

• You can just patch LV2 to run games from HDD

Mittwoch, 29. Dezember 2010

Page 89: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

Mittwoch, 29. Dezember 2010

Page 90: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

USELESS

Mittwoch, 29. Dezember 2010

Page 91: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

Mittwoch, 29. Dezember 2010

Page 92: 1780 27c3 console_hacking_2010

Downgrades

Mittwoch, 29. Dezember 2010

Page 93: 1780 27c3 console_hacking_2010

Downgrades

• Sony fixed the exploit

Mittwoch, 29. Dezember 2010

Page 94: 1780 27c3 console_hacking_2010

Downgrades

• Sony fixed the exploit

• Service mode triggered by USB “JIG”

• HMAC authenticated, keys dumped

Mittwoch, 29. Dezember 2010

Page 95: 1780 27c3 console_hacking_2010

Downgrades

• Sony fixed the exploit

• Service mode triggered by USB “JIG”

• HMAC authenticated, keys dumped

• Leaked service app used to enable downgrades

Mittwoch, 29. Dezember 2010

Page 96: 1780 27c3 console_hacking_2010

Downgrades

• Sony fixed the exploit

• Service mode triggered by USB “JIG”

• HMAC authenticated, keys dumped

• Leaked service app used to enable downgrades

You have earned a trophy.More Piracy

Mittwoch, 29. Dezember 2010

Page 97: 1780 27c3 console_hacking_2010

AsbestOS

Mittwoch, 29. Dezember 2010

Page 98: 1780 27c3 console_hacking_2010

AsbestOS

• Replace LV2/GameOS in memory

Mittwoch, 29. Dezember 2010

Page 99: 1780 27c3 console_hacking_2010

AsbestOS

• Replace LV2/GameOS in memory

• OtherOS mode and GameOS mode are virtually identical

• Except GameOS can do more stuff, e.g. 3D

Mittwoch, 29. Dezember 2010

Page 100: 1780 27c3 console_hacking_2010

AsbestOS

• Replace LV2/GameOS in memory

• OtherOS mode and GameOS mode are virtually identical

• Except GameOS can do more stuff, e.g. 3D

• Run Linux again (even on the Slim!)

Mittwoch, 29. Dezember 2010

Page 101: 1780 27c3 console_hacking_2010

AsbestOS

• Replace LV2/GameOS in memory

• OtherOS mode and GameOS mode are virtually identical

• Except GameOS can do more stuff, e.g. 3D

• Run Linux again (even on the Slim!)

• Use NetRPC to remote-control the PS3 and experiment...

Mittwoch, 29. Dezember 2010

Page 102: 1780 27c3 console_hacking_2010

SELFs

SCE headerehdr + phdr

ehdrehdr + phdrencrypted metadata keymetadata

ECDSA signatureehdr + phdr (again...)

phdr #0 data #0phdr #1 data...

phdr #N data

{ELF

Mittwoch, 29. Dezember 2010

Page 103: 1780 27c3 console_hacking_2010

SELFs

SCE headerehdr + phdr

ehdrehdr + phdrencrypted metadata keymetadata

ECDSA signatureehdr + phdr (again...)

phdr #0 data #0phdr #1 data...

phdr #N data

SELF key

{ELF

loader key

Mittwoch, 29. Dezember 2010

Page 104: 1780 27c3 console_hacking_2010

SELFs

SCE headerehdr + phdr

ehdrehdr + phdrencrypted metadata keymetadata

ECDSA signatureehdr + phdr (again...)

phdr #0 data #0phdr #1 data...

phdr #N data

SELF key

{ELF

AESloader key

Mittwoch, 29. Dezember 2010

Page 105: 1780 27c3 console_hacking_2010

SELFs

SCE headerehdr + phdr

ehdrehdr + phdrencrypted metadata keymetadata

ECDSA signatureehdr + phdr (again...)

phdr #0 data #0phdr #1 data...

phdr #N data

SELF key

{ELF

AES +

SHA

-1

AESloader key

Mittwoch, 29. Dezember 2010

Page 106: 1780 27c3 console_hacking_2010

The Oracle

• Sony‘s idea: “No one can see our code!”

• ... unless the PPE is compromised

• Decrypting all code possible from GameOS

• security coprocessor pointless!

• But we want keys!

Mittwoch, 29. Dezember 2010

Page 107: 1780 27c3 console_hacking_2010

The Oracle

• Sony‘s idea: “No one can see our code!”

• ... unless the PPE is compromised

• Decrypting all code possible from GameOS

• security coprocessor pointless!

• But we want keys!

You have earned a trophy.Obfuscation useless

Mittwoch, 29. Dezember 2010

Page 108: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

Mittwoch, 29. Dezember 2010

Page 109: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

POINTLESS

Mittwoch, 29. Dezember 2010

Page 110: 1780 27c3 console_hacking_2010

Chain of TrustName Processor /

Modeupdateable revocable* usage

bootldr SPE ✖ ✖ boot lv0

lv0 PPE HV ✔ ✖ boot lv1

metldr SPE ✖ ✖ run *ldr

lv1ldr SPE ✔ ✖ decrypt lv1

lv1 PPE HV ✔ ✖ hypervisor

isoldr SPE ✔ ✖ decrypt modules

sc_iso SPE ✔ ✔

...lv2ldr SPE ✔ ✖ decrypt lv2

lv2 PPE SV ✔ ✔ kernel

appldr SPE ✔ ✔ decrypt games

some game PPE PS ✔ ✔ :-)

Mittwoch, 29. Dezember 2010

Page 111: 1780 27c3 console_hacking_2010

Chain of TrustName Processor /

Modeupdateable revocable* usage

bootldr SPE ✖ ✖ boot lv0

lv0 PPE HV ✔ ✖ boot lv1

metldr SPE ✖ ✖ run *ldr

lv1ldr SPE ✔ ✖ decrypt lv1

lv1 PPE HV ✔ ✖ hypervisor

isoldr SPE ✔ ✖ decrypt modules

sc_iso SPE ✔ ✔

...lv2ldr SPE ✔ ✖ decrypt lv2

lv2 PPE SV ✔ ✔ kernel

appldr SPE ✔ ✔ decrypt games

some game PPE PS ✔ ✔ :-)

*as per Sony‘s specificationMittwoch, 29. Dezember 2010

Page 112: 1780 27c3 console_hacking_2010

Breaking loaders

Revocation list bufferrvk_shared

Revocation list bufferrvk_isolated

lv2ldr code

Mittwoch, 29. Dezember 2010

Page 113: 1780 27c3 console_hacking_2010

Breaking loaders

Revocation list bufferrvk_shared

Revocation list bufferrvk_isolated

lv2ldr code

memcpy(rvk_isolated, rvk_shared, *((int *)(rvk_shared + 0x1c)))

Mittwoch, 29. Dezember 2010

Page 114: 1780 27c3 console_hacking_2010

Breaking loaders

Revocation list bufferrvk_shared

Revocation list bufferrvk_isolated

lv2ldr code

memcpy(rvk_isolated, rvk_shared, *((int *)(rvk_shared + 0x1c)))

Mittwoch, 29. Dezember 2010

Page 115: 1780 27c3 console_hacking_2010

Breaking loaders

Revocation list bufferrvk_shared

Revocation list bufferrvk_isolated

lv2ldr code

memcpy(rvk_isolated, rvk_shared, *((int *)(rvk_shared + 0x1c)))

You have earned a trophy.Obtained AES keys

6692d17903220582592e77a204a81b91b9b73c68f9b3b9accda438602901308bbd685c672f11cedf36c507ebd2779e3e711d6b501ae0f003

Mittwoch, 29. Dezember 2010

Page 116: 1780 27c3 console_hacking_2010

• „Only“ a bug in isolated loaders

• Chain of Trust already broken for all sold consoles now.

Mittwoch, 29. Dezember 2010

Page 117: 1780 27c3 console_hacking_2010

You have earned a trophy.Chain of Fail

• „Only“ a bug in isolated loaders

• Chain of Trust already broken for all sold consoles now.

• This is Fail™. But it‘s not Epic™ yet...

Mittwoch, 29. Dezember 2010

Page 118: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

POINTLESS

Mittwoch, 29. Dezember 2010

Page 119: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

BROKEN

POINTLESS

Mittwoch, 29. Dezember 2010

Page 120: 1780 27c3 console_hacking_2010

SELFs

SCE headerehdr + phdr

ehdrehdr + phdrencrypted metadata keymetadata

ECDSA signatureehdr + phdr (again...)

phdr #0 data #0phdr #1 data...

phdr #N data

SELF key

{ELF

AES +

SHA

-1

AESloader key

Mittwoch, 29. Dezember 2010

Page 121: 1780 27c3 console_hacking_2010

SELFs

SCE headerehdr + phdr

ehdrehdr + phdrencrypted metadata keymetadata

ECDSA signatureehdr + phdr (again...)

phdr #0 data #0phdr #1 data...

phdr #N data

SELF key

{ELF

AES +

SHA

-1

AESloader keyHow doesthis work?

Mittwoch, 29. Dezember 2010

Page 122: 1780 27c3 console_hacking_2010

ECDSA

Mittwoch, 29. Dezember 2010

Page 123: 1780 27c3 console_hacking_2010

These are public:

p, a, b,G, N (elliptic curve params)

Q = public key

e = hash of data

R,S = signature,

and these are private:

m = random

k = private key.

Mittwoch, 29. Dezember 2010

Page 124: 1780 27c3 console_hacking_2010

A signature is a pair of numbers R,S computedby the signer as

R = (mG)x

S =e + kR

m.

It is imperative to have a random m for everysignature: from a pair of signatures that use thesame m, we can compute m and k.

Mittwoch, 29. Dezember 2010

Page 125: 1780 27c3 console_hacking_2010

R = (mG)x R = (mG)x

S1 =e1 + kR

mS2 =

e2 + kR

m

When m is identical for two signatures, so is R,and

S1 − S2 =e1 − e2

m

m =e1 − e2

S1 − S2

k =mSi − ei

R

�=

e1S2 − e2S1

R(S1 − S2)

�.

Mittwoch, 29. Dezember 2010

Page 126: 1780 27c3 console_hacking_2010

Our ECDSA codeUsed for HBC’s network update functiondef generate_ecdsa(k, sha): k = bytes_to_long(k) e = bytes_to_long(sha)

m = open(“/dev/random”,”rb”).read(30)

if len(m) != 30: raise Exception(“Failed to get m”) m = bytes_to_long(m) % ec_N

r = (m * ec_G).x.tobignum() % ec_N kk = ((r * k) + e) % ec_N s = (bn_inv(m, ec_N) * kk) % ec_N r = long_to_bytes(r, 30) s = long_to_bytes(s, 30) return r,s

Mittwoch, 29. Dezember 2010

Page 127: 1780 27c3 console_hacking_2010

Our ECDSA codeUsed for HBC’s network update functiondef generate_ecdsa(k, sha): k = bytes_to_long(k) e = bytes_to_long(sha)

m = open(“/dev/random”,”rb”).read(30)

if len(m) != 30: raise Exception(“Failed to get m”) m = bytes_to_long(m) % ec_N

r = (m * ec_G).x.tobignum() % ec_N kk = ((r * k) + e) % ec_N s = (bn_inv(m, ec_N) * kk) % ec_N r = long_to_bytes(r, 30) s = long_to_bytes(s, 30) return r,s

Mittwoch, 29. Dezember 2010

Page 128: 1780 27c3 console_hacking_2010

Sony’s ECDSA code

Mittwoch, 29. Dezember 2010

Page 129: 1780 27c3 console_hacking_2010

With private keys you can SIGN THINGS

Mittwoch, 29. Dezember 2010

Page 130: 1780 27c3 console_hacking_2010

With private keys you can SIGN THINGS

You have earned a trophy.Public Private Keys

Mittwoch, 29. Dezember 2010

Page 131: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

BROKEN

POINTLESS

Mittwoch, 29. Dezember 2010

Page 132: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

BROKEN

POINTLESS

EPIC FAIL

Mittwoch, 29. Dezember 2010

Page 133: 1780 27c3 console_hacking_2010

Xbox Wii 360 PS3On-die bootROM ✓ ✓ ✓ ✓On-die key storage ✓ ✓Public-key crypto ✓ ✓ ✓ ✓

Chain of trust ✓ ✓ ✓Per-console keys ✓ ✓ ✓

Signed executables ✓ ✓ ✓Security coprocessor ✓ ✓

Full media encryption and signing ✓Encrypted storage ✓ ✓Self-signed storage ✓

Memory encryption/hashing ✓Hypervisor ✓ ✓

User/kernelmode ✓Anti-downgrade eFUSEs ✓

BROKENBROKEN

BYPASSED

INEFFECTIVE

USELESS

BROKEN

POINTLESS

EPIC FAIL

You have earned a trophy.Fail0verflow

Mittwoch, 29. Dezember 2010

Page 134: 1780 27c3 console_hacking_2010

Thanks, Sony!

http://fail0verflow.com

Mittwoch, 29. Dezember 2010