Actualizar método de cifrado de contraseñas

Hola @everyone

Necesito implementar cambios personalizados a nivel de código y a nivel de base de datos en mi aplicación Discourse Rails para cumplir con mis requisitos específicos.

Actualizar el método de cifrado de contraseñas. Actualmente, Discourse utiliza “PBKDF2” para el cifrado de contraseñas.
Según mi requisito, necesito cambiar a “MD5” en lugar de “PBKDF2”.

He configurado el código en mi entorno local y también he implementado Discourse en el entorno de producción utilizando Docker.

Cuando actualizo el código local según mi requisito, necesito volver a implementar mi código actualizado en el entorno de producción, pero actualmente tengo configurado el archivo Docker oficial de Discourse en el entorno de producción, por lo que necesito generar un nuevo archivo Docker. ¿Cómo puedo crear un nuevo archivo Docker y cómo puedo acceder a la base de datos PostgreSQL de la aplicación Discourse en el entorno de producción?

Esto parece ser una importante degradación de la seguridad. MD5 no es adecuado para el hash de contraseñas. Este cambio no solo afectaría a una parte crítica de Discourse, sino que también necesitarías mantenerlo para todas las versiones futuras.

Quizás podamos sugerir un mejor enfoque si pudieras explicar qué intentas lograr.

Con respecto a la personalización de Discourse, por favor, echa un vistazo a Developing Discourse Plugins - Part 1 - Create a basic plugin. El sistema de plugins te permite extender de forma segura las funciones principales.

6 Me gusta

He creado nuevas API y necesito volver a desplegarlas en mi código de producción. ¿Cómo es posible desplegarlas en Docker de producción?

Quieres hacer tus cambios en un plugin. Si intentas bifurcar Discourse y mantenerlo por separado, te arrepentirás mucho, mucho, si la historia sirve de algo.

¿Qué problema intentas resolver con contraseñas almacenadas como un hash MD5? Como ya se sugirió, todo Internet parece estar de acuerdo en que MD5 no es cifrado y no es adecuado para almacenar contraseñas.

3 Me gusta

Aclaración: como señala Jay (notas), ni MD5 ni PBKDF2 son funciones de cifrado.

Ambas son funciones hash. Discourse no almacena contraseñas.

Exacto. Incluso si no nos crees, no somos los únicos que dicen esto.

¿Qué problema intentas resolver?

4 Me gusta

Necesito ayuda para encontrar una solución. Necesito cambiar un método de encriptación en ROR (Discourse). Actualmente, estoy usando encriptación MD5. Hice cambios a nivel de código en mi entorno local. ¿Cómo puedo reflejar esos cambios en el servidor en vivo sin la ayuda de Docker?

Actualmente, el entorno de producción está configurado usando la configuración de Docker.

Aquí está el enlace que se siguió para configurar el entorno de producción.
URL: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Todavía no has dicho qué problema estás intentando resolver. ¿Puedes decir más sobre qué está resolviendo MD5?

Todavía necesitas implementar cualquier cambio que hagas en un plugin. ¿Has empezado a aprender cómo funcionan los plugins?

Pero apuesto a que lo que realmente quieres es que Discourse se autentique contra tu aplicación existente, en caso de que solo necesites implementar discourse_connect y Discourse no necesitará saber sobre tus elecciones en el almacenamiento de contraseñas.

2 Me gusta