sábado, 4 de fevereiro de 2012

Dá para quebrar o sistema de segurança do PS3

Eu sempre apreciei muito os video games, desde os remotos tempos do Intellivision. A tecnologia avança muito rápido, então os jogos e consoles ficam obsoletos muito rápido. Antigos, talvez, mas não menos interessantes.

Eu acho que o PS3 está chegando ao fim de seus dias, e em breve veremos uma nova plataforma chegando. Aí é que reside o problema. É impossível a gente ter todos os jogos de um console, devido ao preço. E quando o fabricante do console decreta sua morte, ficamos totalmente órfãos dos jogos. Foi assim com o NES, SuperNes, Megadrive, N64, PS1 e PS2, para não falar dos jogos do Comodore. Para estas plataformas antigas existem a possibilidade de se buscar os ROM'n na internet, e jogar direto no PC.

No caso do PS3, o único meio de jogar é via console, que conta com um sistema de proteção extremamente robusta através de ECDSA (Elliptic Curve Digital Signature Algorithm), que usa função do tipo como no exemplo abaixo do Windows Right Management Version 2:

Y^2 = X^3 + ax + b


y^2 = x^3 + 317689081251325503476317476413827693272746955927x
+ 79052896607878758718120572025718535432100651934


Basicamente, o sistema de proteção conta com três elementos: uma chave privada, que somente a Sony sabe qual é, uma chave pública que está no software e um hash de arquivo necessário para calcular a chave pública.

A chave privada (dA) é um ponto pertencente a curva descrita acima. A chave pública  (Qa) é calculada a partir da geração de um número aleatório k, de tal forma que Qa=dA . k.

A quebra do código para os jogos abaixo da versão 3.55 do firmware da Sony só foi possível porque eles utilizaram o mesmo número aleatório (k) em todos os jogos. De maneira simplista, quando você tem uma variável e duas equações, você consegue resolver a variável (garotos, nunca deixem de estudar álgebra).

Depois da 3.55, a chave k é aleatória para todos os jogos, inviabilizando qualquer dedução algébrica do valor. A única alternativa seria uso de força bruta, ou seja tentativa e erro. Inviável, a segurança da chave privada é de 20 bytes, ou seja existem 2^160 combinações possíveis (equivale a um número de 49 dígitos).

Para mantermos vivos os jogos do PS3, só se a Sony divulgar as chaves privadas, pois os jogos em breve irão sumir das lojas e nunca mais teremos acesso aos fantásticos jogos desta plataforma.


Nenhum comentário:

Postar um comentário