Seguridad

Cómo crear tu propio pass del wallet de iOS (Parte 2 de 2)

Continuando con el artículo de ayer seguimos hablando de los pass del wallet de iOS. Los ficheros que se encontraban en el paquete descomprimido correspondían a los antes mencionados, por lo que el problema no debía estar allí, tendría que haber algún problema en el momento de creación del pass. Por lo que nuevamente consulté la documentación en busca de ideas. Dentro de la sección Firmado y Compression del pass se especifica que es necesario un certificado de desarrollador para poder comprimir y firmar el pase. Para ello, se facilita una herramienta que automatiza el firmado del pass en la sección de descargas de desarrolladores Con esta herramienta ya era capaz de verificar si el problema residía en la fase de compresión y firmado gracias a uno de los flags del script.

Al ejecutar `./signpass -v 805161206.pkpass` por fin pude dar con el fallo, había un problema en la entidad que firmaba el pass, el certificado había expirado. Conociendo ya el problema, era tan fácil como volver a firmar el paquete con la herramienta que acababa de descargar para tener un pass nuevo. Solo debía eliminar los ficheros ‘signature’ y ‘manifest.json’, generar un certificado con mi cuenta de dessarrollador e indicar en el ‘pass.json’ el identificador de ese certificado junto al identificador de mi equipo de desarrollo.

Figura 1: Firma

Al hacerlo, había conseguido generar un nuevo paquete .pkpass con un certificado renovado. Al firmarlo, me di cuenta que el único elemento importante para generar el pass es el certificado creado para el pass, por lo que la demás información podía ser alterada sin una comprobación al fichero original. Para ello fui echando un vistazo al fichero ‘pass.json’ para ver qué más se podía modificar. Volviendo a la documentación, podemos ver que pass.json es un diccionario JSON con clave valor, y dentro del apartado Top-Level Keys podemos encontrar todas claves para modificar el pass. Estas claves se dividen en las top-level y lower-level.

Así pues, podemos comprobar que es muy sencillo modificar cualquier pass que nos envíen a nuestro terminal, por lo que la información aquí presente no debería utilizarse como método de autenticación si no es acompañada por un código de barras o QR generado a través de una clave única. Siguiendo estas indicaciones, los passes de iOS se convierten en una forma muy cómoda y segura de almacenar entradas de eventos o identificación personal en determinados establecimientos.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.