Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La comunicación segura a través de redes no seguras suele implicar tres áreas principales de preocupación: privacidad, autenticación e integridad. La API de criptografía de Microsoft (CryptoAPI) es un conjunto de funciones, interfaces y herramientas que las aplicaciones pueden usar para mejorar la confianza de la seguridad en estas áreas.
Además de la funcionalidad de privacidad, autenticación e integridad, CryptoAPI también proporciona:
- Codificación de mensajes a un formulario de notación de sintaxis abstracta uno (ASN.1).
- Descodificación de mensajes ASN.1.
- Administración de colecciones de certificados en almacenes de certificados.
- Trabajar con listas de confianza de certificados y cadenas de certificados para comprobar la validez de los certificados.
Privacidad
Para lograr la privacidad, los usuarios deben impedir que cualquier usuario excepto el destinatario deseado lea un mensaje. La mejora de la probabilidad de privacidad suele implicar el uso de alguna forma de criptografía. Las técnicas criptográficas se usan para cifrar (codificar) mensajes antes de que los mensajes se almacenen o transmitan.
El cifrado de datos transforma el texto no cifrado en texto cifrado. Los datos que se van a cifrar pueden ser texto ASCII , un archivo de base de datos o cualquier otro dato. En esta documentación, el término mensaje se usa para hacer referencia a cualquier dato, texto no cifrado hace referencia a datos que no se han cifrado y el texto cifrado hace referencia a los datos que se han cifrado. Un buen sistema de cifrado de datos dificulta la transformación de los datos cifrados en texto no cifrado sin una clave secreta.
Los datos cifrados se pueden almacenar en medios no seguros o transmitirse a través de una red no segura. Más adelante, los datos se pueden descifrar en su forma original. Este proceso se muestra en la ilustración siguiente.
Cuando se cifran los datos, el mensaje y una clave de cifrado se pasan al algoritmo de cifrado. Para descifrar los datos, el texto cifrado y una clave de descifrado se pasan al algoritmo de descifrado. El cifrado y el descifrado se pueden realizar mediante una sola clave en un proceso denominado cifrado simétrico.
Las claves usadas para descifrar un mensaje deben mantenerse como secretas y seguras como sea posible, y deben transmitirse a otros usuarios mediante técnicas de mejora de la seguridad. Esto se describe más adelante en Cifrado y descifrado de datos. El principal desafío es restringir correctamente el acceso a la clave de descifrado porque cualquier persona que la posee podrá descifrar todos los mensajes cifrados con su clave de cifrado correspondiente.
Para abordar los objetivos indicados de privacidad, los desarrolladores pueden usar CryptoAPI para cifrar y firmar digitalmente los datos de forma flexible, a la vez que ayudan a proporcionar protección para los datos confidenciales de la clave privada del usuario.
CryptoAPI proporciona las siguientes áreas de funcionalidad para realizar las tareas de cifrado y descifrado, firma de mensajes y almacenamiento de claves:
- Funciones de criptografía base
- Funciones de mensaje simplificadas
- Funciones de mensaje de bajo nivel
Authentication
Las comunicaciones seguras requieren que las personas que se comunican conozcan la identidad de aquellos con los que se comunican. La autenticación es el proceso de comprobar la identidad de una persona o entidad.
Por ejemplo, en la vida cotidiana, la documentación física, a menudo denominadas credenciales, se usan para comprobar la identidad de una persona. Cuando se realiza un cheque en efectivo, la persona que recibe el cheque puede pedir que vea una licencia de conducir. La licencia de conducir es un documento físico que aumenta la confianza del comerciante en la identidad de la persona que cobra el cheque. En este caso, la persona que cobra el cheque confía en que el estado que emite la licencia compruebe adecuadamente la identidad del titular de la licencia.
Los pasaportes proporcionan otro ejemplo. Un funcionario aduanero examina un pasaporte y lo acepta como prueba de que una persona es quien dice que es. El funcionario confía en que el gobierno hizo un trabajo adecuado para identificar al titular del pasaporte antes de emitir el pasaporte. En ambos ejemplos, existe un nivel de confianza en el emisor del documento físico.
La autenticación también implica asegurarse de que los datos recibidos son los datos enviados. Si la parte A envía un mensaje a la parte B, la parte B debe ser capaz de demostrar que el mensaje recibido fue el mensaje que envió la parte A y no un mensaje que se sustituyó por ese mensaje. Para proporcionar esta forma de autenticación, CryptoAPI proporciona funciones para firmar datos y comprobar firmas mediante pares de claves públicas y privadas.
Dado que las comunicaciones a través de una red informática tienen lugar sin contacto físico entre los comunicadores, la comprobación de la identidad a menudo depende de una credencial que se pueda enviar y recibir a través de una red. Dicha credencial debe ser emitida por un emisor de confianza de credenciales. Los certificados digitales, conocidos normalmente como certificados, son simplemente una credencial de este tipo. Son una manera de comprobar la identidad y lograr la autenticación en una red del equipo.
Un certificado digital es una credencial emitida por una organización o entidad de confianza denominada entidad de certificación (CA). Esta credencial contiene una clave pública (consulte Pares de claves públicas y privadas) y datos que identifican el asunto del certificado. Una entidad de certificación emite un certificado solo después de que la ENTIDAD de certificación haya comprobado la identidad del firmante del certificado y haya confirmado que la clave pública incluida con el certificado pertenece a ese sujeto.
La comunicación entre una ENTIDAD de certificación y un solicitante de certificados podría realizarse mediante el solicitante físicamente que llevaba la información necesaria, tal vez almacenada en un disco de disquete, a la CA. Sin embargo, la comunicación suele realizarse con un mensaje firmado enviado a través de una red. La entidad de certificación suele usar una aplicación de confianza denominada servidor de certificados para emitir certificados.
CryptoAPI admite la autenticación mediante el uso de certificados digitales, con funciones de codificación y descodificación de certificados y funciones de almacén de certificados .
Para obtener más información sobre la comprobación de identidades y la autenticación mediante el uso de certificados, consulte Certificados digitales.
Integridad
Cualquier dato enviado a través de un medio no seguro se puede cambiar por accidente o a propósito. En el mundo real, los sellos se usan para proporcionar y demostrar la integridad. Una botella de ácido acetilsalicílico, por ejemplo, puede venir en envases a prueba de alteraciones que tienen un sello sin deshacer para demostrar que no se puso nada en el paquete después de que el paquete dejó el fabricante.
De la misma manera, un receptor de datos debe ser capaz de comprobar la identidad del remitente de los datos y asegurarse de que los datos recibidos son exactamente los datos enviados; es decir, que no se ha alterado. El establecimiento de la integridad de los datos recibidos a menudo se realiza enviando no solo los datos originales, sino también un mensaje de verificación, denominado hash, sobre esos datos. Tanto los datos como el mensaje de verificación se pueden enviar con una firma digital que demuestre el origen de ambos.
La integridad se proporciona en CryptoAPI mediante el uso de firmas digitales y hashes de datos.
CryptoAPI admite la integridad mediante el uso de funciones de mensaje para firmar datos y comprobar firmas digitales.