Header Ads Widget

Ticker

6/recent/ticker-posts

Asegurar su flujo de datos con cifrado P2P

 Asegurar su flujo de datos API con p2p encryptoin-01

Un sistema es tan seguro como su parte más débil: la cadena más cara del mundo envuelta alrededor de columnas de acero profundamente hundidas no tiene valor si se ata con bridas. Lo mismo ocurre con la seguridad en el espacio API. El sistema más seguro, autenticado y estable es tan seguro como su punto más débil. En general, esta debilidad radica en el flujo de datos .

En este artículo, discutimos la importancia de asegurar su flujo de datos API, las diversas tecnologías necesarias para hacerlo y los beneficios y desventajas de varias ofertas en la industria del cifrado punto a punto (P2P).

¿Por qué cifrar datos?

Los sistemas son cosas complicadas: porque un sistema es, por definición, una colección de objetos que trabajan hacia un objetivo singular o una colección de objetivos, su eficiencia y seguridad están directamente vinculadas entre sí. Piense en una red o en un clúster de servidores API como una armadura : es posible que tenga la mejor placa de acero, el trabajo de bronce más intrincado y el escudo más reforzado, pero sin un casco resistente y protector, podría estar caminando. en la batalla desnuda .

Este es un concepto básico en la seguridad de la red, pero vale la pena repetirlo (y recordarlo): su sistema es tan fuerte como su componente más débil.

Ingrese encriptación. El cifrado puede tomar un viejo servidor decrépito que se queda sin software de datos y cifrar el flujo de datos salientes en un monstruo casi irrompible. Compare la interrupción del tráfico cifrado con la interrupción del tráfico no cifrado.

