Red de conocimiento informático - Conocimientos de programación - ¿Dónde está el cifrado y descifrado de los certificados bancarios en línea?

¿Dónde está el cifrado y descifrado de los certificados bancarios en línea?

Hoy estuve discutiendo con mis colegas sobre certificados digitales y cifrado y descifrado de páginas web. Estos conceptos son realmente fáciles de confundir y difíciles de entender, así que recopilé información de Internet y agregué mi propio conocimiento. Lo anotó en detalle aquí. Si tiene objeciones al principio de descifrado y al proceso de verificación de la banca en línea, puede continuar discutiéndolo.

En primer lugar debes entender algunos conceptos para que puedas entenderlos mejor.

Clave pública y clave privada

En la criptografía moderna, el cifrado y el descifrado utilizan claves diferentes (claves públicas), es decir, sistemas de criptografía de clave asimétrica. Cada parte que se comunica necesita dos claves. es decir, la clave pública y la clave privada. Estas dos claves pueden cifrarse y descifrarse entre sí. La clave pública es pública y no es necesario mantenerla en secreto, mientras que la clave privada la posee el propio individuo y debe conservarse adecuadamente y ser confidencial.

El principio de clave pública y clave privada:

Una clave pública corresponde a una clave privada.

En un par de claves, la clave pública es conocida por todos y la clave privada solo la conoce usted sin decírselo a nadie.

Si los datos se cifran con una de las claves, sólo la clave correspondiente podrá descifrarlos.

Si los datos se pueden descifrar con una de las claves, los datos deben cifrarse con la clave correspondiente.

Por ejemplo, es como una caja fuerte en un banco. Después de solicitar este negocio, el banco le dará una clave, que es la clave privada, pero no podrá abrirla solo con esta clave. , hay otra en el banco, y esta clave es aplicable a todas las cajas fuertes, es decir, la clave pública. La caja fuerte solo se puede abrir completamente abriéndola primero con la llave del banco y luego usando su clave.

Clasificación de algoritmos de cifrado

Cifrado simétrico:

El cifrado simétrico es la tecnología más antigua y famosa. Una clave secreta puede ser un número, una palabra o una cadena de letras aleatorias que simplemente se aplica al texto de un mensaje para cambiar el contenido de una manera específica.

Por ejemplo, tengo un texto que necesita ser cifrado. El contenido del texto es ABCD. La clave que configuré (también se puede llamar algoritmo de cifrado) es un algoritmo de desplazamiento, que desplaza las letras hacia atrás. 2 bits. Entonces el contenido cifrado debe ser CDEF, y luego el receptor también necesita conocer esta clave para deducir el contenido original del texto. Las características de dicho método de cifrado son que el algoritmo es público, la cantidad de cálculo es pequeña, la velocidad de cifrado es rápida y la eficiencia del cifrado es alta. Pero hay una desventaja: ambas partes receptoras necesitan usar esta clave, y si hay n personas que necesitan cifrar, entonces se necesitan n claves, porque es imposible que todos tengan la misma clave, de lo contrario no habrá confidencialidad. . Palabra. Para la banca en línea, la cantidad de usuarios es bastante grande. Si se utiliza este método de cifrado, la cantidad de claves será catastrófica para el sitio web y no se podrá administrar en absoluto.

Cifrado asimétrico:

A diferencia del algoritmo de cifrado simétrico, el algoritmo de cifrado asimétrico requiere dos claves: la clave pública (publickey) y la clave privada (privatekey). La clave pública y la clave privada son un par. Si la clave pública se usa para cifrar datos, solo se puede usar la clave privada correspondiente para descifrarlos; si se usa la clave privada para cifrar los datos, solo se puede usar la clave pública correspondiente; se puede utilizar para descifrarlo. Debido a que el cifrado y el descifrado utilizan dos claves diferentes, este algoritmo se denomina algoritmo de cifrado asimétrico.

El proceso básico del algoritmo de cifrado asimétrico para intercambiar información confidencial es: A quiere enviar un fragmento de información confidencial a B. Primero, B generará un par de claves y utilizará una de ellas como clave pública. (la clave pública de B) se revela a A; A, quien obtiene la clave pública, usa la clave (la clave pública de B) para cifrar la información confidencial y luego la envía a B. B luego usa otra clave privada (la clave privada de B). clave) que guarda la clave) para descifrar la información cifrada. B solo puede usar su clave privada para descifrar cualquier información cifrada por su clave pública. Hice un dibujo simple como referencia.

Discusión: Principios de cifrado y descifrado de certificados digitales de banca online - patrickyan2008 - blog de patrickyan2008

Certificados digitales y firmas digitales

