Sobes.tech
Middle+

Como funciona o sistema de certificados no iOS?

sobes.tech IA

Resposta da IA

Os certificados são usados para assinatura criptográfica e verificação de aplicações, perfis de preparação e conexões. Componentes principais: Certificado raiz da Apple, Certificados intermédios, Certificados de Desenvolvedor, Certificados de Distribuição e Perfis de Provisionamento.

O Certificado raiz da Apple é o centro de certificação raiz da Apple, e é confiável.

Os Certificados intermédios conectam o certificado raiz aos certificados finais do desenvolvedor/distribuidor.

O Certificado de Desenvolvedor identifica o desenvolvedor para fins de desenvolvimento e depuração em dispositivos registados.

O Certificado de Distribuição é usado para assinar aplicações antes de as distribuir através da App Store, Programas Empresariais ou Ad Hoc.

O Perfil de Provisionamento liga o ID da aplicação, os certificados de desenvolvedor/distribuidor e os dispositivos registados (para Ad Hoc e desenvolvimento). Define quais os serviços da Apple que a aplicação pode usar (por exemplo, Notificações Push, Capacidades).

Processo:

  1. Cria-se uma solicitação de assinatura de certificado (CSR) na máquina do desenvolvedor.
  2. A CSR é carregada no portal Apple Developer.
  3. A Apple emite um certificado de desenvolvedor ou de distribuição.
  4. O certificado é instalado no armazenamento de chaves (Keychain) na máquina do desenvolvedor.
  5. Cria-se um Perfil de Provisionamento no portal Apple Developer, que liga o ID da aplicação, o certificado e os dispositivos. O perfil também é carregado e instalado.
  6. A aplicação é assinada usando o certificado e o Perfil de Provisionamento durante a compilação.
  7. Ao instalar num dispositivo ou antes de publicar na App Store, a assinatura e o Perfil de Provisionamento são verificados pelo sistema iOS.

Verificação: O sistema iOS verifica a cadeia de confiança do certificado, que vai desde o certificado da aplicação até ao Certificado raiz da Apple, e a validade do Perfil de Provisionamento. Se algo estiver incorreto, a instalação ou execução da aplicação é bloqueada.

Perfil de Provisionamento
  .mobileprovision // ficheiro
  inclui:
    - ID da aplicação
    - Certificados (Desenvolvedor/Distribuição)
    - UDID dos dispositivos (para Dev/Ad Hoc)
    - Entitlements (capacidades)

Certificado
  .cer // ficheiro
  assinado pela Apple
  ligado à chave privada no Keychain