質問: ユーザーの電子メールアドレスと電子メールパスワードを要求するのは悪い考えですか? 私はネットワークセキュリティ機器を製造している会社でテスターとして働いています、私は機能について開発者といくつかの議論をしています。 機能は、アプライアンスによってユーザーに送信される通知電子メールが、ユーザーが使用するメールサーバー(gmail、ローカルメールサーバーなど)を使用して、ユーザー資格情報(電子メールと電子メールパスワード)を使用して送信されることです これらの認証情報は**プレーンテキスト**でマシン内にあり、正しいファイルへの猫と一緒に利用できます。開発者は、クレデンシャルをメールサーバに送信するときには常に暗号化を解除する必要があるため、暗号化を使用しても意味がないと主張しています。 今私は何を考えるべきかわからない、これを行うための正しい方法はありますか?または機能が安全ではないとそれを行うための安全な方法はありませんか?
回答: あなたの開発者は良いセキュリティプラクティスを議論するために座る必要があります。 基本的に、データをディスク上で暗号化したままにするということは、攻撃者がしなければならないのは、そのファイルの本文にアクセスすることだけです。あなたの開発者は、彼のソフトウェアがセキュリティの脆弱性がないこと、システム上の他のソフトウェアが脆弱性がないこと、そしてオペレーティングシステムが脆弱性がないことを保証できません。彼はまた、システムがシングルユーザーモードで動作すること、またはシステムに適切なファイルシステムレベルのセキュリティが適用されることを保証できません。彼はまた、ハードディスクが別のオペレーティングシステムにマウントされて、システムレベルのセキュリティに何も関係がないことを保証することはできません。 基本的に、彼は彼がそのユーザーのデータをそのオペレーティングシステムにアクセスできる他の人と共有していることを保証しています(合法であるかどうか)。彼はエンドユーザーの知らないうちにこれを行っています。 しかし、あなたはまた、ユーザーのデータを暗号化するという考えに半分しか近づいていません。実際には、ユーザーのパスワードをまったく保存しないでください。GmailのOAuth2統合など、問題のメールクライアントのAPIを使用してください。 [https://developers.google.com/gmail/api/auth/web-server](https://developers.google.com/gmail/ api/auth/web-server ) からメールアカウントに接続します。これは正しい方法であり、暗号化されているかどうかに関わらず、身分証明書があることを避けます。同じことが、ほとんどすべてのメールクライアントにも当てはまります。それらのAPIと統合します。たぶん、最初の握手以外では、ユーザーのパスワードを知る必要はありません。