Digamos que Bob envía una llamada URI remota a un servidor sin cifrar. Esta llamada lleva su clave al servidor, que luego transmite la información solicitada. Con un solo nodo en el medio escuchando y capturando tráfico (lanzando un ataque Man-in-the-Middle , esta información se puede usar en un ataque de repetición de sesión, comprometiendo la integridad y confidencialidad de su sistema.

Más información sobre la importancia de fomentar una cultura interna de seguridad

Digamos que Bob hizo la misma llamada URI remota, pero en su lugar utilizó un sistema de cifrado de certificado SSL de 2048 bits de DigiCert . Incluso si ese nodo en el medio pudiera capturar completamente el tráfico, DigiCert estima que se necesitarían 6.4 cuatrillones de años para descifrar los datos usando un sistema basado en 2.2Ghz con 2GB de RAM , que es más tiempo que el tiempo total que ha existido el universo.

Esta cantidad de seguridad es claramente valiosa y es fácil y barata de implementar: las soluciones de infraestructura / red como HTTPS, SSL y TLS utilizan puertos y tecnologías de red para proteger el flujo de datos a medida que sale y entra en la red, y estas soluciones son normalmente ya está integrado en la mayoría de los servidores y estaciones de trabajo modernos.

Las soluciones de terceros también son generalmente de bajo costo, y algunas soluciones caen en la metodología de "software abierto" de lanzar programas de forma gratuita para obtener el apoyo y la iteración de la comunidad.

Tenga en cuenta que las soluciones de cifrado son muy diferentes de las metodologías que se derivan del cifrado. Por ejemplo, las claves API son una forma de proteger su flujo de datos, pero en sí mismas no cifran el tráfico; de hecho, esta es una de las mayores debilidades de las claves. No asuma que cualquier solución que no esté expresamente orientada al cifrado cifrará el tráfico.

Definición de términos

Antes de profundizar demasiado en las soluciones de cifrado, debemos comprender algunos términos exclusivos del cifrado. Estos términos pueden tener diferentes significados utilizados en diferentes industrias, por lo que es muy importante recordar que estas definiciones solo pueden aplicarse a este caso de uso muy específico.

En este artículo, hablamos específicamente del cifrado P2P . Si bien esto a menudo tiene connotaciones en el espacio API del procesamiento de pagos, en el campo más amplio del criptoanálisis, P2P tiene una definición más flexible. P2P simplemente significa el ciclo de punto a punto que consiste en un proveedor de datos, el flujo de datos que transporta los datos y un consumidor de datos.

Cuando se habla de cifrado, también es muy importante comprender el concepto de "flujo de datos" . Un flujo de datos es el flujo de datos desde un punto de generación a un punto de recepción, es decir, desde la propia API hasta el cliente que solicita los datos. Piense en ello como el servicio postal: el proceso desde que se coloca una carta en un buzón hasta que llega al buzón al que se dirigió es similar a un flujo de datos.

Más importante aún, el cifrado es un método mediante el cual los datos se codifican u ocultan, evitando el acceso, la visualización o la modificación no autorizados. Esto se puede hacer de varias formas, pero todas estas posibilidades hasta la fecha se dividen en dos categorías distintas: cifrado de bloques y cifrado de flujo.

Block Encryption es exactamente lo que parece: el flujo de datos se somete a un método de cifrado en bloques o fragmentos de datos, generalmente en un tamaño establecido dictado por el método de cifrado. Por ejemplo, en el método de cifrado de bloques AES (también conocido como Rijndael) , estos bloques están limitados a 128 bits de información, lo que significa que solo se pueden cifrar 128 bits de datos a la vez.

Stream Encryption , por otro lado, cifra el flujo de datos en tiempo real; los datos no se cifran en bloques, sino como una serie de señales binarias. Este método consume muchos recursos y, a menudo, se descifra fácilmente debido al hecho de que los métodos de cifrado se pueden detectar simplemente escuchando el flujo y encontrando patrones en la salida del texto cifrado. Por esta razón, Stream Encryption no se usa mucho.

Variantes de cifrado de claves

De manera similar, existen dos tipos de cifrado que se emplean comúnmente en el espacio de la red.

El primero, de clave pública , utiliza algoritmos como RSA Asymmetric Block Cipher o ElGamal para codificar las comunicaciones. Este método utiliza un par de claves, del cual se derivan ambas claves, con una clave que funciona para cifrar los datos y la otra para descifrar. La clave de descifrado se mantiene en secreto y, por lo general, está vinculada al destinatario, mientras que la clave de cifrado es pública, lo que permite a cualquiera cifrar los datos de ese destinatario en particular.

Esta es la versión más segura de cifrado debido al hecho de que los códigos están separados, pero definidos entre sí. La clave privada se genera a partir de una clave pública y esa clave pública es en sí misma una clave segura. Al configurar el sistema de esta manera, un usuario o nodo no autorizado podría interceptar la clave pública completamente descifrada y aún no tener acceso al sistema del usuario; del mismo modo, podrían interceptar la clave privada completamente descifrada y, nuevamente, no tener acceso al servidor.

Consulte también: Seguridad de API: profundización en OAuth y OpenID Connect

Otra forma de cifrado es la metodología de clave simétrica , que utiliza las mismas dos claves para cifrar y descifrar. Este método es seguro para uso local (como encriptar bases de datos de contraseñas en un servidor raíz), pero no debe usarse en una red en su forma simple sin encriptar la clave de sesión o el flujo de datos usando un protocolo encriptado asimétrico secundario .

El método de clave simétrica se considera una solución menos segura que el método de clave pública debido al hecho de que tanto la clave de cifrado como la de descifrado son la misma clave; debido a esto, un usuario teórico no autorizado podría obtener la clave del servidor o la clave del cliente, y acceder a cualquier recurso que desee. Las claves públicas tampoco deben ser de confianza inherente: un usuario debe saber quién es el propietario de la parte privada de la clave para garantizar la seguridad. No obstante, el cifrado de clave asimétrica suele ser una solución más sólida a pesar de esto.

Soluciones de cifrado integradas

La solución más común y de fácil implementación es HTTPS . HTTPS, siglas de Hyper Text Transfer Protocol Secure , es un protocolo mediante el cual HTTP, el lenguaje de Internet, se cifra mediante una variedad de algoritmos, incluidos RSA , ECDH ( curva elíptica Diffie-Hellman ) y Kerberos .

Estos datos cifrados se envían luego a través de un protocolo seguro al usuario final para su descifrado. Este transporte se realiza a través de dos protocolos principales: SSL y TLS.

SSL , o Secure Sockets Layer , utiliza un algoritmo de clave pública o asimétrico para transmitir datos cifrados simétricos; este proceso de dos partes proporciona una seguridad y una agilidad increíbles en el cifrado. Este protocolo utiliza un certificado SSL que se emite en respuesta a una solicitud de firma de certificado (CST), que luego se valida. SSL es un sistema complejo, pero esta complejidad se oculta en gran medida a los consumidores. Esta complejidad oculta hace que la experiencia del usuario sea mucho mejor , mejorando la impresión de su servicio.

Asimismo, HTTPS también puede utilizar el protocolo TLS . TLS, o Transport Layer Security , es la versión actualizada de SSL y se considera el protocolo moderno para usar sobre SSL siempre que sea posible. TLS funciona casi de manera idéntica a SSL, con muy pocas excepciones, en particular el sistema de derivación de claves y el proceso de intercambio de claves.

No importa qué método elija (aunque muchos administradores le sugerirían que utilice la versión justo antes de la versión del protocolo más actualizada para garantizar la funcionalidad), ¡simplemente mantenga la coherencia! La coherencia es una parte clave del éxito en el desarrollo de API, por lo que elija lo que elija, cúmplalo.

Java-Meetup-Small

Soluciones de cifrado externo

Si bien HTTPS es un sistema muy flexible, existen ciertos casos de uso que pueden requerir métodos de cifrado punto a punto de terceros diseñados para propósitos muy específicos. Afortunadamente, el espacio de la API está repleto de proveedores de cifrado que utilizan una variedad de tecnologías y sistemas para garantizar un ecosistema seguro.

Tomemos, por ejemplo, el servicio de cifrado de pagos CyberSource . Este servicio utiliza software de lectura de tarjetas vinculado a módulos de seguridad de hardware para enviar datos de forma remota a través de canales seguros, lo que aumenta la seguridad y las tasas de éxito en la prevención de pérdida de datos.

Para una solución más general, un sistema como OAuth 1.0a empareja la autorización con el cifrado de datos . Utilizando una firma, generalmente HMAC-SHA1 , OAuth 1.0a envía estos datos a través de líneas de comunicación simples (aunque se puede usar TLS / SSL). Debido a que OAuth 1.0a no envía la contraseña en tránsito directamente, esto prácticamente elimina la amenaza del tráfico rastreado y las sesiones capturadas.

Escenarios de casos de uso

Dado que el cifrado de la transmisión de datos punto a punto es de vital importancia para las API que transfieren datos seguros, como contraseñas, registros médicos, procesamiento de pagos, etc., considere el cifrado como un requisito absoluto en cualquier situación en la que exista un valor fiscal asignado. a los datos. Si sus datos pueden venderse, deben protegerse. Si hay dinero de por medio, puede estar seguro de que hay personas en algún lugar que quieran tomar esa corriente y usarla para sus propios fines.

En algunos otros casos, es posible que se requiera cifrado. Es posible que se requieran contratos federales, implementación de cliente de gobierno a civil y API de atención médica para cifrar el tráfico como parte de negociaciones contractuales o leyes como HIPAA (la Ley de Portabilidad y Responsabilidad de Seguros de Salud de 1996).

Sin embargo, eso no quiere decir que el cifrado solo sea útil para situaciones seguras. A medida que los usuarios valoran cada vez más su privacidad, la implementación de estándares de cifrado puede ser tanto una característica de seguridad como un punto de venta para los clientes potenciales.

Ejecuciones de código de ejemplo

En general, estos métodos son increíblemente sencillos de implementar para el usuario y el proveedor de API. Por ejemplo, en curl, simplemente puede usar el siguiente comando de ruta:

curl –3 -capath –ssl https://api.website.com

 

Y con ese pequeño fragmento de código, ahora está utilizando un certificado local para firmar y cifrar su conexión de datos.

Para los consumidores, usar su aplicación web o API en un modo seguro es tan simple como conectarse a través de HTTPS. Por ejemplo, al conectarse a la aplicación web de Facebook, se utilizan diversas API para conectar las cuentas de usuario a los datos. Simplemente iniciando sesión en https://www.facebook.com en lugar del http://www.facebook.com convencional activará una conexión HTTPS segura utilizando el cifrado elegido por el proveedor.

Conclusión

La seguridad es algo importante a tener en cuenta; debería ser una de las primeras cosas que considere en el ciclo de vida de la API . Independientemente de si su API es pública o privada, propia o de terceros , una solución de seguridad bien implementada hará que su API sea más útil , segura y atractiva.

Publicar un comentario

0 Comentarios