私はJavaFX 2.0スタンドアロンアプリケーション(.exeとして配布されます)を構築していて、MongoDBインスタンスへの接続を開きます。接続は、Mongoワイヤプロトコルを使用した標準のMongo接続にすぎません。
Mongoワイヤプロトコルは安全ですか十分、またはユーザーはそれを調べてデータがやり取りされることを確認できますか?
Mongoデータベース接続は将来のある時点でSSLを使用できるようになりますが、それはまだ利用できません。
代わりに、REST WebサービスをSSLでのデータアクセスに使用する必要がありますか?データベースへの直接接続はかなり高速であるため、それを維持できればすばらしいですが、大きなセキュリティもありません。問題。
ご参考まで。クライアント側アプリケーションで直接データベース接続を提供することは悪い考えです。正しい認証と入力検証を可能にするRESTfulインターフェースを構築します。これにより、アプリケーションがアクセスできるものをより厳密に制御できます。
問題は、現在MongoDBがSSLカプセル化を提供していないことです。これは、それ自体で、ワイヤプロトコルが盗聴される可能性があることを意味します(プロトコルを介して送信されたデータは公開されます)。したがって、このプロトコルをローカルではない(ネットワーク全体で)実行している場合、はい安全ではないですが、プロトコルitselfは安全ではありませんが、カプセル化がないため、実装では機密性や整合性を保証できません。
ただし、プロトコルyourselfをカプセル化することでこれを修正できます。プロトコルがSSLを提供しない場合は、最初にトンネルを作成し、そのトンネルを介してプロトコルを送信します。たとえば、WebサーバーとMongoDBの間に暗号化されたVPNを作成し、このVPNを介してワイヤープロトコル接続を送信します(安全なVPNプロトコルを使用する必要があることに注意してください)。エンドポイント暗号化を使用できるように、これを実装することをお勧めします。
これにより、盗聴者が有線接続を盗聴することを禁止します。
Mongoデータベース接続は将来のある時点でSSLを使用できるようになりますが、それはまだ利用できません。
これについてのより最近のリファレンスを書くため。
https://docs.mongodb.org/manual/tutorial/configure-ssl/ から
バージョン3.0の新機能:ほとんどのMongoDBディストリビューションには、SSLのサポートが含まれています。
...
MongoDBの特定のディストリビューションには、SSLのサポートが含まれていません。 SSLを使用するには、SSLをサポートするパッケージを選択してください。
OS /ディストリビューションのMongoDBが here からSSLをサポートしているかどうかを確認できます。