Editing User talk:Masterzorag
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 189: | Line 189: | ||
We got info0 + info1, 64bytes each | We got info0 + info1, 64bytes each | ||
content is 2845bytes, total is data | content is 2845bytes, total is data lenght 2973 | ||
info0, info1 are not encrypted | info0, info1 are not encrypted | ||
</pre> | </pre> | ||
Line 394: | Line 394: | ||
*those two needs investigation | *those two needs investigation | ||
1. "''For every digest, we have 1 and only 1 signature (R,S).''"<br /> | |||
Sorry , but don't think so, because as you can have read, r comes from a random number. (I'll check)<br /> | |||
2. "''Pseudo Random number (that used to creating signature) now is F(digest);''"<br /> | |||
They can't be so idiots, since digest is ever known...<br /> | |||
<br /> | |||
=playing on the vsh curve= | =playing on the vsh curve= | ||
'''z'''<br /> | |||
*So I will show for you that R = Function(digest) and what this fail is not so critical. | |||
So I will show for you that R = Function(digest) and what this fail is not so critical. | |||
I was interested for edat algorithm and figured out how edats (and sdat) files are signed.<br /> | I was interested for edat algorithm and figured out how edats (and sdat) files are signed.<br /> | ||
It contains 2 non-randomfailed ecdsa signatures. http://www.psdevwiki.com/ps3/EDAT_files#Structure_.28Encrypted_Format.29<br /> | It contains 2 non-randomfailed ecdsa signatures. http://www.psdevwiki.com/ps3/EDAT_files#Structure_.28Encrypted_Format.29<br /> | ||
Line 416: | Line 411: | ||
So if digests are same then pseudo_random_numbers are same and signatures are same.<br /> | So if digests are same then pseudo_random_numbers are same and signatures are same.<br /> | ||
Please make your conclusions.<br /> | Please make your conclusions.<br /> | ||
'''m'''<br /> | |||
[[File:EDATs diff.png|thumbnail]] | |||
You have already seen differences between two files, but maybe some other not. Here a png.<br /> | |||
First of all, that wiki page have a lot of "?", so something can be (really) different from what I've read.<br /> | |||
Page is telling me that at 0xB0 there is an ECDSA signature, and you are pointing out that we have the same (ECDSA) signature on two different files !?!<br /> | |||
1. I see your "same signature", but how do you get "metadata digest = DA39A3EE5E6B4B0D3255BFEF95601890AFD80709" from both?<br /> | |||
2. Conclusion to me are that at 0xB0 there is not an ECDSA signature, so: have you checked? Have you validated? Have you proven that r, s is the valid signature for the digest?<br /> | |||
3. There is also another aspect to not forget: alignment (%16 = 0), so there is an ECDSA signature in 40 bytes? does not sound good to me...<br /> | |||
4. SHA-1 produces a fixed lenght of 20 bytes: at wiki page I read "''0x40 QA digest, size 0x10 (seems like to be a SHA-1 hash of the non-finalized file) ... Can be ... zeroed on forged file.''" !?!<br /> | |||
5. There are two ECDSA signatures on an EDAT file and only one to protect CORE_OS_PACKAGE.pkg from alteration !?!?!<br /> | |||
<br /> | <br /> | ||
'''z'''<br /> | |||
1. metadata length = 0 bytes for both files, so digest for empty message is DA39A3EE5E6B4B0D3255BFEF95601890AFD80709.<br /> | 1. metadata length = 0 bytes for both files, so digest for empty message is DA39A3EE5E6B4B0D3255BFEF95601890AFD80709.<br /> | ||
2. r,s validated and valid of course. so you can use make_npdata the newest version for validate signatures into edats. there are no mistakes, it is realy ecdsa sig.<br /> | 2. r,s validated and valid of course. so you can use make_npdata the newest version for validate signatures into edats. there are no mistakes, it is realy ecdsa sig.<br /> | ||
Line 432: | Line 431: | ||
4. Sony used full 20 bytes length sha1 hash for validate ECDSA signatures.<br /> | 4. Sony used full 20 bytes length sha1 hash for validate ECDSA signatures.<br /> | ||
5. Correct info. SCE pkg file have only header signature. edat have metadata sig and header sig.<br /> | 5. Correct info. SCE pkg file have only header signature. edat have metadata sig and header sig.<br /> | ||
'''m'''<br /> | |||
[[File:EDAT signatures on vsh curve 1.png|thumbnail]][[File:EDAT signatures on vsh curve 2.png|thumbnail]] | |||
I've verified all, as you can see in my shots.<br /> | |||
I've also noticed one thing that explain something: with zeroed ECDSA signature every digest results in a valid signature! Why?<br /> | |||
Because the signature becomes the point at infinity! That's because on signature generation when r = 0 you have to select another random integer, as 0 < r < n! And the same applies for s.<br /> | |||
But really cool stuff can happen exacly with this kind of crazyness!<br /> | |||
<br /> | <br /> | ||
'''z'''<br /> | |||
[[File:Hdd_package_key.edat_ECDSA_validation.jpg|thumbnail]][[File:Destiny.edat_ECDSA_validation.jpg|thumbnail]] | |||
Im verified metadata and header signatures for both edat files. Check my screenshotes please.<br /> | |||
'''m'''<br /> | |||
now I'll check the two bin, meanwhile, could you try to validate a zeroed signature on two random hash with your implementation?<br /> | |||
I'm thinking that in EDATs (with two signatures), when metadata length is zero the signature is valid as you told me (and verified), but when signature is zeroed is NOT valid, so maybe the second one act as fallback check!<br /> | |||
could you try to validate a zeroed signature on two random hash with your implementation?<br /> | |||
<br /> | <br /> | ||