Los certificados digitales marcan a las partes comunicantes en Comunicaciones por Internet. Una serie de datos sobre información de identidad que proporciona una forma de verificar su identidad en Internet, similar a una licencia de conducir o una tarjeta de identificación en la vida diaria. Lo emite una organización autorizada, una organización de CA, llamada centro de Autoridad de Certificación (Autoridad de Certificación), y las personas pueden usarlo para identificarse entre sí en línea. Un certificado digital es un archivo que contiene información del propietario de la clave pública y la clave pública firmada digitalmente por una autoridad certificadora. Los certificados más simples contienen una clave pública, un nombre y una firma digital de una autoridad certificadora. Generalmente, el certificado también incluye el tiempo de validez de la clave, el nombre de la autoridad emisora ​​(centro de autoridad certificadora), el número de serie del certificado y otra información. El formato del certificado sigue el estándar internacional ITUT X.509.

Entonces, ¿cómo completa un certificado digital la autenticación de identidad en línea?

Es una metáfora para describir un certificado digital como un documento de identidad online. De hecho, lo que demuestra el certificado digital es la autenticidad de la clave pública.

Después de revisar estrictamente la identidad del usuario, el centro de certificación emite un certificado digital al usuario. Firma digitalmente la información de clave pública del usuario y la información de identidad del usuario a través de tecnología de cifrado de clave pública, vinculando la información de identidad reclamada del usuario con la clave pública. Una firma digital equivale a un sello oficial, utilizado para acreditar que su información es verdadera y válida. Por lo tanto, un archivo electrónico especial que contiene la información de identidad personal del usuario, la clave pública y la firma digital forma un certificado digital. Los certificados digitales se pueden almacenar en el disco duro, disquete o llave USB.

CA

CA es la abreviatura de Certificate Authority, también llamada Certificate Authority.

Es una organización de terceros encargada de gestionar y emitir certificados. En términos generales, todas las industrias y el público deben confiar y reconocer una CA. Por lo tanto, debe tener suficiente autoridad, al igual que la Oficina de Seguridad Pública, la autoridad que expide la tarjeta de identificación. La tarjeta de identificación emitida por la Oficina de Seguridad Pública debe ser confiable. Pero si usted hace su propia tarjeta de identificación, la tarjeta de identificación que hace es inútil, porque usted no es una agencia de seguridad pública autorizada, y la tarjeta de identificación que usted mismo hace no es autorizada y en realidad es una identificación falsa.

El certificado CA es un certificado emitido por CA.

La relación de confianza entre los certificados y la cadena de certificados

La relación de confianza entre los certificados consiste en utilizar un certificado para demostrar que otro certificado es auténtico y digno de confianza.

De hecho, la relación de confianza entre certificados se puede anidar. Por ejemplo, C confía en A1, A1 confía en A2, A2 confía en A3... Esto se denomina cadena de certificados de confianza. Siempre que confíe en el primer certificado de la cadena, se podrá confiar en todos los certificados posteriores.

Certificado Raíz

El certificado raíz se denomina Certificado Raíz.

Por ejemplo, supongamos que el certificado C confía en A y B; luego A confía en A1 y A2; B confía en B1 y B2, entonces se forma la siguiente relación de árbol entre ellos.

Discusión: Principios de cifrado y descifrado de certificados digitales de banca en línea - patrickyan2008 - blog de patrickyan2008

El certificado en la parte superior de la raíz del árbol es el "certificado raíz". A excepción del certificado raíz, otros certificados deben confiar en el certificado de nivel superior para demostrar su valía. Entonces, ¿quién demostrará que el "certificado raíz" es confiable? De hecho, el certificado raíz en sí demuestra que es confiable (o en otras palabras, no es necesario probar el certificado raíz, como nuestro ZF, jaja). Por tanto, el certificado raíz es la base de la seguridad de todo el sistema de certificados. Por lo tanto, si hay un problema con el certificado raíz en un determinado sistema de certificados (ya no es confiable), todos los demás certificados en los que confía el certificado raíz ya no serán confiables. Las consecuencias son bastante graves.

Algoritmo hash

Hace un momento hablamos de cifrado. Ciframos el contenido de la información al transmitir la información, pero si el contenido de la información es enorme, entonces el contenido en sí debe cifrarse y descifrarse. Para mejorar la eficiencia, es necesario utilizar un algoritmo matemático: un algoritmo hash. Primero, realice una transformación matemática de esta información y comprima esta información para formar un breve "resumen digital". el resumen digital para “representar” la información misma. Puede examinar el resumen digital para determinar si la información en sí ha cambiado.

