Update #2: Now zAxis reports that the news of the PS3 Master Key was not legitimate after all.
Update: graf_chokolo has now confirmed he found the PS3 Master Key, and plans to release it publicly after PSGrade is updated with it and is spread!
Today Estx on xorloser's blog (linked above) has announced that he has uncovered the PS3 Master Key and will post it shortly, however, some users including phiren believe it is really the Device Key and are awaiting more details.
Below are some comment and code excerpts, as follows:
Estx: I’ve found the Masterkey from bruteforcing dumps from my system.
Took 27 minutes, over 8,100,000 possible keys. Lol – could’ve waited but ah well.
If anyone is interested in doing the same, you can find it on 3.41.
Challenge and response I took from the dumps reported on psx-scene. If graf doesn't find it by tomorrow – I'll release the key. Only reason I'm holding it back – is because no one helped me when I asked for it. (;Code:for(int i = 0; i < list.length; i++) if(HMAC-SHA-1(key[i]).ComputeHash(encryptChallengeBody) == matchResponseBody) { Success; }
phiren: Either your code you supplied is nothing like the actual code you used, or you managed to fluke the correct device key for the device that was used to generate that response, not the master key.
Estx: It’s just psuedo code. Actual code has a few more lines than this. Inclusive of byte conversion, list generating from binary dumps and other trivial functions.
I have no way to dump the data between my at90usb192 and PS3 so I can’t post any challenge/response logs.
And it’s not a magic key – it is the master key. I have tried it so far from 3.41 and 3.50 on my slim and fat.
That’s the actual loop there: http://www.pastie.org/1346409
Prior to this is generation of the list etcetera.Code:for(int i = 0; i < lineArray.Length; i++) { Console.WriteLine("Trying {0}", lineArray[i]); dummyKey = strToByt(lineArray[i]); hSha1 = new HMACSHA1(dummyKey); rcv = hSha1.ComputeHash(encryptMe); if(rcv == matchMe) { Console.WriteLine("Success is mine."); Console.WriteLine("\nMaster Key\n"); Console.WriteLine("HEX: (" + rcv.Length.ToString() + " bytes)\n" + formatString(BitConverter.ToString(rcv).Replace("-"," "))); return; } }
phiren: I’m thinking more of the code which does an SHA1-HMAC between the master key and the dongle ID to generate the device key which is finally SHA1-HMACed with the challenge. A single device key will work on all firmware versions, which makes it just as useful as the master key for our purposes.
It just means that Sony can revoke that single device and you can’t possibly generate another device key. But since Sony will probably revoke every single device and start again with a new master key with the next firmware version, having the master key isn’t that useful.
Estx: That’s what I was thinking as I was learning how to generate the correct response before constructing a quick loop. The expected response is 20 bytes of what you suggested above.
I’ve found no other use of the master key yet.. so you’re quite right. Mind you, I’m not as talented as some of the other developers here, I’m still playing around with new things I’m finding in the firmware’s. And thank’s to graf’s work – there’s even more to play around with.
More PlayStation 3 News...
13250 HeyManHRU
13207 PS3 News
11287 elser1
11119 oVERSoLDiER
9248 GrandpaHomer
8578 Tidusnake666
7968 saviour07
7340 condorstrike
7258 deank
6858 OGroteKoning
24961 PS3 News
5279 Starlight
2965 HeyManHRU
2173 CJPC
2123 elser1
1818 cfwprophet
1756 her0
1570 oVERSoLDiER
1291 GrandpaHomer
1080 barrybarryk






