8.9.2. Trabajo a través de un canal seguro
Cuando un cliente y un servidor de servicios de Internet interactúan, el intercambio de datos puede realizarse a través de un canal seguro. Los canales de comunicación seguros evitan la visualización y modificación no autorizada de los datos. El canal seguro opera sobre el protocolo TLS de la versión 1.2. Al establecer una conexión TLS, se admite el uso de algoritmos criptográficos que cumplan con el estándar GOST R 34.10-94, R 34.10-2001, R 34.10-2012, R 34.11-94, R 34.11-2012 y 28147-89. Es posible habilitar el protocolo SSL 3.0 heredado usando el comando de línea de comandos para iniciar una conexión de cliente.
TLS (Transport Layer Security) es un protocolo que se utiliza para proporcionar una comunicación segura entre un cliente y un servidor. TLS se basa:
- en la autenticación mutua del cliente y el servidor para que tanto el cliente como el servidor estén seguros de que son quienes dicen ser;
- firmas digitales para garantizar la integridad de los datos (protección de datos contra cambios no autorizados);
- cifrado, para garantizar la confidencialidad de los datos (proteger los datos de la visualización no autorizada).
El protocolo TLS admite varias variantes de cifrados, firmas digitales, certificados, etc. para proporcionar de la manera más adecuada un canal seguro con la solidez requerida.
El protocolo TLS utiliza una sesión TLS para establecer una conexión segura entre un cliente y un servidor. La sesión se establece intercambiando una secuencia de mensajes entre el cliente y el servidor. Al configurar una sesión, se pueden realizar las siguientes acciones:
- establecer algoritmos de cifrado que se utilizarán para cifrar y firmar digitalmente los datos transmitidos;
- establecer una clave de sesión;
- autenticación de servidor en el cliente;
- autenticación del cliente en el servidor.
Para realizar la autenticación del cliente en el servidor y del servidor en el cliente, TLS utiliza certificados. Un certificado es un documento que describe el conjunto de parámetros para quién se está realizando la autenticación. Por ejemplo, el certificado puede contener el nombre de usuario o el nombre del sitio web del servidor. El certificado también tiene una firma digital, que se utiliza para verificar su validez. Las cadenas de certificados se utilizan para evitar la emisión incontrolada de certificados. El inicio de la cadena de certificados es la Autoridad de certificación - una organización que emite certificados. Si un determinado usuario necesita un certificado, envía una solicitud a la Autoridad de certificación para que emita un certificado. La Autoridad de certificación emite un certificado listo para usar, que se firma con su propia clave privada. El usuario a quien se emite el certificado puede, a su vez, actuar como Autoridad de certificación para otros usuarios. Por lo tanto, se forma una cadena de certificados, cuya raíz es la Autoridad de certificación raíz, por regla general, una organización conocida. Para que un cliente acepte este certificado, debe estar en la lista de certificados en los que este cliente confía. La lista puede contener tanto el propio certificado como cualquier certificado de la cadena de certificados de este certificado. Por regla general, es el certificado de la Autoridad de certificación raíz. Tenga en cuenta que "1C:Enterprise" funciona correctamente con certificados solo si los campos de los certificados contienen datos en US ASCII o caracteres codificados con Punycode. Los campos de certificados no deben contener datos en Unicode.
Uno de los usos más comunes del protocolo TLS es su uso para transmitir solicitudes HTTP (protocolo HTTPS). En este caso, el esquema de direccionamiento de URL para dichos recursos es HTTPS y el puerto predeterminado es 443.
La parte del cliente del mecanismo de servicios web determina automáticamente, basándose en el esquema de URL (HTTPS) de la ubicación del servicio web, que la interacción con dicho servicio web debe llevarse a cabo a través de un canal de comunicación seguro. El lado del cliente también requiere que un certificado válido esté asociado con el servidor, emitido por una Autoridad de certificación conocida por el cliente.
Un certificado de servidor es válido si su firma digital coincide con el contenido del certificado, su fecha de validez no ha vencido y el sitio web para el que se emite el certificado coincide con el sitio web del servidor. Si el certificado no es válido, por ejemplo, el sitio web del certificado no coincide con el sitio web del servidor, entonces el cliente no podrá comunicarse a través de TLS con los servicios web de este sitio.
Para habilitar la capacidad de trabajar con el protocolo TLS, se debe:
- Obtener un certificado de servidor para el sitio web para el que se planea usar TLS. El certificado es emitido por el Autoridad de certificación y está vinculado a este sitio web.
- El servidor web debe tener habilitado TLS.
- Para que una aplicación que usa un servicio web use una conexión segura, se debe especificar esto explícitamente al conectarse al servicio web. Para ello, al crear los objetos WS Determinations y WS Proxy, se debe especificar el parámetro SecureConnection. Cuando se utiliza una conexión segura, se debe especificar el objeto OpenSSLSecureConnection como el valor de este parámetro.