154w ago - Update: As planned, today Marcan42 has showed a Fail0verflow live demo (videos below) of him booting up a PS3 Slim to a Linux Kernel during the Lightning Talks as part of Day 4 at the 27C3 PS3 Exploit Hacker Conference.
Below are the fail0verflow PS3 exploit details along with related 27C3 (Chaos Communication Congress) Hacker Conference 2010 PlayStation 3 highlights.
Currently it includes an outline and details on PS3 SELF Crypto and PS3 SELF File Format and Decryption, and will be updated throughout the day as new details and video footage (full video now HERE- Thanks zeromx) arrive.
As previously reported, the PS3 hacking segment took place today at 16:00 (local time) in Saal 1 and a live stream was available in the following formats:
Fail0verflow Tweets: Yes, we'll release all our tools as soon as we cleaned them up in January or so. Myth: Geohot -> Sony pulls OtherOS -> JB -> Fail. Fact: Slim had no OtherOS -> Geohot -> ... . Geohot started his work due to the Slim. There is absolutely no doubt in our mind that the PS3 lasted as much as it did due to OtherOS. The security really is terribly broken. Note: we won't be working long-term on CFW or similar. We'll release tools and a PoC, someone else can take over. The fun part is done we only started looking at the ps3 after otheros was killed. the website will launch when it launches. Almost certainly not tomorrow. fail0verflow is the name of our 'group'. We are a bunch of curious hackers who have been working on a bunch of things over the last 3 years. Our goal is to have linux running on all existing PS3 consoles, whatever their firmware versions. Our current PS3 goal: AsbestOS.pup. For all those out there that think fail0verflow.com has been hacked - it hasn't. We're just busy working on a demo for tomorrow. Patience!
Marcan42 Tweets: Clarification #4: The random number isn't 4, it's more like 007eabbb79360e14df1457a4194b82f71a0dc39280 (example). But it's still constant. Clarification #3: The private keys refer to keys that Sony HQ uses. PS3s don't have these keys (but we calculated them due to the fail). It's Sony not knowing WTF they're doing when making signatures, and thus mathematically leaking their keys. This is also why we didn't use the term "exploit" or "bug". The PS3 signature fail is neither an exploit nor a bug (in the PS3 firmware). The XKCD "return 4" function that we showed is (essentially) part of the code that Sony HQ runs to sign games, it's not in the PS3 FW. No one can create a new metldr (for an existing console). Not even Sony (unless they have that console's key stashed somewhere).
Marcan42 Tweets cont'd: We don't have the game signing key but the same epic fail applies to it. Once someone dumps appldr they can calculate it too. They actually CAN change keys for LV2/LV1, isolated modules, rvklists, spp, but that's useless because you can just downgrade the loaders. Myth #2: Sony can change keys. No, they can't. These aren't encryption keys, they're signing keys. If they change them GAMES STOP WORKING. Myth #1: It took us 3-4 years to do this. Negative, this exploit only took a few months after we started working. We weren't trying before.
Marcan42 Tweets cont'd: FWIW lightning talks tomorrow are at 11:30-13:45. PS3 demo will be 4 minutes _somewhere_ within that range (to be determined). They can try to whitelist every existing piece of official PS3 code... but good luck with that. IOW they CANNOT change keys or fix this in a new firmware, because stuff we sign is every bit as good as existing official software. Wii fakesigning vs. PS3 epic fail: Wii issue is a BUG in console code (fixable), PS3 issue is a FAIL in THEIR secret signer (not fixable).
Marcan42's PS3 NOR Flash 40-50 Wire Mod (more pictures HERE) http://twitter.com/marcan42/status/16985058829144065
Public Private Keys Calculated, Current PS3 Firmware vulnerable and downgradeable
Live Demo by Marcan42 (confirmed above via Twitter) during Lightning Talks tomorrow- Day 4, Room Saal 3, Start time 11:30, Duration 02:15.
MPlayer port to PS3 in the works, confirmed by lantus on IRC.
From sven via IRC: Although only PS3 keys up to 3.15 are currently available, it is now possible to build an AsbestOS.PUP. There is an overflow with the revocation lists, we could have put a huge revocation list on the NOR which lv1 will happily load and then use that to break lv2ldr and patch out the signature check but then we found the private key. We don't have lv1 yet because we don't have the lv1 loader key.
phiren on IRC states: Well, all currently released ps3's are broken forever. With a bit of effort they could update it to take a new private key, but then they would have to release 2 packages, one signed with the old key and one signed with the new key and their security model is still fundamentally flawed.
PS3 SELF Crypto: Here is a small summary on how the self cryptography works.
Basically here are the steps being involved by the loaders:
Loaders all have a static key and iv called respectively erk and riv, those are keys for the first decryption step which are used to decrypt the very first 0x40 bytes of the self's metadata using AES256CBC
Then the result is used as a key and iv to decrypt the rest of the metadata using AES128CTR, finally the decrypted metadata contains the keys and iv for each data sections which are still decrypted through AES128CTR. This security model is based on the fact that the first 0x40 bytes of the self's metadata once decrypted by the static AES256CBC key in the loader should never be the same from one binary to the other. The same goes for any other value used as an AES128CTR key or iv.
Loaders are also involved with deflating the binaries using zlib.
The self authenticity is based on other independent steps, HMAC-SHA1 (which I believe to be possible leftovers from the playstation portable's kirk engine code) and ECCDSA for the actual signature.
- The metadata section headers are located after the metadata header in the SELF file.
- The number of sections is indicated by the sectionCount entry in the metadata header.
- They are decrypted using AES128CTR with the key and ivec entries from the metadata information.
- Section data is decrypted using AES128CTR with the key and ivec from the metadata keys specified by keyIndex and ivecIndex.
- Section data will also need to be uncompressed using zlib.
typedef uint8_t METADATAKEY_t ;
- The metadata keys are located after the metadata section headers in the SELF file.
- The number of keys is indicated by the keyCount entry in the metadata header.
- They are decrypted using AES128CTR with the key and ivec entries from the metadata information.
- Some keys are 160-bit SHA-1 and span two consecutive keys.
- Load the metadata information and decrypt the key and ivec entries using AES256CBC using erk and riv.
- Load the metadata header and decrypt it using AES128CTR with the key and ivec entries from the metadata information.
- Load sectionCount metadata section headers and decrypt them using AES128CTR with the key and ivec entries from the metadata information.
- Load keyCount metadata keys and decrypt them using AES128CTR with the key and ivec entries from the metadata information.
- For each metadata section:
- In the SELF file, fseek to dataOffset and read in dataSize bytes.
- Decrypt the data using AES128CTR with the key and ivec from the metadata keys specified by keyIndex and ivecIndex from the metadata section header.
- Uncompress the data using zlib.
- Write it to the ELF file as the program section specified by sectionIndex in the metadata section header.
Stay tuned for more PS3 Hacks and PS3 CFW news, follow us on Twitter and be sure to drop by the PS3 Hacks and PS3 Custom Firmware Forums for the latest PlayStation 3 scene updates and homebrew releases!
They weren't 100% clear on which keys they had calculated, and I'm not 100% clear on how the entire PS3 security model works, especially when it comes to updates... So take this with a grain of salt. I'd love to be corrected by people who know better than me so I can learn something
Since they mentioned running asbestOS as a lv2 replacement, they appear to have the keys needed to sign a .pup, and probably also the keys needed to sign lv2. This should be all we need for homebrew and backups, as I'll explain in a moment.
The keys to sign individual application SELFs are different, but if Sony has the same bug in all their signing apps, we should be able to reverse those keys in *exactly* the same way, and be able to run custom code on top of GameOS. This will allow homebrew on any unmodified PS3, which is a huge deal. This won't help us run backups; they need a custom gameOS/lv2 hook, usually installed as part of the dongle process. For many of us, having homebrew but not backups is just peachy.
But there are certain issues with this, especially that pesky "last games played" list that gets sent to Sony, which means a custom lv2 is needed for homebrewers who also want to use their PS3s in a normal retail fashion. And if we're making a custom lv2, enabling backups is very, very simple.
As I mentioned, it appears that fail0verflow can sign a modified lv2 self and re-sign the .pup (this is what's needed to run asbestOS in the way they described), so all we have to do is patch our GameOS self to run unsigned code, support the backup hook, "sanitize" the list of last played games sent to sony (ideally in a way that lets official games still work correctly on PSN but that won't tell sony what we're doing on homebrew), enable debug features... whatever we want, really.
We then re-sign the patched lv2 self, and re-sign the pup. At this point we just use it as a normal storage-media (USB) update, and... ta-da! Custom firmware that supports all modern games and (ideally) doesn't tell sony that anything interesting has happened.
As far as CFW, yes I think it will still be something to do, here are some "Features" I would LOVE to see assuming this all pans out. This may be pipe dreaming and I am no hacker so I dont know if any of this is possible.
1. No need for "Backup managers". As in all games on the internal/external be launched and mapped in the XMB as installed PSN games are now. Direct launch from XMB as well as making a folder for different types of games, RPG, FPS, ect.
2. Built in Media Center with internet access. Similar to Windows media center, xbmc, ect ect. Cover flow, plugins, youtube, ect. Of coarse BluRay support as well and utilizing the remote and all its features.
3. DLC that works for free (ala JTAG XBOX, Guitar Hero and Rockband junkie here).
4. PS2 and PSX backups direct from XMB like the PS3 games I mentioned earlier. And catagories as well. Say a layout like this in the game menu...
GAME > PSX > (Then your own folder setup RPG/FPS/Action/ECT)
GAME > PS2 > (Then your own folder setup RPG/FPS/Action/ECT)
And of coarse PS3 games would be at the root.
It is 5am here and I sure others could add to this lol I just woke up.