Header Ads Widget

Ticker

6/recent/ticker-posts

Un método compatible con GDPR para identificar clientes API


Cuando el Reglamento General de Protección de Datos (GDPR) entró en vigor hace unos años, muchas prácticas analíticas se volvieron cuestionables. Por ejemplo, ahora parece imposible almacenar direcciones IP durante un período prolongado sin el consentimiento del usuario, ya que se consideran "datos personales". Estos datos pueden ser difíciles de almacenar si no puede solicitar permiso cuando los usuarios usan sus API por primera vez. Entonces, ¿cómo puede rastrear diferentes clientes de API de una manera compatible con GDPR y, por lo tanto, respetar la privacidad de sus usuarios finales?

Información personal
Para proponer una solución, primero debemos analizar lo que el RGPD define como "datos personales". El artículo 4 define "datos personales" como:

“Datos personales significa cualquier información relacionada con una persona física identificada o identificable ('sujeto de datos'); una persona física identificable es aquella que puede ser identificada, directa o indirectamente, en particular por referencia a un identificador como un nombre, un número de identificación, datos de ubicación, un identificador en línea o uno o más factores específicos de los aspectos físicos, fisiológicos, identidad genética, mental, económica, cultural o social de esa persona física ”

Esta definición presenta un problema para almacenar direcciones IP. La mayoría de las veces, se puede considerar que las direcciones IP identifican a una persona física, incluso cuando la dirección sea propiedad de una empresa. Realmente no se puede saber quién es el propietario de la dirección IP por adelantado; alguien podría estar trabajando desde casa e iniciando la solicitud de API desde allí, lo que significaría que la dirección IP identifica a una persona física.

Direcciones IP como datos personales en API
La mayor parte del almacenamiento de direcciones IP en registros y herramientas de análisis se utilizan para distinguir diferentes clientes API entre sí. Supongamos que posee una empresa de software como servicio de seguimiento del tiempo y proporciona una API para los creadores de aplicaciones móviles. Alguien crea una gran aplicación que se comunica con la API, lo que ayuda a que su producto despegue. Luego, aparece alguien más y desarrolla una aplicación diferente, que se vuelve aún más popular. Sin embargo, contiene un error que causa demasiadas solicitudes de API, lo que resulta en problemas de escalabilidad y errores del lado del servidor. Anteriormente, es posible que haya utilizado direcciones IP para rastrear a los usuarios y descubrir qué cliente están usando, pero con el GDPR en vigor, probablemente no esté autorizado a hacerlo sin el consentimiento del usuario.

Una posible solución
Entonces, ¿Cómo podemos distinguir a los diferentes clientes en el ejemplo anterior de la empresa de seguimiento del tiempo de una manera compatible con GDPR? Bueno, ¿por qué queremos distinguirlos en primer lugar? Para identificar la aplicación o el cliente real que utiliza el usuario final para ponerse en contacto con el autor de la aplicación en caso de problemas. Ya existe una tecnología para eso: el encabezado HTTP User-Agent :

"El encabezado de solicitud de agente de usuario es una cadena característica que permite a los servidores y a los pares de la red identificar la aplicación, el sistema operativo, el proveedor y / o la versión del agente de usuario solicitante".

Para identificar la implementación del cliente API sin dañar la privacidad del usuario final, puede requerir que todos los clientes API utilicen un agente de usuario único. Luego, puede almacenar los registros o sus datos analíticos durante el tiempo que desee, y tampoco es necesario el consentimiento del usuario. También podría ser conveniente requerir un número de versión allí para que sea posible distinguir los clientes fijos de los antiguos.

Entonces, donde anteriormente aceptaríamos:

Usuario-Agente: Mozilla / 5.0 (iPhone; CPU iPhone OS 14_1 como Mac OS X) AppleWebKit / 605.1.15 (KHTML, como Gecko) Versión / 14.0 Mobile / 15E148 Safari / 604.1

Ahora requerimos algo como esto:

User-Agent: aplicación de seguimiento de tiempo de Tom (1.3.1)

Si reemplaza la dirección IP en sus registros de acceso o en sus productos de análisis y no quedan otros datos personales, podrá comenzar a almacenarlos indefinidamente. Podrá comparar períodos de datos más grandes de lo que podía anteriormente, e incluso puede comenzar a enviar estos datos a otros para que los analicen sin tener miedo de una fuga de datos o de violar el GDPR.

Identificación de clientes abusivos
Para algunos proveedores de API, hay un inconveniente en esta solución en comparación con el almacenamiento de direcciones IP. El encabezado User-Agent se puede manipular más fácilmente que una dirección IP, por lo que no puede identificar y bloquear a los usuarios abusivos. Si su API requiere identificación, entonces esto no debería ser un problema. Podrá limitar la tasa y bloquear en función de las credenciales del usuario. Una API sin identificación aún necesitará capturar y almacenar direcciones IP, aunque por un tiempo más corto para implementar límites de velocidad y bloqueo. Sin embargo, el bloqueo basado en una dirección IP también parece una solución fallida, con el aumento de la adopción de IPv6 y la posibilidad de que todos asignen y usen bloques completos de direcciones IP...

Conclusión
Parece imposible encontrar una solución hermética, pero el RGPD requiere que modifiquemos las soluciones existentes y comencemos a respetar la privacidad del usuario final, por lo que tendremos que conformarnos con menos. El uso del encabezado User-Agent parece una solución suficientemente buena para distinguir los clientes de API, y seguramente comenzaré a requerir buenos encabezados de User-Agent para las API que proporciono. Si ha resuelto este problema de manera diferente, asegúrese de comentar a continuación, ya que siempre estoy interesado en soluciones para problemas que requieren un pensamiento innovador.

 

Publicar un comentario

0 Comentarios