Almacenar de forma segura contraseñas claras donde el cifrado / hashing unidireccional no es una opción

4

Estoy trabajando en un servicio que al final obtendrá informes de ventas, etc. desde una cuenta de App Store. Sin embargo, el principal problema con esto es que Apple (hasta ahora) no tiene una API pública para hacer esto posible, por lo que la única forma de lograrlo es tener el ID y la Contraseña de Apple en forma simple para al menos lograrlo a través del raspado.

En última instancia, surgió un problema de seguridad importante: ¿Cómo almacenarlo de la forma más segura posible?

En la parte técnica, los servicios de back-end del proyecto se ejecutarán en PHP. También he investigado algunos servicios y bibliotecas diferentes, pero todos utilizan el uso de una contraseña clara de Apple.

Estaba pensando principalmente en tenerlos almacenados en un servidor separado sin inicio de sesión y solo accesible desde un host y con una clave SSH. El servicio debe poder almacenar y recuperar contraseñas.

Pero, para mí, todavía parece que no es lo suficientemente seguro, ya que la clave SSH aún estaría en el único host y, si se comprometiera, el acceso al almacén de contraseñas está a solo un comando.

¿Cómo sería más aplicable tener las contraseñas claras almacenadas?

    
pregunta Karl Viiburg 17.08.2016 - 15:54
fuente

2 respuestas

3

Tu idea para un servidor separado es buena. Necesita cambiar un poco la interfaz entre la aplicación web y la base de datos de contraseñas. La base de datos de contraseñas debe admitir dos operaciones:

  • Establecer contraseña para el usuario
  • Obtener sesión para el usuario

La base de datos de contraseñas NUNCA revela contraseñas. Para recuperar una sesión, se conecta directamente a Apple, inicia sesión con las credenciales que ha almacenado y luego devuelve el ID de sesión a la aplicación web.

    
respondido por el paj28 17.08.2016 - 16:00
fuente
2

Estoy de acuerdo con los pensamientos de paj28. El servicio adicional no debería recuperar la contraseña, sino cumplir todo lo necesario para obtener la contraseña, es decir, obtener el ID de sesión o, en mi opinión, recuperar aún mejor los informes completos. En ese caso, si alguien compromete la (s) aplicación (es) php, no puede hacer nada más que obtener esos informes. La configuración de la contraseña es quizás una idea menos útil, ya que esto rompería toda la seguridad. Lo puse en algo que sé y luego gané y ya no necesito el servicio.

Asegurar el servicio con una clave ssh trae nuevamente la misma pregunta: ¿Cómo almacenar la clave ssh de forma segura? Preferiría confiar en la seguridad de la red, un servicio que solo escucha en la interfaz local ...

    
respondido por el kaidentity 17.08.2016 - 16:16
fuente

Lea otras preguntas en las etiquetas