Autenticación de APIs de actualizaciones de software

2

Necesitamos mejorar un sistema que ofrece actualizaciones de software (archivos de firmware / software) a un dispositivo Bluetooth a través de una aplicación "complementaria" instalada en los teléfonos inteligentes de los clientes (ios / android).

El proceso de actualización se implementa a través de llamadas a un servidor de API REST (ASP.net, TLS 1.2) y al ser "sin usuario" (pero con diferentes aplicaciones) usamos OAuth2 con flujo de "client_credentials", hasta ahora.

Utilizamos la pareja "client_id" y "client_secret" para identificar la aplicación del que llama y luego inyectar algunas reclamaciones en el token de portador, útil por ejemplo, para dar diferentes firmware a diferentes aplicaciones. Al mismo tiempo, utilizamos este sistema para evitar solicitudes de API no autorizadas.

Funciona, pero nunca me encantó este sistema por varias razones, por ejemplo:

  • Sin usuarios, el servidor de token no crea solo sobrecarga?
  • ¿Es seguro almacenar la identificación y el secreto del cliente (en texto claro) en aplicaciones móviles?

He leído sobre las claves de la API, pero como esta publicación no son suficientes .

Creo que estamos "extendiendo" los propósitos de OAuth2 a nuestras necesidades, ¿hay mejores maneras de manejar esto?

    
pregunta iRubens 16.02.2017 - 09:41
fuente

1 respuesta

1

Almacenar el client_secret en texto plano no es una buena idea, ios habilita el cifrado de datos en reposo por defecto pero para android necesitas hacer algún trabajo por tu cuenta

En cuanto a la forma en que está usando OAuth2, puedo decir que funciona para su caso de uso. Quizás este artículo lo ayude a llegar a un acuerdo con su configuración actual, entre las partes importantes que dice:

  

"... una de las razones clave para que OAuth2 exista es que el Cliente   las aplicaciones no necesitan recopilar credenciales de usuario (como lo hicieron con   Autenticación básica).

     

El Cliente debe obtener un token de acceso y, para ello, debe estar registrado previamente en el Servidor de Autorización y debe autenticarse en el punto final del token.

Por lo tanto, argumentaría que, según el diseño y en términos de seguridad, tener que solicitar el token es uno de los puntos fuertes de OAuth2.

Si está buscando alternativas para implementar sus actualizaciones de software, mi opinión es que usar las tiendas de aplicaciones predeterminadas debería ser suficiente. Una actualización no tiene que ser la pieza de datos más mínima necesaria para lograr el objetivo comercial , puede ser el mismo paquete que antes con nuevos datos para uso, lo que quiero decir es que su actualización de software es La aplicación de envoltorio que se envía a la tienda de aplicaciones y luego de la instalación intenta enviar los datos actualizados (no necesariamente toda la aplicación) al dispositivo Bluetooth.

    
respondido por el Purefan 16.02.2017 - 12:02
fuente

Lea otras preguntas en las etiquetas