Colección de citas famosas - Slogan de motivación - Introducción a la interfaz API (2): verificación de firma y principios de cifrado y descifrado de la interfaz API

Introducción a la interfaz API (2): verificación de firma y principios de cifrado y descifrado de la interfaz API

Directorio de este artículo:

¿Por qué es necesario firmar y cifrar la interfaz API?

¿Cómo cifrar la interfaz API?

1. ¿Por qué es necesario firmar y cifrar la interfaz API?

Imagina una escena: un buen hermano al que no has visto en mucho tiempo de repente te dice en WeChat: "Hermano, préstame 10.000 yuanes para una emergencia".

Creo que la reacción inmediata de la mayoría de las personas es: ¿Han pirateado la cuenta? ¿Es él mismo?

De hecho, este es un comportamiento de comunicación común en nuestra vida diaria. El proceso de llamar a API y transmitir datos entre sistemas no es diferente de la comunicación WeChat entre usted y sus amigos. Toda la transmisión de datos en un entorno abierto. es posible que sea interceptado o incluso manipulado. Por tanto, existe un gran peligro en la transmisión de datos, por lo que es necesario cifrarlos.

El núcleo de cifrado resuelve dos problemas:

¿Eres tú mismo? (Verificación de firma)

¿La información que enviaste es correcta? (Cifrado y descifrado)

2. ¿Cómo realizar la verificación, cifrado y descifrado de firma en la interfaz API?

Los antiguos escribían cartas por parte de carteros a largas distancias. Para evitar que se descubrieran contenidos importantes, decidieron escribir cartas en texto cifrado, por ejemplo, si quiero expresar "Ochocientos pioneros suben". la vertiente norte", lo escribo como 800norte, y el destinatario también sabe leer este mensaje. Incluso si alguien en el camino intercepta y mira, no entenderá lo que estás diciendo. Al mismo tiempo, firmé con mi letra al final del artículo y puse mi símbolo (como una pluma, etc.) en la caja, para que el destinatario supiera que esta carta fue enviada por mí.

Esto se llama "criptografía simétrica", es decir, la persona que cifra utiliza el método A para cifrar y la persona que descifra utiliza el método A para descifrar.

Si transmites con frecuencia, será fácil descubrir el patrón de contraseña. Por ejemplo, pronto sabré que traerás una pluma cuando envíes cartas, y luego también podré conseguir una pluma. hacerse pasar por usted en el futuro. Además, si quiero enviar una carta a muchas personas, tengo que decirles a todos mi método de cifrado. Tal vez un agente encubierto traicione su método de cifrado.

Debido a que el número y la frecuencia de las transmisiones por Internet son muy altos, obviamente no es seguro crear una contraseña simétrica. Por tanto, el concepto de "criptografía asimétrica" ​​se amplió basándose en la criptografía simétrica.

1. Claves públicas y privadas: verificación de firmas y principios de cifrado y descifrado

Explicación popular: A quiere enviar un mensaje a B, B primero le da una casilla a A y A la recibe Coloque la carta en la caja y luego ciérrela. Una vez cerrada, A no puede abrirla ni sacarla porque la llave está en la mano de B. De esta manera, incluso si es interceptada en el camino, otros no pueden abrirla. la caja y mira la información dentro, finalmente B puede recibir con seguridad la carta de A y la información no se filtra.

Ahora usamos un escenario unidireccional donde A envía información a B para tener una comprensión profunda de cómo funcionan las claves públicas y privadas.

Tanto el remitente como el receptor tienen dos conjuntos de métodos de cifrado y descifrado, y han hecho público uno de los métodos de cifrado a y b (línea de puntos marcada en negro);

Aquí el cifrado y descifrado mencionado se debe a que la criptografía es demasiado esotérica y no se puede explicar. Todos deben aceptar que el método de cifrado no se puede deducir del método de descifrado y el método de descifrado no se puede deducir del método de cifrado. Si a está cifrado, a debe descifrarse, y si b está cifrado, b debe descifrarse;

Ahora A necesita enviar un mensaje a B. Debido a que el contenido del mensaje es muy importante, usa el método de cifrado c del destinatario B para cifrar. De esta manera, solo se puede descifrar el método de descifrado c del propio B. Cualquiera que lo obtenga no puede descifrarlo, incluido el propio A;

