Processo de assinatura do código de apps no iOS e iPadOS
No iOS e iPadOS, a Apple oferece segurança de apps através de medidas como a assinatura obrigatória de código, o registro estrito de desenvolvedores e outras.
Assinatura obrigatória de código
Depois de ser iniciado, o kernel do iOS e iPadOS controla quais processadores e apps podem ser executados. Para ajudar a garantir que todos os apps provenham de uma fonte conhecida e aprovada e que não tenham sido adulterados, o iOS e iPadOS exigem que todos os códigos executáveis sejam assinados por um certificado emitido pela Apple. Os apps fornecidos com o dispositivo, como o Mail e o Safari, são assinados pela Apple. Os apps de terceiros também precisam ser validados e assinados por um certificado emitido pela Apple. A assinatura de código obrigatória estende o conceito de cadeia de confiança do sistema operacional aos apps e ajuda a impedir que apps de terceiros carreguem recursos de código não assinado ou usem código que se modifique sozinho.
Como os desenvolvedores assinam os apps
Desenvolvedores podem assinar seus apps através da validação de certificados (através do Programa de Desenvolvedor da Apple). Eles também podem integrar frameworks a seus apps e ter esse código validado com um certificado emitido pela Apple (através de uma string de identificador da equipe),
Validação de certificado: para desenvolver e instalar apps em dispositivos iPhone ou iPad, desenvolvedores devem se registrar na Apple e entrar no Programa Apple Developer. A identidade real de cada desenvolvedor, seja ele um indivíduo ou uma empresa, é verificada pela Apple antes da emissão de seu certificado. Esse certificado permite que os desenvolvedores assinem e enviem apps à App Store para distribuição. Como resultado, todos os apps que estão na App Store foram enviados por uma pessoa ou organização identificável, o que mitiga a criação de apps maliciosos. Os apps também foram revisados pela Apple para ajudar a garantir que funcionem de forma geral como descrito e não contenham erros óbvios ou outros problemas marcantes. Além da tecnologia já discutida, esse processo de curadoria permite que os usuários possam confiar na qualidade dos apps que adquirem.
Validação da assinatura de código: o iOS e iPadOS permitem que os desenvolvedores integrem frameworks aos seus apps, que podem ser usados pelo próprio app ou por extensões integradas a ele. Para proteger o sistema e outros apps do carregamento de códigos de terceiros em seu espaço de endereço, o sistema executa uma validação da assinatura de código de todas as bibliotecas dinâmicas das quais um processo depende ao ser aberto. Essa verificação é realizada através do identificador da equipe (ID da Equipe), extraído do certificado emitido pela Apple. O identificador da equipe é uma string alfanumérica de 10 caracteres, como 1A2B3C4D5F, por exemplo. Um programa pode depender de qualquer biblioteca de plataforma fornecida com o sistema ou qualquer biblioteca com o mesmo identificador de equipe na assinatura de código do executável principal. Como os executáveis fornecidos como parte do sistema não possuem um identificador de equipe, eles só podem depender de bibliotecas fornecidas com o próprio sistema.
Verificação de apps proprietários para uso interno
As empresas qualificadas podem desenvolver apps proprietários para uso interno e distribuí-los aos seus funcionários. As empresas e organizações podem se candidatar ao Programa Empresarial de Desenvolvedor da Apple (ADEP). Para obter mais informações e consultar os requisitos de qualificação, consulte o site do Programa Empresarial de Desenvolvedor da Apple. Após se tornar membro do ADEP, uma organização pode se registrar para obter um perfil de provisão que permite que os apps proprietários desenvolvidos internamente sejam executados nos dispositivos que ela autoriza.
Os usuários precisam ter o perfil de provisão instalado para executar esses apps. Isso ajuda a garantir que apenas os usuários designados pela organização possam carregar os apps em seus dispositivos iPhone ou iPad. Os apps instalados por meio do gerenciamento de dispositivos móveis (MDM) são implicitamente confiáveis porque o relacionamento entre a organização e o dispositivo já está estabelecido. Caso contrário, os usuários precisam aprovar o perfil de provisão do app nos Ajustes. As organizações também podem restringir a aprovação de apps de desenvolvedores desconhecidos por seus usuários. Ao abrir pela primeira vez um app proprietário para uso interno, o dispositivo precisa receber uma confirmação positiva da Apple, indicando que o app tem permissão para ser executado.