O design, os recursos que você oferece e até mesmo a experiência do usuário não são os aspectos mais cruciais no desenvolvimento de aplicativos iOS. A segurança do aplicativo é, talvez, o mais importante. No ambiente digital de hoje, o roubo de dados é uma grande preocupação. Se você duvida, basta ver o que Mark Zuckerberg tem feito em Washington nos últimos dias. O escândalo da Cambridge Analytica definitivamente abriu uma caixa de pandora em termos de roubo de dados e cibersegurança, e os desenvolvedores iOS devem agora, mais do que nunca, reforçar a segurança de seus aplicativos.
Por isso, hoje, vamos abordar as precauções essenciais de segurança iOS que todo desenvolvedor deve tomar para evitar que seu aplicativo seja alvo de hackers e coloque seus clientes em perigo. A Apple leva a segurança extremamente a sério e, como resultado, oferece muitas APIs que usam técnicas de hashing criptográfico e o iOS Keychain para tornar os aplicativos iOS seguros. Vamos aprender mais sobre esses recursos de segurança:
Keychain
O iOS Keychain é um banco de dados especializado para armazenar metadados e dados sensíveis do usuário, como chaves de criptografia, senhas, certificados e outras pequenas informações. O Keychain tem sido sugerido como a abordagem ideal para salvar pequenas quantidades de dados essenciais. Quando um aplicativo solicita acesso a um keychain, ele pode garantir que nenhum outro aplicativo em que não confie poderá acessar as informações armazenadas dentro. Keychains podem ser criados, adicionados, excluídos e editados. Se você tem assumido que utilizar métodos mais simples, como codificar senhas de usuário em base-64 no UserDefaults, é suficiente para proteger seu aplicativo, você deve reconsiderar.
Hackers podem facilmente contornar esse nível de segurança e roubar dados sensíveis. Quando se trata de segurança de aplicativos iOS, é imperativo que você empregue as tecnologias iOS mais avançadas disponíveis.
Chaves criptográficas, strings de texto e certificados são todos armazenados em keychains, além de senhas. A senha mestre pode ser usada para bloquear um keychain inteiro, dificultando a abertura por qualquer pessoa sem ela. Isso garante que apenas aplicativos autorizados, no seu caso, você, tenham acesso às informações armazenadas lá. Quando um usuário faz login, ele é solicitado a digitar uma senha do keychain, o que permite ao usuário acessar os dados salvos no keychain.
O keychain é desbloqueado assim que o dispositivo é aberto, tornando-o mais conveniente para os usuários. Isso implica que o usuário tem acesso enquanto ele ou ela estiver presente. Para tornar as coisas ainda mais fáceis, qualquer aplicativo em um keychain iCloud conceitualmente diferente pode acessar um único keychain. O keychain é limpo depois que um usuário faz logoff, excluindo quaisquer dados que possam ser reinseridos ou recuperados de um servidor da web.
Embora usar o keychain no Swift possa parecer uma tarefa trabalhosa, a Apple, como sempre, faz um excelente trabalho para facilitar as coisas para seus desenvolvedores. Ao utilizar um “Swift wrapper” do exemplo de código da Apple GenericKeychain, você pode evitar o uso de APIs de baixo nível e frameworks de segurança escritos em C.
Criptografia
Embora um keychain forneça um local seguro para armazenar dados críticos, você está longe de terminar com a segurança do iOS. Mesmo ao manter dados em um keychain, eles devem ser criptografados minuciosamente. Armazenar senhas diretamente nunca é uma boa ideia. Se um atacante obtivesse acesso ao keychain da Apple, ele poderia descobrir suas senhas e outras informações críticas expostas. É por isso que você precisa usar um método de criptografia forte.
Existem algumas opções para conseguir isso. Para começar, você pode usar o framework CommonCrypto da Apple. Criptografia e descriptografia são suportadas em um nível baixo em C. O CommonCrypto, no entanto, pode ser um pouco complicado de lidar, especialmente se você estiver usando Swift. Keychains, no entanto, oferecem um grau de complexidade para desenvolvedores iOS, apesar de seu nível de segurança e versatilidade. O CryptoSwift, uma biblioteca popular e crescente de métodos criptográficos convencionais e seguros escritos em Swift, é outra opção. O CryptoSwift é gratuito e de código aberto, e cobre a maioria dos seus problemas de segurança de aplicativos.
Hashing
Um hash criptográfico é um algoritmo e uma técnica que converte todos os seus dados em um valor de saída de tamanho fixo. Ele é projetado para ser difícil de reconstruir ou reverter uma boa função hash. Também deve ser único, sem que nenhum outro valor de entrada produza o mesmo resultado. Um protocolo chamado Hashable existe no Swift, e ele exige que cada elemento que esteja em conformidade com Hashable tenha um valor hash. Este valor hash é um número inteiro que é o mesmo que o anterior.
A função hash mais utilizada é o SHA-1. É um algoritmo do governo dos Estados Unidos. A partir de quaisquer dados com até 2**64 bits de comprimento, o SHA-1 gera um hash de 160 bits. Você também pode utilizar algoritmos como SHA-2, MD5 ou técnicas baseadas em curva elíptica. O outro componente do hashing é o “salting” (adição de “sal”), que torna seus dados ainda mais ilegíveis se um hacker conseguir acesso a eles. O “sal” são dados aleatórios que são alimentados em seus dados, transformando-os em uma “sopa de letrinhas” que ninguém consegue entender sem a chave. Como resultado, usar um “sal” aumenta a complexidade do hash, tornando a tarefa de um hacker ainda mais difícil.
O nível de risco de Android vs. iOS
O sistema operacional iOS da Apple tem sido há muito tempo considerado o mais seguro dos dois sistemas operacionais em alguns círculos. Por quê? O sistema operacional usado pela Apple é um sistema fechado. A Apple não disponibiliza seu código-fonte para desenvolvedores de aplicativos, e os proprietários de iPhone e iPad não podem alterar o código em seus dispositivos. Hackers terão mais dificuldade em encontrar vulnerabilidades em dispositivos iOS como resultado disso.
Dispositivos Android, por outro lado, são baseados em software de código aberto, permitindo que os usuários personalizem os sistemas operacionais de seus telefones e tablets. Se os proprietários mexerem demais, eles correm o risco de comprometer a segurança de seus dispositivos. Depois, há a questão dos próprios fabricantes. Hackers descobrirão uma vulnerabilidade no código se um fabricante de telefone lançar um novo dispositivo com uma alteração no sistema operacional Android.
Como o Android alimenta tantos dispositivos móveis hoje, ele também é mais frequentemente atacado por hackers. A proeminência global do sistema operacional Android o torna um alvo mais atraente para hackers. Como resultado, os smartphones Android são mais vulneráveis a malwares e vírus que esses criminosos espalham.
No entanto, esta não é a história completa. Embora o iOS seja considerado mais seguro, hackers ainda podem ter como alvo iPhones e iPads. Proprietários de dispositivos Android e iOS devem estar cientes de possíveis spywares e vírus e devem ter cautela ao instalar programas de lojas de aplicativos de terceiros. Baixar programas de sites confiáveis como o Google Play e a Apple App Store, que avaliam os aplicativos que oferecem, é a opção mais segura.
Depois, há os ataques de engenharia social, nos quais os hackers tentam persuadir as vítimas a entregar credenciais de login, acesso a contas bancárias e outras informações pessoais. Não importa qual sistema operacional móvel você esteja usando: tanto o iOS quanto o Android são suscetíveis a tentativas de phishing.
Atualizações e patches de segurança para Android e iOS estão disponíveis
Você está procurando uma maneira de manter seu telefone ou tablet Android seguro? Sempre atualize seu Android OS em seus dispositivos móveis para a versão mais recente. O Android é atualizado regularmente. É tentador adiar a instalação, especialmente quando a vida fica agitada. Essas atualizações, no entanto, são projetadas para ajudar a defender seus dispositivos Android contra os riscos de segurança mais recentes. Ignorar essas atualizações pode comprometer a segurança do seu telefone ou tablet. As atualizações do iOS da Apple geralmente são eventos mais significativos, incentivando os proprietários de iPhone e iPad a instalá-las assim que estiverem disponíveis.
Os proprietários de dispositivos Android e iOS podem, é claro, habilitar atualizações automáticas em seus dispositivos. Quando as atualizações do Android ou iOS estiverem disponíveis, seus dispositivos serão atualizados automaticamente para as versões mais recentes de seus sistemas operacionais.
Integração de hardware
Grande parte da segurança de um dispositivo Android é determinada por seu hardware. Simplificando, certos fabricantes fazem um trabalho melhor para garantir que as medidas de segurança integradas do Android funcionem corretamente. A Samsung é um excelente exemplo. Todos os telefones, tablets e dispositivos vestíveis da Samsung vêm com o sistema de segurança Knox pré-instalado. Quando um usuário liga um dispositivo móvel Samsung, esta plataforma permite um procedimento de inicialização mais seguro, impedindo o lançamento de aplicativos ilegais.
Qual é a sua melhor aposta? Mantenha-se na Google Play Store para Android. Existem milhares de aplicativos disponíveis no Google Play. Simplesmente não há necessidade de obter aplicativos Android de qualquer outro lugar. Você pode aumentar suas chances de instalar um programa infectado se sair do Google Play. O mesmo pode ser dito sobre o iOS. A Apple App Store é o melhor lugar para procurar.
Android vs. iOS: Como o sistema operacional móvel de cada plataforma afeta a segurança?
Android é um sistema operacional móvel.
- Popularidade: Android é um sistema operacional muito popular. Como resultado, os desenvolvedores estão continuamente criando novos aplicativos para funcionar na plataforma. Isso geralmente é benéfico para os usuários. Hackers criam softwares que infectam seus dispositivos móveis, é aí que surge o problema. O Google Play tem um sistema de revisão de aplicativos em vigor.
- Lamentavelmente, o procedimento é consideravelmente menos rigoroso do que aquele que os desenvolvedores devem seguir ao enviar programas para a App Store da Apple. É, portanto, mais simples para aplicativos maliciosos chegarem à Google Play Store, e para os consumidores instalarem um sem saber. Uma das principais preocupações é que o usuário final pode autorizar a instalação de software de “Fontes Desconhecidas” em um dispositivo Android. Isso implica que você pode instalar software que não seja da Google PlayStore em seu dispositivo Android. O programa, ou APK, pode ser baixado e instalado diretamente de um site, evitando o processo de revisão da Google PlayStore.
- Dispositivos Android são de código aberto, o que significa que seu código-fonte pode ser modificado por seus proprietários. Os usuários que desejam a liberdade de personalizar a forma como seus dispositivos móveis operam gostarão disso. No entanto, isso pode tornar os smartphones Android vulneráveis a hackers. Os usuários podem, sem querer, criar uma oportunidade para hackers ao modificar o código-fonte de seu dispositivo.
iOS é o sistema operacional móvel da Apple.
Aqui está uma olhada no sistema operacional iOS da Apple.
- Controles mais rigorosos: Conseguir aplicativos na App Store é mais desafiador para os desenvolvedores. Isso se deve ao procedimento de triagem mais severo. Como resultado, é menos provável que um programa malicioso encontre seu caminho para a loja da Apple. Como o sistema operacional iOS é usado por menos dispositivos móveis, ele é um alvo menos atraente para hackers. Isso faz sentido: ao focar mais de seus ataques no sistema operacional Android mais popular, hackers e criminosos cibernéticos podem garantir um número maior de vítimas.
Conclusão
Há uma série de técnicas de segurança adicionais que você pode usar para manter o desenvolvimento de seus aplicativos iOS atualizado com as mais recentes políticas de segurança, mas o keychain e o hashing são a base da segurança iOS. Este artigo serve como um ponto de partida para chamar sua atenção para a segurança de aplicativos iOS. Com a quantidade de informações que revelamos sobre nós mesmos na internet, especialmente por meio de aplicativos, os desenvolvedores agora têm um enorme desafio. Felizmente, existem várias excelentes ferramentas, algoritmos, APIs e bibliotecas disponíveis para ajudá-lo em seu trabalho.