Por ejemplo, usamos la banca en línea para transferir 100 yuanes al usuario B, pero ¿qué pasa si B usa tecnología de piratería para cambiar el contenido de la información que envió y cambia de 100 a 1000? Entonces, el algoritmo Hash se utiliza para verificar si los datos han sido modificados. Podemos usar la herramienta de conversión de valores Hash para dar un ejemplo. Tengo un documento TXT con un contenido de 100. Luego cambié el número a 1000. Echemos un vistazo a su comparación de valores Hash:

310b86e0b62b828562fc91c7be5380a992b2786a.

e3cbba8883fe746c6e35783c9404b4bc0c7ee9eb

Completamente diferente, por lo que puede verificar de manera efectiva si los datos están completos y son válidos.

Habiendo hablado de tantos conceptos, analicemos el proceso de cifrado y descifrado de la banca online.

Primero, analicemos el proceso de banca en línea utilizando una llave USB como certificado.

Como se mencionó anteriormente, una llave USB es un certificado digital que contiene un archivo electrónico especial que contiene la información de identidad personal del usuario, la clave pública y la firma digital. Sin embargo, este certificado se almacena en el medio USB. en computadora personal. Supongamos que hay un usuario Bob que quiere usar el modo de llave USB para la banca en línea, luego usamos una imagen para explicarlo:

Discutir: El principio de cifrado y descifrado de los certificados digitales de la banca en línea - patrickyan2008 - blog de patrickyan2008

Permítanme explicarlo nuevamente. En primer lugar, Bob ya tiene su propia llave USB. Esta llave contiene la clave pública, la clave privada y el certificado digital emitido por el banco (este certificado se utiliza para probar la de Bob). identidad Cuando Bob necesita transmitir datos a la banca en línea, primero usa el algoritmo Hash para calcular el valor Hash H, luego usa su clave privada para cifrar el valor Hash H y finalmente lo cifra con la clave pública del banco (el propósito). de cifrar los datos con la clave pública del banco es para evitar la fuga de datos). No se enviarán al lugar equivocado, porque sólo el banco utiliza su propia clave privada para descifrarlos. Cualquier otro sitio falsificado no tiene la clave privada del banco. y no puede descifrar los datos y enviarlos al banco.

Después de recibir los datos, el banco primero los descifra con su propia clave privada. Después del descifrado, obtiene el valor Hash cifrado H. Debido a que esta H está cifrada con la clave privada de Bob, se utiliza la clave pública de Bob. cifrarlo. Después del descifrado, se obtiene H. El banco utiliza el mismo algoritmo para calcular el valor hash H' de los datos. Si son consistentes, significa que los datos no han sido modificados. a mitad de camino, para que la comunicación pueda continuar. De esta manera, ambas partes de la transacción se han verificado y confían entre sí, la transacción puede continuar.

También existe una banca en línea sin llave USB, que solo utiliza certificados digitales, como la versión de certificado digital del Shanghai Pudong Development Bank. De hecho, los principios son los mismos, excepto que de esta manera la clave privada del usuario se almacena localmente. La diferencia entre esta y la llave USB es la diferencia en seguridad.

Por ejemplo, si solo estoy usando la versión del certificado digital, el certificado digital está instalado en mi computadora portátil y no soy bueno recordándolo. Para facilitar mi memoria, registraré mi usuario. nombre y contraseña en un archivo de texto.

Un día perdí mi computadora portátil y alguien con segundas intenciones encontró el archivo donde guardaba mi nombre de usuario y contraseña. Fui descuidado y no reporté la pérdida al banco porque era más tradicional y pensaba que la tarjeta todavía estaba en mi billetera. problema, entonces esta persona con motivos ocultos puede usar mi computadora portátil para iniciar sesión en la banca en línea y realizar transferencias y otras operaciones.

¿Qué pasa con la llave USB? Porque después de usar el certificado USB, mi clave privada se almacena en el disco USB, y cuando uso la llave USB, necesito ingresar un código PIN, que equivale a un contraseña, aunque todavía tengo la posibilidad de almacenar esta contraseña en ese archivo, pero generalmente no desecharé la computadora portátil y la llave USB, porque este USB solo se usa cuando se utiliza la banca en línea y definitivamente se guardará en horarios normales. y esta llave USB solo se puede usar en una computadora. Se puede usar en una computadora, incluso si se cambia a otra computadora. Registra el código de hardware de la máquina siempre que la computadora portátil, el USB y el teclado de contraseña no estén. Si se pierden juntos, la seguridad sigue siendo bastante alta. Si se pierden al mismo tiempo, realmente no hay problema. Quiero dar dinero a otros, así que no me detengas, jaja.

Después de tanta descripción, creo que todos deberían poder entenderlo. Si todavía tienes preguntas o si dije algo mal, discútelo conmigo. Después de todo, estas son mías. , todavía habrá errores.