パスワード暗号化方式のアップデート

こんにちは @everyone

特定の要件を満たすために、Discourse Rails アプリケーションにカスタムコードレベルおよびデータベースレベルの変更を実装する必要があります。

パスワード暗号化方法を更新します。現在、Discourse はパスワード暗号化に「PBKDF2」を使用しています。
私の要件に従って、「PBKDF2」の代わりに「MD5」に切り替える必要があります。

ローカル環境にコードを設定し、Docker を使用して本番環境に Discourse をデプロイしました。

ローカルコードを要件に基づいて更新したら、更新されたコードを本番環境に再デプロイする必要がありますが、現在は本番環境の Discourse 公式 Docker ファイルを設定しているため、新しい Docker ファイルを生成する必要があります。新しい Docker ファイルを作成する方法と、本番環境の Discourse アプリケーションの PostgreSQL データベースにアクセスする方法を教えてください。

これは重大なセキュリティダウングレードのように思われます。MD5はパスワードハッシュには適していません。この変更はDiscourseの重要な部分に影響を与えるだけでなく、将来のすべてのリリースで維持する必要もあります。

達成しようとしていることを説明していただければ、より良いアプローチを提案できるかもしれません。

Discourseのカスタマイズについては、Developing Discourse Plugins - Part 1 - Create a basic plugin をご覧ください。プラグインシステムを使用すると、コア機能を安全に拡張できます。

「いいね!」 6

新しいAPIを作成し、本番コードに再デプロイする必要があります。本番環境のDockerにデプロイするにはどうすればよいですか?

変更はプラグインで行うことをお勧めします。もしDiscourseをフォークして独自にメンテナンスしようとすると、過去の事例から見て、非常に、非常に後悔することになるでしょう。

MD5ハッシュとして保存されたパスワードで、どのような問題を解決しようとしていますか?すでに指摘されているように、インターネット全体がMD5は暗号化ではなく、パスワードの保存には適さないという見解で一致しています。

「いいね!」 3

補足:Jayが指摘しているように、MD5PBKDF2も暗号化関数ではありません。

どちらもハッシュ関数です。Discourseはパスワードを保存しません。

その通りです。私たちがそう言わなくても、私たちだけがそう言っているわけではありません

どのような問題を解決しようとしていますか?

「いいね!」 4

解決策を見つけるのを手伝ってください。ROR (Discourse) の暗号化方法を変更する必要があります。現在、MD5 暗号化を使用しています。ローカル環境でコードレベルの変更を行いました。Docker の助けなしに、これらの変更をライブサーバーに反映させるにはどうすればよいですか?

現在、本番環境は Docker 構成を使用してセットアップされています。

本番環境のセットアップに使用されたリンクは次のとおりです。
URL: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

まだ、どのような問題を解決しようとしているのか説明されていません。MD5が何を解決しようとしているのか、もう少し詳しく教えていただけますか?
また、行った変更はすべてプラグインに実装する必要があります。プラグインの仕組みについて学習を始めましたか?
しかし、おそらく本当に望んでいるのは、既存のアプリケーションに対してDiscourseを認証させることでしょう。その場合、discourse_connectを実装するだけでよく、Discourseはパスワードストレージの選択について知る必要はありません。

「いいね!」 2