http://www.mongodb.org/ のサイトに記載があります。
http://www.mongodb.org/display/DOCS/Security+and+Authentication
Security and Authentication
...
FAQ
- Are passwords sent over the wire encrypted?
- Yes. (Actually a nonce-based digest is passed.)
- Are database operations, after authenticating, passed over the wire encrypted?
- No.
URLを見ると判りますよ。
httpではなくhttps(HTTP over SSL/TLS)となっていますので、
SSL/TLSを使っています。
https://mongohq.com/login
いらないとは思いますが、他の人もみるでしょうから、辞書も追加しておきます。
http://e-words.jp/w/HTTPS.html
HTTPS【HTTP over SSL/TLS】
通信プロトコルの種別などを表すURIスキームの一つで、Webのデータ転送に用いられるHTTPが、SSLやTLSで暗号化されている状態を表したもの。WebサーバとWebブラウザの間の通信が暗号化されていることを意味し、通信経路上での盗聴や第三者によるなりすましを防止する。
http://www.atmarkit.co.jp/aig/02security/https.html
http://ja.wikipedia.org/wiki/HTTPS
きっちりかっちり見たわけではないですが、
php用のドライバなどを見てみると接続は平文(暗号化されてない)ですね。
https://github.com/mongodb/mongo-php-driver
ただ・・・クライアントから直接アクセスするのではなく、
WEBサーバーにあるrubyとかphpなどからのアクセスになるので、
顧客データのような重要なものを置かない限りは気にしすぎと言えるかもしれませんし、
心配であればデータを暗号化して保存するようにすることでも十分だと思われます。
ログイン操作そのものが秘匿化されていないと、傍受されてアカウントを乗っ取られる可能性がある(とくにMongoHQみたいな有名なサービスだと尚更危ない)ので、そこの部分が特に知りたかったのですが、MongoDBの認証プロトコルはa-kuma3さんの回答にある通りDigest認証なので、そこは大丈夫なようですね。
ただ、データそのものは平文みたいですので、少なくともアプリのユーザ用のパスワードを平文で送るような真似だけはしてはいけませんね。。。
ありがとうございました。
MYQSLなどと基本は同じで、暗号化はされていない。
http://blog.madoro.org/mn/86
http://d.hatena.ne.jp/yamamucho/20110430/1304129571
http://support.mongohq.com/
Java 開発 2.0: クラウド・コンピューティング用の Java アプリケーション・データをセキュアにする
秘密鍵を使用した暗号化によってクラウド・データを保護する
リスト 6. MongoDB での暗号化
http://www.ibm.com/developerworks/jp/java/library/j-javadev2-23/
やはりアプリケーション側での暗号化がカギのようですね。
Heroku + MongoHQのような組み合わせでアプリを作ることを考えてましたが、外部サービスを利用する以上は暗号化は多少考慮する必要がありそうです。
http://www.mongodb.org/ のサイトに記載があります。
http://www.mongodb.org/display/DOCS/Security+and+Authentication
Security and Authentication
...
FAQ
- Are passwords sent over the wire encrypted?
- Yes. (Actually a nonce-based digest is passed.)
- Are database operations, after authenticating, passed over the wire encrypted?
- No.
先のお二方の回答と、そのコメントがあったので、探しやすかったです。
Stack Overflow にも、似たような質問がありました。
http://stackoverflow.com/questions/8803332/mongodb-database-encryption
rdb 自体が暗号化の仕組みを持ってなくて、クライアント側で暗号化するときには、
クライアントプログラムの言語やライブラリに依存するかもしれない、という悩みがあります。
逆に、rdb 自体が暗号化の仕組みを持っていると、DB のダンプだと内容が分からなくて、
障害時の復旧に苦労することがある、という懸念はあるんですよね。
暗号化って、難しいです(個人の感想です)。
ありがとうございました。よくわかりました。
他に暗号化してデータを記録してしまうと検索が難しくなるという問題もありますね。
せめて、通信路だけ暗号化して保存時に平分に戻してもらえると色々問題が解決するんですけど・・・
今後の拡張に期待、といったところでしょうか。
先のお二方の回答と、そのコメントがあったので、探しやすかったです。
2012/05/06 16:53:22Stack Overflow にも、似たような質問がありました。
http://stackoverflow.com/questions/8803332/mongodb-database-encryption
rdb 自体が暗号化の仕組みを持ってなくて、クライアント側で暗号化するときには、
クライアントプログラムの言語やライブラリに依存するかもしれない、という悩みがあります。
逆に、rdb 自体が暗号化の仕組みを持っていると、DB のダンプだと内容が分からなくて、
障害時の復旧に苦労することがある、という懸念はあるんですよね。
暗号化って、難しいです(個人の感想です)。
ありがとうございました。よくわかりました。
2012/05/06 18:23:29他に暗号化してデータを記録してしまうと検索が難しくなるという問題もありますね。
せめて、通信路だけ暗号化して保存時に平分に戻してもらえると色々問題が解決するんですけど・・・
今後の拡張に期待、といったところでしょうか。