Criptografia assimétrica, https, princípio de assinatura iOSAPP
Criptografia assimétrica, https, coleta de dados de princípio de assinatura iOSAPP
Criptografia assimétrica, https, certificado iOS
Já li algumas coisas sobre criptografia, certificados, RSA e https antes, mas nunca as entendi claramente. Eu não os entendo muito claramente. Vou resolvê-los hoje.
Criptografia
A criptografia atual é dividida em: 对称加密算法(symmetric key algorithms) e 非对称加密算法(asymmetric key algorithms)
No 对称加密算法, a chave usada para criptografia e a chave usada para descriptografia são as mesmas. Em outras palavras, a mesma chave é usada para criptografar e descriptografar. Portanto, se o algoritmo de criptografia simétrica deseja garantir a segurança, a chave deve ser mantida em segredo e só pode ser conhecida pela pessoa que a utiliza e não pode ser divulgada ao mundo exterior.
密钥, geralmente uma string ou número, é passado para o algoritmo de criptografia/descriptografia durante a criptografia ou descriptografia.
No 非对称加密算法, a chave usada para criptografia e a chave usada para descriptografia são diferentes.
Então, quais são as diferenças entre 对称加密算法 e 非对称加密算法 quando usados?
Por exemplo, este cenário:
Xiao Ming e Xiao Hong se comunicam, mas não querem que outras pessoas saibam o conteúdo da carta. Xiao Ming pode usar 对称加密算法 ou 非对称加密算法 para criptografar o conteúdo.
Se 对称加密算法 for usado, uma vez que a chave usada para criptografia e a chave usada para descriptografia são as mesmas, como Xiao Ming informa a chave a Xiao Hong?
Algumas pessoas dirão que se você criptografar novamente a senha, ainda terá que transmiti-la, então sempre há o problema de vazamento de senha durante o processo de transmissão.
Então, o que fazer com 非对称加密算法?
Primeiro, Xiaohong gera a chave pública e a chave privada, mantém a chave privada e publica a chave pública. Xiaoming usa a chave pública para criptografar o conteúdo da carta e depois transmite a carta para Xiaohong. Como apenas Xiaohong possui a chave privada, mesmo que outros interceptem o conteúdo da carta, eles não poderão quebrá-la.
Como a chave privada não precisa ser divulgada, ela não será interceptada por terceiros devido à disseminação.
A chave pública e a chave privada em 非对称加密算法 aparecem em pares. A chave pública e a chave privada são essencialmente iguais, ou seja, duas chaves secretas a e b são geradas através de um algoritmo. Quando você publica a, a se torna a chave pública, e quando b é publicado, b se torna a chave pública. As chaves públicas e as chaves privadas são relativas e as duas não especificam qual deve ser a chave pública ou a chave privada.
- A chave pública e a chave privada aparecem em pares
- A chave pública é chamada de chave pública, e a chave que só você conhece é chamada de chave privada.
- Os dados criptografados com a chave pública só podem ser descriptografados pela chave privada correspondente.
- Os dados criptografados com uma chave privada só podem ser descriptografados pela chave pública correspondente
- Se puder ser descriptografado com a chave pública, deverá ser criptografado pela chave privada correspondente.
- Se puder ser descriptografado com a chave privada, deverá ser criptografado pela chave pública correspondente.
Dois usos de 非对称加密算法
- Obtenha transmissão segura de dados Para conseguir uma transmissão segura de dados, é claro que os dados devem ser criptografados. Se você usar um algoritmo de criptografia simétrica e usar a mesma chave para criptografar e descriptografar, além de salvá-lo você mesmo, a outra parte também deverá conhecer essa chave para descriptografar os dados. Se você passar a chave junto com ela, existe a possibilidade de vazamento de senha. Se usarmos um algoritmo assimétrico, o processo é o seguinte:
1. Primeiro, o receptor gera um par de chaves, nomeadamente chave privada e chave pública;
2. Em seguida, o destinatário envia a chave pública ao remetente;
3. O remetente usa a chave pública recebida para criptografar os dados e depois os envia ao destinatário;
4. Após receber os dados, o receptor usa sua própria chave privada para descriptografá-los.
Já no algoritmo assimétrico os dados criptografados pela chave pública devem ser descriptografados com a chave privada correspondente, sendo que a chave privada só é conhecida pelo próprio destinatário, garantindo assim a segurança na transmissão dos dados.
-
Assinar informações digitalmente Além de garantir a transmissão segura de dados, outro uso do sistema de chave pública é assinar dados. Normalmente, “assinaturas digitais” são usadas para verificar a identidade do remetente e ajudar a proteger a integridade dos dados.
Por exemplo: um remetente A deseja enviar alguma informação para todos, e utiliza sua própria chave privada para criptografar a informação, ou seja, para assinar. Desta forma, todos que recebem a informação podem utilizar a chave pública do remetente para verificar e confirmar se a informação foi enviada por A. (Porque apenas a informação obtida por A utilizando a assinatura de chave privada pode ser decifrada com esta chave pública) Utilizando assinaturas digitais, dois pontos podem ser confirmados:
- Certifique-se de que as informações sejam assinadas e enviadas pelo próprio signatário, e que o signatário não possa negar ou tenha dificuldade em negar.
- É garantido que as informações não foram modificadas de forma alguma desde o momento da emissão até o momento do recebimento. A razão pela qual estes dois pontos podem ser confirmados é que o que pode ser descriptografado com a chave pública deve ser criptografado com a chave privada correspondente, e a chave privada é mantida apenas pelo signatário.
Nota: As assinaturas digitais utilizam chaves privadas, e as informações criptografadas com chaves privadas são chamadas de assinaturas digitais, porque as chaves privadas são detidas apenas por você, o que equivale a um selo oficial. A chave privada usada para assinatura digital é igual ao selo de aço de um certificado de graduação. Somente um certificado com selo de aço será reconhecido como genuíno.
Então você pode usar uma chave pública para assinatura digital? Como a chave pública é pública e está disponível para todos, não faz sentido usar a chave pública para assinaturas digitais. Por outro lado, a chave privada pode ser usada para criptografar dados para obter uma transmissão segura de dados? A resposta é não, porque a chave pública é pública e pode ser obtida por todos, e todos podem descriptografar as informações criptografadas pela chave privada.
Vamos organizar novamente: Duas chaves secretas são geradas através do algoritmo, uma é tornada pública e é chamada de chave pública; a outra é mantida por ele mesmo e é chamada de chave privada; a informação é criptografada pelo próprio e divulgada, o que é chamado de assinatura digital, pois somente a chave pública correspondente à chave privada (equivalente ao selo oficial) pode ser descriptografada. Quem consegue decifrar naturalmente sabe que só eu posso enviar essa informação, o que garante o editor da informação.
Outros usam a chave pública para criptografar informações, e só eu posso descriptografá-las, porque possuo a chave privada, que permite a transmissão segura dos dados.

