2011-06-29 5 views
1

私は、最高のセキュリティ保護が必要なインターネット上のリモートサーバー上の機密データに対してCRUDを行うための管理インターフェイスを開発しています。私は2つの選択肢を持っていますが、どちらがより良い方法であるかわかりませんでした。Webアプリケーションとクライアント/サーバーのネイティブアプリケーションのセキュリティが賢明ですが、これは優れていますか?

  1. ネイティブ・サーバー/クライアントアプリケーションを作成し、SSLのような暗号化とTCPソケットを使用して通信

  2. などLAMP + SSLを使用してWebアプリケーションを作成し、このようなIPフィルタなどのメソッドを使用してアクセスを制御し、パスワードパスワードを使用してアクセスを制御します。

ウェブを置いても何も安全でないことを十分に認識しており、サーバーにトンネリングしてローカルアプリケーションとして実行するオプションを検討しました。

しかし、これはユーザーの視点から使用するのは非常に難しいでしょうか。

セキュリティに関する知識はあまり知られていないので、アドバイスが参考になります。ありがとう。

+0

セキュリティにあまり慣れていない場合は、独自のソリューションを使用しないでください。 –

答えて

0

どちらのアプローチも、本質的に他のものより安全です。 TCPソケットを使用する場合、危険なのは、サーバがTCP接続をリスンして接続していることに気づき、データ交換プロトコルを動作させることです。 Webアプリケーションのアプローチを採用すると、誰かがWebサイトのURLを検出してフィルタリングを通過し、認証されたセッションを確立(またはハイジャック)できる危険があります。

攻撃者が同じ基本手順(サービスが存在すること、サービスに接続/アクセスする、保護された操作を実行する権限を持っていることを確認する)を実行する必要があります。いずれにしても、真に安全なシステムを作るために、自分が何をしているのか、あるいは宿題を徹底的に行うことが必要です。

そういう意味では、あなたがもっと慣れ親しんでいる方法をお勧めします。もちろん、Webアプリケーションのルートを選択する場合は、事前に構築されたセキュリティライブラリとツールを幅広く選択することを検討する価値があります。たとえば、IPベースのブラックリストとホワイトリストのパラメータを指定できる多くのJava Filter実装があります。多くのサーバには、ユーザ認証などを処理するための事前構築されたフレームワークが含まれています。

0

tcpソケットとhttpsの違いは、セキュリティ上の違いはほとんどありません。ソケットは標準的なものではないので、単純な既製のブラウザ+標準のhttp [s]が動作しない可能性があるため、わずかに保護されます。しかし、セキュリティよりもむしろあいまいです。

あなたは2つのことについて考える必要があります。 プライバシー:他の人が輸送中のデータを見ることができないようにします。 SSLのようなものがこれをカバーするはずです。 認証:クライアントがそれが誰であるかを信頼するサーバー。それはより困難な問題です。あなたが何らかの種類の「パスワード」を必要とするなら、それは助けますが、もちろんあなたはパスワードなどを管理しなければなりません。それ自体は大きな話題です。

0

ユーザーのパスワードが「12345」の場合、世界で最も強力な暗号化は無関係です。セキュリティについて懸念している場合は、パスワードを使用しないでください。

+0

あなたと同意しますが、私たちは小規模なユーザーベースに対応する必要があります。したがって、強力なパスワードを設定して配布することができます。 –

+0

確かに、あなたはそれを変更することを防ぐことができますか?またはそれを書き留めますか?または、ブラウザで「覚えています」をクリックしますか?代わりに証明書を使用するのと同じくらい簡単です。 (またはそれに加えて、より良い。) –

+0

ニースのアドバイス。それを考えます。ありがとう –

関連する問題