비밀번호 암호화 방식 업데이트

안녕하세요 @everyone

저는 Discourse Rails 애플리케이션에 특정 요구 사항을 충족하기 위해 코드 수준과 데이터베이스 수준의 사용자 정의 변경 사항을 구현해야 합니다.

비밀번호 암호화 방식을 업데이트해야 합니다. 현재 Discourse는 비밀번호 암호화에 “PBKDF2”를 사용하고 있습니다.
제 요구 사항에 따라 “PBKDF2” 대신 “MD5”로 전환해야 합니다.

저는 로컬 환경에 코드를 설정했으며, 또한 Docker를 사용하여 Discourse를 프로덕션 환경에 배포했습니다.

요구 사항에 맞게 로컬 코드를 업데이트한 후에는 프로덕션 환경에 업데이트된 코드를 다시 배포해야 하지만, 현재 프로덕션 환경에는 Discourse 공식 Dockerfile이 설정되어 있습니다. 따라서 새로운 Dockerfile을 생성해야 하는데, 새로운 Dockerfile을 만드는 방법과 프로덕션 환경의 Discourse 애플리케이션 PostgreSQL 데이터베이스에 접근하는 방법이 궁금합니다.

이것은 보안 수준이 크게 낮아지는 변경 사항으로 보입니다. MD5는 비밀번호 해싱에 적합하지 않습니다. 이 변경은 Discourse의 핵심 부분을 영향을 줄 뿐만 아니라, 향후 모든 릴리스에 대해 이를 유지 관리해야 합니다.

혹시 달성하려는 목표를 설명해 주시면 더 나은 접근 방식을 제안해 드릴 수 있을지도 모릅니다.

Discourse 커스터마이징에 대해서는 https://meta.discourse.org/t/developing-discourse-plugins-part-1-create-a-basic-plugin/30515를 참고해 주세요. 플러그인 시스템을 사용하면 핵심 기능을 안전하게 확장할 수 있습니다.

새로운 API를 생성했고, 이제 프로덕션 코드에 다시 배포해야 합니다. 프로덕션 환경에서 Docker를 통해 배포하는 방법은 무엇인가요?

플러그인에서 변경 사항을 적용하려는 것 같습니다. Discourse를 포크해서 별도로 유지보수하려는 경우라면, 과거 사례를 참고할 때 매우, 매우 후회하게 될 것입니다.

MD5 해시로 저장된 비밀번호로 어떤 문제를 해결하려는 건가요? 이미 언급되었듯이, 인터넷 전체가 MD5는 암호화가 아니며 비밀번호 저장에 적합하지 않다는 데 동의하고 있습니다.

보충 설명: Jay가 지적했듯이, MD5도 PBKDF2도 암호화 함수가 아닙니다.

둘 다 해싱 함수입니다. Discourse는 비밀번호를 저장하지 않습니다.

정확합니다. 우리가 그렇게 말한다고 믿지 않더라도, 우리가 이 사실을 지적하는 유일한 주체는 아닙니다.

해결하려는 문제는 무엇입니까?

해결책을 찾는 데 도움이 필요합니다. ROR(Discourse)에서 암호화 방식을 변경해야 합니다. 현재 MD5 암호화를 사용 중입니다. 로컬 환경에서 코드 레벨에서 변경 사항을 적용했습니다. Docker의 도움 없이 이러한 변경 사항을 라이브 서버에 어떻게 반영할 수 있을까요?

현재 프로덕션 환경은 Docker 구성을 사용하여 설정되어 있습니다.

프로덕션 환경 설정 시 참조한 링크는 다음과 같습니다.
URL: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

여전히 어떤 문제를 해결하려고 하는지 말씀해 주시지 않았습니다. MD 5가 어떤 문제를 해결하는지에 대해 좀 더 자세히 말씀해 주시겠어요?

플러그인에 적용할 변경 사항을 구현해야 합니다. 플러그인이 어떻게 작동하는지 배우기 시작하셨나요?

하지만 실제로 원하시는 것은 기존 앱에 대해 discourse 인증을 수행하는 것일 것 같습니다. 비밀번호 저장 방식에 대해 discourse가 알 필요가 없다면 discourse_connect만 구현하면 되니까요.