Dito isso, me pergunto se você entende a relação e o uso de chaves públicas e chaves privadas?
O conteúdo a seguir foi extraído de outros artigos e também pode ajudá-lo a entender:
Se você usar o algoritmo de criptografia assimétrica unilateralmente, na verdade existem duas maneiras para finalidades diferentes:
A primeira é uma assinatura, que utiliza criptografia de chave privada e descriptografia de chave pública. É usado para permitir que todos os proprietários de chaves públicas verifiquem a identidade do proprietário da chave privada e para evitar que o conteúdo publicado pelo proprietário da chave privada seja adulterado. No entanto, não é utilizado para garantir que o conteúdo não seja obtido por terceiros.
Qualquer pessoa com a chave pública do remetente pode verificar a exatidão da assinatura.
O segundo tipo é a criptografia, usando a chave pública para criptografar e a chave privada para descriptografar. Usado para publicar informações ao proprietário da chave pública. Estas informações podem ser adulteradas por terceiros, mas não podem ser obtidas por terceiros. Se A deseja enviar dados seguros e confidenciais para B, então A e B devem ter, cada um, uma chave privada. A primeiro usa a [chave pública] de B para criptografar os dados e, em seguida, usa sua própria chave privada para criptografar os dados criptografados. Por fim, é enviado para B, o que garante que o conteúdo não será lido ou adulterado.
Qualquer pessoa que conheça a chave pública do destinatário pode enviar uma mensagem ao destinatário.
Resumo: As chaves públicas são comumente usadas para criptografar mensagens e verificar assinaturas digitais (ou seja, descriptografar).
1. Assinatura digital
A tecnologia de assinatura digital é a aplicação de duas tecnologias: “criptografia e descriptografia de chave assimétrica” e “resumo digital”. Ele criptografa as informações resumidas com a chave privada do remetente e as transmite ao destinatário junto com o texto original. O destinatário só pode usar a chave pública do remetente para descriptografar as informações resumidas criptografadas e, em seguida, usar a função HASH para gerar informações resumidas para o texto original recebido, que é comparado com as informações resumidas descriptografadas. Se forem iguais, significa que a informação recebida está completa e não foi modificada durante o processo de transmissão. Caso contrário, significa que a informação foi modificada, para que a assinatura digital possa verificar a [integridade] da informação.
O processo de assinatura digital é o seguinte: texto simples -> operação hash -> resumo -> criptografia de chave privada -> assinatura digital
O processo de verificação de assinatura digital é o seguinte: assinatura digital -> descriptografia de chave pública -> resumo -> texto original hash -> resumo de comparação
As assinaturas digitais têm duas funções:
Certifique-se de que a mensagem esteja realmente assinada e enviada pelo remetente, pois outras pessoas não podem falsificar a assinatura do remetente. (Fonte confiável)
Certifique-se de que a mensagem esteja completa e não tenha sido adulterada (integridade).
Nota: As assinaturas digitais só podem verificar a integridade dos dados. O fato de os próprios dados (ou seja, o texto original) serem criptografados não está dentro do escopo de controle da assinatura digital.
assinatura digital
Agora que sabemos que existe criptografia assimétrica, e as assinaturas digitais?
A função da assinatura digital é marcar um determinado dado para indicar que aprovo os dados (assinei meu nome) e depois envio para outras pessoas. Outros podem saber que os dados foram autenticados por mim e que não foram adulterados.
Esses artigos também podem ajudá-lo a entender: Notas de criptozoologia: http://www.ruanyifeng.com/blog/2006/12/notes_on_cryptography.html O que é uma assinatura digital? : http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html Princípio do algoritmo RSA (1): http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html Noções básicas sobre chaves públicas e privadas: https://songlee24.github.io/2015/05/03/public-key-and-private-key/ Chaves públicas, chaves privadas e assinaturas digitais são melhor compreendidas assim: https://blog.csdn.net/21aspnet/article/details/7249401
https e ataques man-in-the-middle
O protocolo https é o protocolo http+ssl. O processo de conexão é mostrado na figura abaixo:

Dê uma olhada neste artigo especificamente: Processo de conexão HTTPS e sequestro de ataque man-in-the-middle: http://netsecurity.51cto.com/art/201712/559836.htm HTTPS Série 2 detalhado (criptografia e certificado): https://www.jianshu.com/p/b4c775a26068 HTTP, HTTP2.0, SPDY, HTTPS Algumas coisas que você deve saber: http://web.jobbole.com/87695/
O princípio do certificado iOS e assinatura de aplicativos
Depois de compreender os pontos acima, é simples entender os princípios dos certificados iOS e da assinatura de aplicativos. Se você não entende o que está acima, provavelmente também não entende o que está abaixo.
Esses dois artigos deixaram isso muito claro: Como entender o mecanismo de certificado de assinatura do iOS: https://blog.gocy.tech/2017/04/24/iOS-Signing/ O princípio da assinatura do aplicativo iOS: http://wereadteam.github.io/2017/03/13/Signature/
What to read next
Want more posts about iOS?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #iOS?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home