Back home

Cifrado asimétrico, https, principio de firma iOSAPP

Cifrado asimétrico, https, recopilación de datos del principio de firma iOSAPP

Cifrado asimétrico, https, certificado iOS

He leído algunas cosas sobre cifrado, certificados, RSA y https antes, pero nunca las entendí claramente. No los entiendo muy claramente. Los solucionaré hoy.

Cifrado

El cifrado actual se divide en: 对称加密算法(symmetric key algorithms) y 非对称加密算法(asymmetric key algorithms)

En 对称加密算法, la clave utilizada para el cifrado y la clave utilizada para el descifrado son la misma. En otras palabras, se utiliza la misma clave para cifrar y descifrar. Por lo tanto, si el algoritmo de cifrado simétrico quiere garantizar la seguridad, la clave debe mantenerse en secreto y sólo puede ser conocida por la persona que la utiliza y no puede revelarse al mundo exterior.

密钥, generalmente una cadena o número, se pasa al algoritmo de cifrado/descifrado durante el cifrado o descifrado.

En 非对称加密算法, la clave utilizada para el cifrado y la clave utilizada para el descifrado son diferentes.

Entonces, ¿cuáles son las diferencias entre 对称加密算法 y 非对称加密算法 cuando se usan? Por ejemplo, este escenario: Xiao Ming y Xiao Hong se comunican entre sí, pero no quieren que otros sepan el contenido de la carta. Xiao Ming puede usar 对称加密算法 o 非对称加密算法 para cifrar el contenido. Si se usa 对称加密算法, dado que la clave utilizada para el cifrado y la clave utilizada para el descifrado son las mismas, ¿cómo le dice Xiao Ming a Xiao Hong la clave? Algunas personas dirán que si vuelve a cifrar la contraseña, aún tendrá que transmitirla, por lo que siempre existe el problema de la filtración de la contraseña durante el proceso de transmisión.

Entonces, ¿qué hacer con 非对称加密算法?

Primero, Xiaohong genera la clave pública y la clave privada, conserva la clave privada y publica la clave pública. Xiaoming utiliza la clave pública para cifrar el contenido de la carta y luego la transmite a Xiaohong. Dado que solo Xiaohong tiene la clave privada, incluso si otros interceptan el contenido de la carta, no podrán descifrarla.

Debido a que no es necesario difundir la clave privada, otros no la interceptarán debido a la difusión.

La clave pública y la clave privada en 非对称加密算法 aparecen en pares. La clave pública y la clave privada son esencialmente iguales, es decir, dos claves secretas a y b se generan mediante un algoritmo. Cuando publica a, a se convierte en la clave pública, y cuando se publica b, b se convierte en la clave pública. Las claves públicas y privadas son relativas y las dos mismas no especifican cuál debe ser la clave pública o la privada.

  • La clave pública y la clave privada aparecen en pares
  • La clave pública se llama clave pública y la clave que solo usted conoce se llama clave privada.
  • Los datos cifrados con la clave pública sólo pueden ser descifrados mediante la clave privada correspondiente.
  • Los datos cifrados con una clave privada sólo pueden ser descifrados mediante la clave pública correspondiente
  • Si se puede descifrar con la clave pública, se deberá cifrar con la clave privada correspondiente.
  • Si se puede descifrar con la clave privada, se deberá cifrar con la clave pública correspondiente.

Dos usos de 非对称加密算法

  1. Lograr una transmisión segura de datos Para lograr una transmisión segura de datos, por supuesto, los datos deben estar cifrados. Si utiliza un algoritmo de cifrado simétrico y utiliza la misma clave para cifrar y descifrar, además de guardarlo usted mismo, la otra parte también debe conocer esta clave para descifrar los datos. Si pasa la clave junto con ella, existe la posibilidad de que se filtre la contraseña. Si utilizamos un algoritmo asimétrico, el proceso es el siguiente:
1. Primero, el receptor genera un par de claves, a saber, clave privada y clave pública;
2. Luego, el receptor envía la clave pública al remitente;
3. El remitente utiliza la clave pública recibida para cifrar los datos y luego los envía al receptor;
4. Después de recibir los datos, el receptor utiliza su propia clave privada para descifrarlos.
Ya que en el algoritmo asimétrico los datos cifrados por la clave pública deben ser descifrados con la clave privada correspondiente, y la clave privada sólo es conocida por el propio destinatario, garantizando así la seguridad de la transmisión de datos.
  1. Firmar información digitalmente Además de garantizar la transmisión segura de datos, otro uso del sistema de clave pública es firmar datos. Normalmente se utilizan “firmas digitales” para verificar la identidad del remitente y ayudar a proteger la integridad de los datos.

    Por ejemplo: un remitente A quiere enviar información a todos y usa su propia clave privada para cifrar la información, es decir, firmar. De esta manera, todos los que reciben la información pueden usar la clave pública del remitente para verificar y confirmar que la información fue enviada por A. (Porque solo la información obtenida por A usando la firma de clave privada se puede descifrar con esta clave pública) Usando firmas digitales, se pueden confirmar dos puntos:

    1. Asegúrese de que la información esté firmada y enviada por el propio firmante, y que el firmante no pueda negarla o le resulte difícil negarla.
    2. Se garantiza que la información no ha sido modificada de ninguna forma desde el momento de su emisión hasta el momento de su recepción. La razón por la que se pueden confirmar estos dos puntos es que lo que se puede descifrar con la clave pública debe cifrarse con la clave privada correspondiente, y la clave privada solo la posee el firmante.

Nota: Las firmas digitales utilizan claves privadas, y la información cifrada con claves privadas se denomina firmas digitales, porque las claves privadas solo las posee usted, lo que equivale a un sello oficial. La clave privada utilizada para la firma digital es como el sello de acero de un certificado de graduación. Sólo se reconocerá como auténtico un certificado con un sello de acero.

Entonces, ¿se puede utilizar una clave pública para la firma digital? Dado que la clave pública es pública y está disponible para todos, no tiene sentido utilizarla para firmas digitales. Por el contrario, ¿se puede utilizar la clave privada para cifrar datos y lograr una transmisión de datos segura? La respuesta es no, porque la clave pública es pública y todos pueden obtenerla, y todos pueden descifrar la información cifrada por la clave privada.

Organicémoslo de nuevo: A través del algoritmo se generan dos claves secretas, una se hace pública y se denomina clave pública; la otra la guarda uno mismo y se llama clave privada; la información es cifrada por uno mismo y liberada, lo que se denomina firma digital, porque solo se puede descifrar la clave pública correspondiente a la clave privada (equivalente al sello oficial). Quienes saben descifrar saben, naturalmente, que sólo yo puedo enviar esta información, lo que garantiza al editor de la información.

Otros usan la clave pública para cifrar información y solo yo puedo descifrarla porque tengo la clave privada, que permite la transmisión segura de datos.

Habiendo dicho todo esto, me pregunto si comprende la relación y el uso de las claves públicas y privadas.

El siguiente contenido está extraído de otros artículos y también puede ayudarle a comprender:

Si solo usa el algoritmo de cifrado asimétrico unilateralmente, en realidad hay dos formas para diferentes propósitos:

