Mecanismo de firma en iOS
Hablando del mecanismo de firma, primero debemos comprender el cifrado y descifrado. El archivo de firma es el proceso de cifrado y descifrado.
El cifrado es el proceso de convertir información de texto plano en contenido de texto cifrado ilegible, haciéndolo ilegible.
El descifrado es el proceso de restaurar el texto cifrado a contenido legible normal a través de objetos especiales. En este proceso, el método que utilizamos es el algoritmo de cifrado y descifrado.
El cifrado se divide en cifrado simétrico y cifrado asimétrico (cifrado de clave pública).
El cifrado simétrico significa que el cifrado y el descifrado utilizan el mismo conjunto de claves.
Los algoritmos de cifrado simétrico comunes son:
Como se muestra en la siguiente figura, cuando se utiliza simétrico cifrado, definitivamente habrá un problema de distribución de claves. Supongamos que Alice envía un mensaje cifrado usando un cifrado simétrico a Bob. Solo enviando la clave a Bob puede completar el descifrado. Durante el proceso de envío de la clave, Eve puede robar la. clave, Eve finalmente puede completar el descifrado.
El cifrado y el descifrado no utilizan la misma clave, que es un algoritmo de cifrado asimétrico, también conocido como cifrado de clave pública.
En la criptografía de clave pública, la clave se divide en claves de cifrado; Existen dos tipos de claves y claves de descifrado. No son la misma clave. La criptografía de clave pública también se llama criptografía asimétrica (Criptografía Asimétrica)
En criptografía de clave pública:
El cifrado. La clave es generalmente pública, por lo que la clave se llama clave pública.
La clave de descifrado la guarda el destinatario del mensaje y no puede hacerse pública, por lo que también se la llama clave privada (clave privada). La clave pública y la clave privada tienen una correspondencia uno a uno y no se pueden generar por separado. Un par de claves públicas y privadas se denominan colectivamente par de claves
Esto puede resolver el problema de la distribución de claves secretas. El problema es el que se muestra a continuación:
Análisis de la imagen de arriba:
Si hay un tercero escuchando a escondidas, solo los pasos 2 y 4 pueden monitorear los datos, porque la clave pública de Bob es público y cualquiera puede obtenerlo, por lo que no tiene que preocuparse por quién los obtiene en el segundo paso. En el paso 4, si los datos son interceptados por un tercero, lo que ve también son los datos cifrados. Si no tiene la clave privada de Bob, tampoco tiene forma de conocer el verdadero contenido del mensaje. E incluso si alterara el mensaje cifrado, no tendría sentido.
Aunque el cifrado asimétrico soluciona el problema de distribución de claves, su velocidad de cifrado y descifrado es lenta. A continuación resumimos las ventajas y desventajas del cifrado simétrico y asimétrico:
Sistema de criptografía híbrida, es un. método que combina las ventajas de la criptografía simétrica y la criptografía de clave pública:
Una clave temporal generada aleatoriamente para esta comunicación como clave de la criptografía simétrica, utilizada para cifrar mensajes y aumentar la velocidad
p>;Primero, el remitente del mensaje debe tener la clave pública del receptor del mensaje; generar una clave de sesión como clave de cifrado simétrico para cifrar el mensaje; utilizar la clave pública del receptor del mensaje para cifrar la clave de sesión; primero 2 El resultado del cifrado generado en este paso se envía al destinatario del mensaje al mismo tiempo.
El contenido enviado incluye
el mensaje cifrado con la clave de sesión (método de cifrado: cifrado simétrico)
la clave de sesión cifrada con la clave pública (método de cifrado : criptografía de clave pública)
1 El destinatario del mensaje usa su clave privada para descifrar la clave de sesión
2 Luego usa la clave de sesión descifrada en el paso 1 para descifrar el mensaje
p>
Proceso de envío, proceso de cifrado
Proceso de recepción, proceso de descifrado
1. Bob usa su clave privada para descifrar la clave de sesión (usando criptografía de clave pública para el descifrado, es decir es decir, descifrado de contraseña asimétrico)
2. Bob usa la clave de sesión para descifrar el mensaje enviado (usando descifrado de contraseña simétrico)
El algoritmo de cifrado anterior resuelve el problema de la transmisión de datos Problemas de seguridad Entonces no se puede verificar la integridad de los datos, es decir, si mis datos han sido modificados, porque todos pueden obtener la clave pública si un intermediario intercepta el mensaje y cambia el contenido. Entonces, ¿cómo verificamos si este mensaje ha cambiado?
La función hash unidireccional, también conocida como función hash unidireccional, consiste en cambiar una cadena de mensaje de entrada de cualquier longitud a una cadena fija. longitud de la cadena de salida y Una función de la cadena de entrada que es difícil de obtener de la cadena de salida. Esta cadena de salida se denomina valor hash del mensaje. Generalmente se utiliza para generar resúmenes de mensajes, cifrado de claves, etc.
La función hash unidireccional puede calcular el valor hash en función del contenido del mensaje. La longitud del valor hash no tiene nada que ver con la longitud del mensaje. mensaje, independientemente de si el mensaje es de 1 bit, 10M, 100G, la función hash unidireccional calculará un valor hash de longitud fija.
La función hash unidireccional también se denomina función de resumen de mensajes. El valor hash generado por la función hash también se denomina resumen de mensajes o huella digital.
MD4 y MD5 generan 128. Valores hash de bits MD es la abreviatura de Message Digest. Actualmente no es seguro. Puede utilizar el comando md5 de forma predeterminada en terminales Mac.
SHA-1 genera valores hash de 160 bits. actualmente no son seguros
SHA-2 SHA-256, SHA-384 y SHA-512, las longitudes del valor hash son 256 bits, 384 bits y 512 bits respectivamente
Marca SHA-3 nuevo estándar
Los valores hash generados por diferentes datos son diferentes Siempre que cambie un archivo, su valor hash cambiará. Para determinar si nuestros datos han cambiado, simplemente compare los dos valores hash. Para ver si son iguales, la función de inicio de sesión que usamos a menudo utiliza el valor generado por una única función hash para guardar la contraseña del usuario y evitar que terceros la cambien.
Conocemos la tecnología de antimanipulación de datos Durante el proceso de transmisión de datos, generamos un valor hash para los datos y lo enviamos al receptor junto con los datos enviados. esta vez, regenera el valor hash a partir de los datos recibidos y luego lo compara con el valor hash recibido para determinar si los datos se han modificado.
Hasta ahora, hemos resuelto la confidencialidad de los datos transmitidos mediante tecnología de criptografía mixta y hemos determinado la coherencia de los datos mediante una única función hash. Sin embargo, todavía no hemos resuelto el problema de la interceptación y la manipulación mediante. el intermediario, porque el intermediario de la función hash también puede Después de regenerarlo, hablaremos sobre la firma digital a continuación, que puede autenticar la autenticidad del remitente del mensaje.
Una firma digital (también conocida como firma digital de clave pública) es una cadena digital que solo puede ser generada por el remitente del mensaje y no puede ser falsificada por otros. Esta cadena digital también es una garantía de. la autenticidad del mensaje enviado por el remitente del mensaje. Una prueba válida.
Es un método similar a una firma física ordinaria escrita en papel, pero se implementa utilizando tecnología en el campo del cifrado de clave pública para identificar información digital.
Un conjunto de firmas digitales suele definir dos operaciones complementarias, una de firma y otra de verificación. La firma digital es la aplicación de tecnología de cifrado de clave asimétrica y tecnología de resumen digital.
Para decirlo sin rodeos, firmar con la clave privada del remitente del mensaje es una firma digital
En una firma digital, cualquiera puede usar la clave pública para verificar la firma
En la tecnología de firma digital existen los siguientes 2 comportamientos:
La generación de una firma la realiza el remitente del mensaje, generada a través de la "clave de firma"
Verificación la firma la realiza el receptor del mensaje Completado, verificado mediante "Clave de verificación"
Dado que la firma digital está firmada con la clave privada del remitente del mensaje, la clave privada del remitente del mensaje solo es propiedad por sí mismo y no por otros, por lo que pasamos la clave privada. Al firmar, otros pueden determinar la verdadera identidad del remitente del mensaje a través de la clave pública del remitente del mensaje.
A continuación, echemos un vistazo a la comparación entre firmas digitales y criptografía de clave pública:
En la imagen de arriba, Alice cifra el mensaje que se enviará con su propia clave privada y lo envía. Se lo dijo a Bob, quien usa Alice. En realidad, existe una desventaja en el descifrado de mensajes con clave pública, es decir, si Alice envía un mensaje relativamente grande, como un archivo de video de 1 GB, entonces el proceso de firma será demasiado lento y el cifrado asimétrico. en sí es relativamente lento,
Veamos una versión mejorada:
Aquí primero generaremos un valor hash de tamaño fijo para el mensaje que se enviará y luego lo firmaremos. para que el archivo de firma sea mucho más pequeño. Luego enviamos el mensaje y la firma a Bob, y luego Bob usa la clave pública para descifrar y comparar.
A continuación se detallan algunos puntos sobre las firmas digitales:
1 ¿Cuál será el resultado si alguien altera el contenido del archivo o el contenido de la firma? El resultado es: la verificación de la firma falla, lo que demuestra que el contenido será manipulado.
2 ¿Las firmas digitales no pueden garantizar la confidencialidad? El propósito de las firmas digitales no es garantizar la confidencialidad, sino identificar si el contenido ha sido manipulado.
3. El papel de las firmas digitales
Las firmas digitales pueden identificar al remitente de un mensaje, siempre que necesite asegurarse de que la clave pública que obtenga pertenezca al remitente del mensaje. Si la clave pública que obtiene es falsificada por un intermediario, no podrá verificar la autenticidad del remitente. el mensaje, como se muestra a continuación:
[Carga de imagen...(image-b6d6e1-1614756605461-3)]
A le pidió a B la clave pública, M escuchó en el medio , y la clave pública enviada por B a A fue interceptada por M. Y guárdela, M le dio su propia clave pública a A, y A pensó que la clave pública pertenecía a B. A cifró el mensaje con la clave pública y lo envió a B. M lo interceptó y lo descifró con su propia clave privada. Después de modificar el contenido del mensaje, luego usó la clave pública guardada para cifrar el mensaje y lo envía a B, quien lo descifra. Tanto A como B pensaron que era una comunicación normal, pero el mensaje en realidad no era ese. Entonces, ¿cómo determinar si la clave pública es legítima? Es decir, ¿cómo determinar que esta clave pública pertenece a B?
El siguiente es el certificado del que vamos a hablar. Introducimos una autoridad de terceros para verificarlo y decir que esta clave pública pertenece a B. Echemos un vistazo a continuación.
CA es la autoridad emisora de certificados y es el núcleo de la Infraestructura de Clave Pública (PKI). CA es la autoridad responsable de emitir certificados, autenticar certificados y gestionar los certificados emitidos.
Una CA posee un certificado (que contiene una clave pública y una privada).
Los usuarios públicos en Internet confían en la CA verificando la firma de la CA. Cualquiera puede obtener el certificado de la CA (incluida la clave pública) para verificar el certificado emitido por ella. El nombre completo del certificado en criptografía es un certificado de clave pública (Público). Certificado de clave) Certificado de clave (PKC), similar a una licencia de conducir, que contiene información personal como nombre, dirección de correo electrónico y la clave pública de la persona y está firmado digitalmente por una autoridad de certificación (Certificate Authority, CA).
La imagen lo deja muy claro. El remitente del mensaje primero registra su certificado con la organización CA. Luego, cualquiera que obtenga la clave pública del remitente del mensaje puede verificar la autenticidad de la clave pública con la CA.
En primer lugar, necesitamos saber ¿cuál es la función del mecanismo de firma de iOS?
Asegúrese de que las aplicaciones instaladas en los teléfonos móviles de los usuarios estén aprobadas oficialmente por Apple
Ya sea que se trate de depurar en una máquina real o de lanzar una aplicación, los desarrolladores deben pasar por una serie de pasos complejos:
Es más o menos como se muestra a continuación:
[Carga de imagen...(image-169a4f-1614756605461-0)]
Resumen:
1. Archivo .cerSigningRequest: clave pública de Mac
2. Archivo .cer: utilizando la clave privada (CA) de Apple, se genera una firma digital para la clave pública de Mac
3. .mobileprovision: use la clave privada de Apple para firmar digitalmente el certificado .cer + dispositivos + AppID + derechos