Cuando A envía información a B. , necesita traer su propia firma. En este momento, A usa el método de cifrado b que solo sabe cifrar. Debido a que todos conocen el método de descifrado b, cualquiera puede ver la firma de A, es decir, todos saben que este mensaje fue enviado por A. , pero como la firma no es información que no se puede revelar, no importa si se descifra.

Resumen:

(1) Cualquiera puede obtener la firma, pero debido a que el contenido de la firma no involucra el contenido principal, está bien obtenerla y descifrarla.

(2) El contenido importante solo puede ser descifrado por el destinatario y nadie podrá descifrarlo si se obtiene.

(3) El receptor B sólo ejecutará el siguiente procedimiento si verifica que el firmante es A. Los mensajes enviados por Perros y Gatos no serán ejecutados.

Posibles situaciones para el alborotador C:

(1) Obtuvo que este mensaje fue enviado por A, pero no pudo entender el contenido cifrado.

(2) También puede utilizar el método de cifrado c del destinatario B para enviar información al destinatario B, pero no puede suplantar la firma del remitente A, por lo que B no aceptará la solicitud de C.

(2) Cifrado asimétrico de claves públicas y privadas, cifrado simétrico de clave de sesión

2. Cifrado asimétrico de claves públicas y privadas, cifrado simétrico de clave de sesión

Explicación en la sección anterior El cifrado de claves públicas y privadas es estándar y seguro, pero debido a que este tipo de cifrado asimétrico tiene demandas relativamente grandes en las operaciones del sistema, aún esperamos mejorar la puntualidad de la respuesta del programa y al mismo tiempo garantizar la seguridad. Por lo tanto, otro método de cifrado utilizado actualmente en las aplicaciones principales es el cifrado simétrico de claves públicas y privadas.

Cuando A envía información a B, no es necesario utilizar las claves pública y privada de B.

A usa su propio método de cifrado b para cifrar la firma y un mensaje vacío. Debido a que la información es irrelevante y no importa si está descifrada, B usa el método de descifrado b para verificar que el mensaje proviene de. A.

En este momento, el receptor B utiliza el método de cifrado a del remitente A para cifrar un método de cifrado urgente para A (equivalente a decirle a A que usaremos este código secreto para comunicarnos durante estas 2 horas). solo A tiene el método de descifrado, otros no pueden saber cuál es la clave de sesión si la obtienen.

Después de que A recibe la clave de sesión, A usa esta función de cifrado urgente para enviar información importante. La firma todavía está cifrada usando el método de cifrado B, y B usa la misma función de cifrado para descifrar (en realidad se convierte en). Cifrado simétrico, todos usan el mismo método para cifrar y descifrar)

Después de 2 horas, repita el paso 2 para actualizar el método de cifrado.

3. Resumen

(1) Cuando B envía un método de cifrado temporalmente efectivo a A, el proceso de comunicación se convierte en cifrado simétrico

(2) El núcleo; Una de las características de este tipo de método de cifrado es la puntualidad, que debe actualizarse en un corto período de tiempo; de lo contrario, las reglas fijas se obtendrán y descifrarán fácilmente.

Posibles situaciones para el disruptor C:

(1) Obtuvo el archivo cifrado de la clave de sesión enviado por B y no pudo descifrar cuál era la clave de sesión. Debido a que el método de descifrado está en manos de A;

(2) A través de varios medios, C descifró el método de cifrado y descifrado de la clave de sesión, pero debido a que el límite de tiempo expiró y la clave de sesión se actualizó, Los esfuerzos de C fueron en vano;

(3) C descifra la clave de sesión dentro del límite de tiempo, pero no puede hacerse pasar por la firma de A.

Los anteriores son dos métodos comunes de cifrado y descifrado. Cada plataforma abierta presentará primero el método de cifrado y descifrado seguro para llamadas API en la descripción general. Este es un proceso de preparación necesario para cada proceso de acoplamiento, como WeChat. En la descripción general, la plataforma empresarial ya ha introducido el uso del segundo método (llamado access_token en WeChat empresarial) para la transmisión de cifrado y descifrado.

3. Finalmente

Lo anterior es el principio básico de la verificación, el cifrado y el descifrado de firmas API. A continuación, continuaré actualizando el método de solicitud de API y otros problemas. Al mismo tiempo, ábralo a través de Enterprise WeChat y WeChat. El negocio de las grandes plataformas abiertas, como las plataformas, explica las funciones existentes admitidas por cada plataforma.

En resumen, el nivel es limitado. Si hay algún error, indícalo.