Firmado iOS Parte 1

El firmado permite la validación de software por una fuente en la que Apple confía. Para firmar necesitas ser miembro del Apple Developer Program. Entonces podrás conseguir un certificado de firmado e instalar y ejecutar aplicaciones en dispositivos iOS.

Obtener tu certificado

Para obtener un certificado existen varias opciones.

Xcode

La forma más sencilla es usando Xcode. Conecta tu dispositivo y ejecuta tu aplicación. Deberás haber iniciado sesión en Xcode con tu Apple ID. En la pestaña de firmado aparecerá un aviso de error. Haz click en Register Device y Xcode generará tus certificados automáticamente.

Xcode automatic Certificate

Apple Developer Website

También puedes generarlo usando el portal para desarrolladores de Apple. En la siguiente dirección:

https://developer.apple.com/account/ios/certificate/create

iOS Certificates portal

y haciendo click en el botón con el símbolo «más».

Aquí podrás seleccionar que tipo de certificado necesitas. En el siguiente ejemplo vamos a seleccionar aplicación iOS para desarrollo (iOS App Development) para firmar nuestra aplicación.

Certificates type Development

Ahora necesitamos crear el CSR (Certificate Signing Request).

Open keychain Access in your mac. Select Certificate Assistant > Request a Certificate from a Certificate Authority.

Abrimos el keychain Access en nuestro Mac. Seleccionamos Certificate Assistant > Request a Certificate from a Certificate Authority.

Certificate Signing Request Keychain

keychain CSR Certificate Signing Request

Se necesita completar la información requerida. Dirección de correo electrónico del usuario (User Email Address), nombre (Common Name) que será el nombre de la clave privada, dirección de correo electrónico de la autoridad certificada (CA Email Address ) que puede dejarse en blanco y  el campo que indica que se hará con esta solicitud (Request is) en este caso seleccionaremos almacenar en disco (Saved to disk).

Ahora para generar el certificado se necesita subir el archivo CSR que se ha almacenado en el disco.

Línea de comandos

Esta es una forma diferente de crear el archivo CSR. Es necesario crear una clave privada. Ejecutando el siguiente comando en la terminal:

~ openssl genrsa -out PrivateKey.key 2048

Se usan módulos de  2048 bits para generar la pareja de claves RSA porque éste es el estándar para la creación de certificados de firmado en OS X.

Para crear y firmar el CSR con la clave privada que se ha creado se debe usar este comando:

~ openssl req -new \
       -key PrivateKey.key \
       -out MyCertificateSigningRequest.csr \
       -subj «/emailAddress=yourmail@mail.com/commonName=Name/countryName=CountryCode»

En esta petición se debe incluir la dirección de correo electrónico en ‘emailAddress’, el nombre en ‘commonName’ y el código del país en ‘countryName’.

Con el archivo .csr creado mediante el comando previo se puede ir al sitio web para desarrolladores de Apple (Apple Developer Website) y subirlo. Como explicamos anteriormente se debe seleccionar iOS App Development en la creación del nuevo certificado y hacer click en continuar ya que ya tenemos el archivo CSR. Una vez subido el archivo hacer pulsamos Continue.

Ahora ya se puede descargar el certificado.

¿Y qué debería hacer ahora con mi certificado?

Una vez descargado el certificado es necesario añadirlo al Keychain Access en el Mac. A no ser que se haya creado el certificado con Xcode, en cuyo caso ya estará disponible en el Keychain Access.

Para añadirlo simplemente es necesario hacer doble click en él o arrastrarlo en la aplicación Keychain Access.

Certificado de firmado

El certificado permite firmar software que se quiera instalar en un dispositivo iOS. De esta forma los usuarios finales pueden instalar la aplicación en in dispositivo iOS sin tener que hacer que el dispositivo iOS conozca explícitamente cada desarrollador individual. Esto es debido a que el dispositivo iOS creerá en la entidad de certificación (Certificate Authority) que generó el certificado de desarrollo. Los dispositivos pueden confiar en un certificado que haya sido firmado por Apple. Una vez la aplicación es firmada, el sistema puede detectar cualquier cambio en la aplicación, evitando modificaciones por accidente, archivos corruptos o código malicioso. El siguiente esquema resume este proceso:

esquema firmado apple

 

La clave privada del desarrollador se usa para crear el CSR. El CSR contiene la clave pública e información del desarrollador. La entidad de certificación de Apple recibe el CSR y crea un certificado de identidad para el desarrollador. El desarrollador usa el certificado de identidad y firma aplicaciones usándolo con su clave privada. El firmante confía en la aplicación firmada con el certificado de identidad. La aplicación instalada en el dispositivo iOS tiene sus certificados validados contra la entidad certificadora que firma los certificados de los desarrolladores.

Así que:

Esquema de firmado Apple

Ahora ya conocemos tres maneras diferentes de obtener nuestros certificados y cual es su función en el firmado. En el próximo artículo vamos a hablar sobre como firmar un binario.

Otros enlaces interesantes:

Desarrolla tu app iOS securizada con Face ID y Touch ID

Deja un comentario

Responsable » Solidgear.
Finalidad » Gestionar los comentarios.
Legitimación » Tu consentimiento.
Destinatarios » Los datos que me facilitas estarán ubicados en los servidores SolidgearGroup dentro de la UE.
Derechos » Podrás ejercer tus derechos, entre otros, a acceder, rectificar, limitar y suprimir tus datos.