marcansoft escribió:wiidmode escribió:Una duda técnica sobre el tema de cifrado que explicaste ... los discos originales de Wii van todos cifrados / firmados con la clave privada de nintendo y las Wii los leen porque tienen almacenadas (¿en la NAND?) la clave pública ... ¿lo he entendido bien ? ... y aplicaciones como trucha signer consiguen "abrir" las ISO de los juegos porque disponen también de esa clave pública que conseguisteis extraer de una Wii ... ¿estoy en lo cierto? ... tengo bastantes lagunas en los temas de encriptación de datos y protocolos de clave pública / clave privada como puedes ver ... a ver si lo repaso un poco para acabar de entender tu explicación ... por cierto un gran trabajo de ingeniería inversa.
La clave pública del certificado raíz está en varios sitios en la Wii (generalmente en la NAND, pero en todos los IOS y en boot2 y boot1 también). De hecho, también se usa la misma clave para los servidores SSL de Nintendo (si estableces una conexión segura con los servidores de descarga, automáticamente te la estás descargando). Para nuestros propósitos no es necesaria, ni para ver ni para modificar los datos, ya que su única función es servir como la raíz de las firmas (pero no de la encriptación). Evidentemente no tenemos la clave privada, ya que esa estará sólo en un equipo seguro en Nintendo (si la conociéramos, ya sería el fin definitivo de la seguridad de la Wii, ya que podríamos sacar software "oficial", técnicamente hablando, para la Wii). Nintendo usa la clave privada para firmar otras claves (es una jerarquía) y estas firman los discos de Wii. La Wii usa la clave pública para verificar que sean válidos. Todo esto concierne a la integridad del contenido, pero no tiene nada que ver con el acceso a el (no tiene nada que ver con la encriptación de los datos en sí, sino con la verificación).
Para "ver" los datos sólo hace falta la clave común (y el ticket, que está en la ISO), la cual es simétrica (con lo que es una clave, no una pública y una privada). Esta clave se guarda en la memoria OTP y se extrajo con el Twiizer Attack. Esto nos sirve para ver datos y para reencriptarlos, pero no podemos usarlos en la Wii sin firmarlos, en teoría. En la práctica usamos el bug de las truchafirmas, que es un fallo en el sistema de verificación, y que nos permite crear cualquier contenido y hacer que pase la verificación de las firmas sin tener ninguna clave privada (ni pública, de hecho).
Resumiendo: la infraestructura de clave pública (certificados, etc) se usa para verificar datos, y nosotros nos la saltamos diréctamente gracias al bug (y no tenemos que verificar nada, con lo que tampoco la usamos para ese fin). Las claves de título y la clave común son simétricas y se usan para encriptar los datos, y, al ser simétricas, las podemos usar diréctamente ya que las conocemos al haberlas extraído de una Wii.
Por cierto, la clave pública está
aquí, en el formato adecuado para las utils de segher. Lo digo porque, aunque no la necesitamos, las tools también hacen verificaciones y la necesitan para ciertas acciones, y mucha gente parece creer que es algún tipo de secreto, cuando en realidad es una clave
pública y desde siempre ha estado disponible en los servidores SSL de nintendo.
wiidmode, gracias por el consejo