La primera es una firma, que utiliza cifrado de clave privada y descifrado de clave pública. Se utiliza para permitir que todos los propietarios de claves públicas verifiquen la identidad del propietario de la clave privada y para evitar que se altere el contenido publicado por el propietario de la clave privada. Sin embargo, no se utiliza para garantizar que otros no obtengan el contenido.
Cualquiera que tenga la clave pública del remitente puede verificar la exactitud de la firma.
El segundo tipo es el cifrado, que utiliza la clave pública para cifrar y la clave privada para descifrar. Se utiliza para publicar información para el propietario de la clave pública. Esta información puede ser manipulada por otros, pero otros no pueden obtenerla. Si A quiere enviar datos seguros y confidenciales a B, entonces A y B deben tener cada uno una clave privada. A primero usa la [clave pública] de B para cifrar los datos y luego usa su propia clave privada para cifrar los datos cifrados. Finalmente, se envía a B, lo que garantiza que el contenido no será leído ni manipulado.
Cualquiera que conozca la clave pública del destinatario puede enviarle un mensaje.
Resumen: las claves públicas se utilizan comúnmente para cifrar mensajes y verificar firmas digitales (es decir, descifrar).

1. Firma digital
La tecnología de firma digital es la aplicación de dos tecnologías: "cifrado y descifrado de clave asimétrica" y "resumen digital". Cifra la información del resumen con la clave privada del remitente y la transmite al destinatario junto con el texto original. El receptor solo puede usar la clave pública del remitente para descifrar la información resumida cifrada y luego usar la función HASH para generar una información resumida para el texto original recibido, que se compara con la información resumida descifrada. Si son iguales significa que la información recibida está completa y no ha sido modificada durante el proceso de transmisión. De lo contrario, significa que la información ha sido modificada, por lo que la firma digital puede verificar la [integridad] de la información.
  El proceso de firma digital es el siguiente: texto sin formato --> operación hash --> resumen --> cifrado de clave privada --> firma digital
El proceso de verificación de firma digital es el siguiente: firma digital --> descifrado de clave pública --> resumen --> texto original hash --> resumen de comparación

Las firmas digitales tienen dos funciones:

Asegúrese de que el mensaje esté efectivamente firmado y enviado por el remitente, porque otros no pueden falsificar la firma del remitente. (Fuente confiable)
Asegúrese de que el mensaje esté completo y no haya sido alterado (integridad).
Nota: Las firmas digitales solo pueden verificar la integridad de los datos. Que los datos en sí (es decir, el texto original) estén cifrados no está dentro del alcance de control de la firma digital.


firma digital
Ahora que sabemos que existe el cifrado asimétrico, ¿qué pasa con las firmas digitales?

La función de una firma digital es que marco un determinado dato para indicar que apruebo los datos (firmé mi nombre) y luego se los envío a otros. Otros pueden saber que los datos han sido autenticados por mí y que no han sido alterados.

Estos artículos también pueden ayudarle a comprender: Notas de criptozoología: http://www.ruanyifeng.com/blog/2006/12/notes_on_cryptography.html ¿Qué es una firma digital? : http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html Principio del algoritmo RSA (1): http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html Comprensión de las claves públicas y privadas: https://songlee24.github.io/2015/05/03/public-key-and-private-key/ Las claves públicas, las claves privadas y las firmas digitales se entienden mejor así: https://blog.csdn.net/21aspnet/article/details/7249401

https y ataques de intermediario

El protocolo https es el protocolo http+ssl. El proceso de conexión se muestra en la siguiente figura:

Echa un vistazo a este artículo específicamente: Proceso de conexión HTTPS y secuestro de ataque de intermediario: http://netsecurity.51cto.com/art/201712/559836.htm HTTPS Serie 2 en profundidad (cifrado y certificado): https://www.jianshu.com/p/b4c775a26068 HTTP, HTTP2.0, SPDY, HTTPS Algunas cosas que debes saber: http://web.jobbole.com/87695/

El principio del certificado iOS y la firma de aplicaciones

Después de comprender los puntos anteriores, es sencillo comprender los principios de los certificados de iOS y la firma de aplicaciones. Si no comprende lo que hay arriba, probablemente tampoco comprenda lo que hay debajo.

Estos dos artículos lo han dejado muy claro: Cómo entender el mecanismo de certificado de firma de iOS: https://blog.gocy.tech/2017/04/24/iOS-Signing/ El principio de la firma de la aplicación iOS: http://wereadteam.github.io/2017/03/13/Signature/