creando una API encriptada TLS

1

Tengo un punto final de API HTTP en mi servidor que está cifrado (TLS). No es una API pública; los usuarios deben iniciar sesión y validar su cuenta / identidad para acceder a la API.

Cuando me conecto con mi cliente de prueba (cada vez que uso un cliente de par de llaves recién generado), obtengo esta respuesta:

{[] [] [Domain Control Validated COMODO SSL Wildcard] [] [] [] []  *.blah.com [{Domain Control Validated} {COMODO SSL Wildcard} {*.blah.com}]}
2015/05/26 10:53:34 client: handshake:  true
2015/05/26 10:53:34 client: mutual:  true

Todo se ve bien.

Ahora, cada usuario de mi API debe tener un par de llaves público / privado en el lado del cliente para usar para conectarse a la API para cumplir con el protocolo TLS. Todo esto es bueno y bueno como lo entiendo.

Los usuarios enviarán datos y archivos confidenciales a través del cable para que se almacenen en mi servidor.

Mi siguiente paso es autenticar a los usuarios y garantizar que sus datos estén seguros en tránsito. ¿Qué debo usar?

  • autenticación básica HTTP
  • OAUTH
  • OAUTH2

Leí enlace pero se trata principalmente de proteger una API pública de un ataque. La parte sobre la protección de los datos en sí misma es una nota al final.

    
pregunta bvpx 26.05.2015 - 17:25
fuente

1 respuesta

2

En cuanto al título de su pregunta: su canal de comunicación está cifrado por TLS. Esa parte está bien.

El cuerpo de la pregunta es en realidad acerca de la autenticación. Tienes algunas opciones, las principales son:

  • reutiliza los certificados cliente que ya tienen tus usuarios (debido a la forma en que configuras el cifrado al solicitar certificados de cliente y servidor). Dependiendo del caso específico en el que se encuentre, podría ser suficiente para la autenticación (o no: tiene una autenticación de un solo factor basada únicamente en la posesión de los certificados).
  • use un sistema basado en contraseña, HTTP Basic Auth es un ejemplo
  • use oAuth, que puede permitirle descargar la autenticación en otra parte (Google, Twitter, LinekedIn, ...). El valor agregado es que no necesita preocuparse por la administración del ciclo de vida de la autenticación (creación de la cuenta, administración de la contraseña), la otra parte también puede tener un sistema robusto (multifactor) implementado. La desventaja es que no posee autenticación, tiene que confiar en alguien más para que haga un buen trabajo.
  • implementó la autenticación multifactor ( HOTP ) implementada, por ejemplo, a través de Open OTP (el mecanismo utilizado por Google Authenticator, Authy, ...)
respondido por el WoJ 29.05.2015 - 09:05
fuente

Lea otras preguntas en las etiquetas