Como executar a fixação SSL em aplicativos iOS

Publicados: 2020-02-24

No momento em que as pessoas saem de suas casas, elas partem em busca de redes Wi-Fi abertas . Se eles estão esperando no aeroporto ou sentados em um café, a agenda principal é encontrar uma conexão Wi-Fi aberta .

Assustadamente, os hackers também estão na mesma busca. Eles também esperam que os usuários iniciem uma solicitação de conexão na rede aberta antes de colocar seus cérebros de phishing em funcionamento e privá-los de seus dados confidenciais ou pior, dinheiro em sua conta bancária.

Embora o HTTPS seja eficaz até certo ponto, é um protocolo SSL que é conhecido por tornar os usuários seguros por ser inquebrável e amplamente seguro. Mas os ataques Man -In-The-Middle (MITM) encontraram maneiras de violar isso também.

É aqui que a técnica de fixação SSL entra em cena como uma das melhores práticas de segurança de aplicativos móveis . Falando especificamente sobre plataformas, é a solução ideal de segurança de aplicativos para iphone que faz um trabalho incrível resolvendo o problema.

Neste artigo, analisaremos os tipos e o processo de incorporação de SSL Pinning em aplicativos iOS para evitar esses ataques Man In The Middle. Um processo que é uma parte ativa da prática de teste de segurança móvel OWASP .

Tipos de Método de Fixação de Certificados SSL

Existem basicamente dois métodos para o teste de fixação SSL, conforme discutido abaixo:

Fixação de SSL

SSL-certificate

  • Fixar o certificado – Você pode baixar o certificado do servidor e agrupá-lo no aplicativo. No tempo de execução, o aplicativo compara o certificado do servidor com os que você incorporou.
  • Fixar a chave pública – Você pode recuperar a chave pública do certificado no código como uma string. No tempo de execução, o aplicativo compara a chave pública do certificado com uma chave codificada no código.

Fazer uma escolha entre os dois métodos iOS de fixação SSL depende da configuração do seu servidor e das necessidades individuais. Ao escolher a primeira opção, você terá que fazer upload do aplicativo quando o servidor alterar seu certificado ou ele deixará de funcionar. Ao escolher a segunda opção, você pode violar a política de rotação de chaves, pois a chave pública não será alterada.

Vamos agora dar uma olhada nas etapas para implementar a fixação SSL em seu aplicativo iOS.

*Observação: as etapas mencionadas abaixo seguem o processo de fixação do certificado iOS com o Swift.

Como implementar a fixação SSL em seu aplicativo iOS

1. NSURLSessão

No caso de NSURLSession, o método principal para lidar com a fixação de SSL é URLSession:didReceiveChallenge:completionHandler:delegate. Os desenvolvedores terão que definir a classe para conformar URLSessionDelegate e colar esta função na classe:

A função “ solicitaria credenciais do delegado em resposta a uma solicitação de autenticação do servidor remoto ”. O desenvolvedor do aplicativo para iPhone comparará os certificados do servidor com um salvo no pacote de aplicativos. Se os dois certificados forem idênticos, a autenticação deixará passar e o cliente poderá se conectar ao servidor.

2. Fixação do Certificado Alamofire

Alamofire é uma das bibliotecas mais famosas para redes HTTP na linguagem Swift. Ele vem com a funcionalidade integrada para fixação SSL no iOS Swift e é extremamente fácil de usar. Veja como criar um aplicativo iOS seguro com a fixação de certificado Alamofire.

Problemas comuns associados à implementação de fixação de SSL e como resolvê-los

Os especialistas em garantia de qualidade de renomadas agências de desenvolvimento de aplicativos testam regularmente aplicativos móveis em busca de vulnerabilidades de segurança, incluindo penetração total na rede. Mas existem muitas agências de teste de aplicativos que não se concentram nessas áreas com o mesmo entusiasmo. Eles parecem relutantes ao implementar essa solução específica de segurança do iPhone em seus aplicativos.

Aqui estão algumas das razões predominantes por trás disso –

  • Uma das maiores desvantagens da fixação de SSL no aplicativo iOS é sua implementação. O processo é complexo e pode forçar os desenvolvedores a escrever o código repetidamente e complicar o processo de construção do aplicativo .
  • A fixação de certificados SSL do iOS, que devem ser alterados regularmente, pode forçar os desenvolvedores a atualizar o binário do aplicativo sempre que o certificado for alterado.
  • Vários esforços devem ser feitos para proteger as maneiras de contornar a verificação SSL do iOS.

Observando as repercussões que a ausência do palco pode trazer, veja como algumas armadilhas comuns são evitadas por uma empresa confiável de desenvolvimento de aplicativos para iPhone .

Testando o pino

Ao contrário dos testes regulares de aplicativos em que você testa se tudo funciona ou não, o método para o teste de fixação SSL é que você terá que verificar se algo falha. Você terá que se concentrar em testar se o aplicativo cancela conexões potencialmente comprometidas. Se o aplicativo habilitar a comunicação com um único endpoint, o teste será tão simples quanto tornar a solicitação GET em um estado arbitrário. Idealmente, neste caso, o aplicativo deve cancelar a conexão e a solicitação deve falhar.

Como lidar com a alteração do certificado

A renovação de um certificado de domínio mantém o par de chaves pública/privada, mas nem sempre é esse o caso. Mas se você planejar o ciclo de atualização corretamente, poderá evitar o tempo de inatividade para os usuários finais.

Antes que o certificado SSL do iOS seja ativado no site, você deve fixá-lo no aplicativo, além do certificado atualmente ativo e, em seguida, liberar uma atualização. Quando seguimos esta etapa no Appinventiv para fazer um aplicativo iOS seguro , realizamos um teste rápido com o novo certificado temporariamente e testamos o aplicativo com os dois certificados fixados.

Perguntas frequentes sobre a fixação de SSL em aplicativos iOS

1. Onde armazenar dados confidenciais em um aplicativo iOS?

Os dados confidenciais do app devem sempre ser armazenados no iCloud ou Keychain no iOS ou até mesmo no banco de dados após a devida criptografia.

2. Como funciona o SSL?

A fixação de SSL é uma das dicas de segurança de aplicativos iOS mais comuns . Mas para entender o que isso significa, primeiro você precisa saber como o SSL funciona.

  • Um navegador tenta se conectar a um site protegido por SSL. O navegador então solicita que o servidor web se identifique.
  • O servidor Web então envia ao navegador sua cópia do certificado SSL.
  • O navegador verifica se o certificado SSL deve ser confiável. Se puder ser, uma mensagem é enviada para o servidor web.
  • O servidor Web envia de volta uma confirmação para iniciar a sessão criptografada SSL.
  • Os dados criptografados são finalmente compartilhados entre o navegador e o servidor web.

Pensamentos finais

Embora a fixação de SSL seja considerada segura e amplamente usada sempre que a criptografia for necessária, outra camada de proteção é sempre bem-vinda ao criar aplicativos de alto risco. A fixação SSL permite que você verifique a identidade do servidor no topo da cadeia SSL de verificação de confiança.

Com a fixação SSL, você pode recusar todas as conexões, exceto aquelas com o servidor designado cujo certificado SSL salvamos em nosso pacote local. Uma possível desvantagem disso é que você precisa atualizar o aplicativo sempre que a chave SSL do servidor for alterada.

Caso você também esteja planejando lançar um aplicativo iOS com fixação SSL, pode ser um bom começo consultar a melhor empresa de desenvolvimento de aplicativos iOS .