Dark_Alex a publié cette nuit une explication technique sur la sécurité qui a été ajoutée aux TA-88 V3 afin de les faire résister au Kit Despertar Del Cementerio. A lire absolument pour ceux qui veulent savoir comment Sony a contré le saint graal de l'underground et surtout s'il pense que c'est contournable.
Ceci est donc une explication sur le système de sécurité mis en place par Sony dans sa dernière carte mère TA-88 v3 qui équipe déjà les dernières PSP 2000 et sans doute, les prochaines carte mères qui équiperont les PSP 3000 qui vont arriver le 15 octobre 2008.
Quand la PSP démarre, le code de boot (aussi appelé pre-ipl ou ipl loader) charge l'IPL soit depuis le NAND soit depuis le memory stick. Cet IPL est séparé en différentes parties de 0x1000 bytes.
Les premiers 0xA0 bytes de chaque bloc sont des entêtes pour la commande Kirk Hardware 1.
Il contient les clès, la taille des informations du chiffrement ainsi que 2 hash. L'un pour la parti de l'en-tête lui même, et l'autre pour le corps de l'IPL. Les bytes 0xF60 restants sont le corps de l'IPL chiffré qui seront décryptés en bytes 0xF60 non chiffré si les hash, qui sont vérifiés par le kirk hardware est valable.
Note : le corps de l'IPL chiffré peut actuellement être inférieur à 0xF60, dans ce cas les bytes restants sont ignorés... avant les TA-083.
La sécurité du kirk hardware était supprimé par une attaque temporelle, ce qui rendait l'IPL non protégé.
Mais qu'a rajouté Sony pour corriger cela ?
La réponse se trouve dans l'IPL des PSP Slim en 4.00 et supérieur. Ils ont réduit la taille du corps de l'IPL chiffré à 0xF40 afin qu'à la fin de chaque block, il reste 0x20 bytes (à l'offset 0xFE0).
Comme dit précédement, les bytes restants sont ignorés dans le pre-ipl des PSP avant le TA88v3, et en effet, ceux-ci peuvent être aléatoires et l'IPL bootera toujours sur ces PSP. Dans les nouveaux pre-ipl, les 0x20 bytes restants ont un sens précis.
Les premiers bytes 0x10 sont un hash calculé de manière inconnu depuis le block décrypté. On peut déduire que cela est calculé depuis le block décrypté et non pas celui chiffré par le fait que le 4.01 et le 4.05 ont des blocks de l'IPL en commun, qui, lorsqu'ils sont décryptés sont similaires, mais sont différents sous forme encrypté.
Les second bytes 0x10 semblent aussi être dépendant du corps décrypté (peut être aussi dépendant des bytes 0x10 aussi ?). Sur l'image, nous pouvons voir qu'ils sont différents dans le 4.01 et le 4.05, mais ils peuvent actuellement être interchangés. Vous pouvez déplacer ces bytes 0x10 du même block depuis l'ipl du 4.05 à celui du 4.01, et celui-ci bootera quand même. Toutefois, ceci n'est pas aléatoire.
Cette protection détruit aussi toutes possibilités de downgrader en dessous du 4.00, vu que ces nouveaux processeurs ne seront pas capable de booter sur les IPL des versions précédentes.
Pour résumer, toute la sécurité des nouvelles PSP compte sur le secret de la méthode de calcul de ces 0x20 bytes. Si le pre-ipl était dumpé de n'importe quel manière, cette sécurité serait totalement cassé.
Dark_AleX et son équipe vont-ils réussir à percer le secret de cette nouvelle méthode de calcul adoptée par Sony ?
Wait & See.
Wait & See.
Commenter