2009-04-03 1 views
0

私は、本社と移動中の営業担当者との間で顧客データを共有できるクライアント/サーバーを作成しています。セキュアシリアル化

サーバーは、顧客データをXMLファイルにダウンロードして書き出しますが、データをメモリに保存して、そのままローカルクライアントとして機能させることができます。

私は顧客のデータを簡単にインターネット経由で送信できるようにArrayListをシリアライズする予定です。どれくらい安全ですか?シリアライズされたオブジェクトを送信する前に、フォーム暗号化を調べる必要がありますか?

答えて

4

シリアル化の一部として暗号化を実行しません。

2つの問題がここにあります

  1. はすなわちシリアライゼーション、送信することができる形式でオブジェクトを置きます。
  2. トランスミッションが安全であることを確認します。

1と2は別々の問題であり、これらを1つのソリューションに組み合わせると、今後は問題が発生します。

私はすぐにシリアライゼーションを使用し、TLSのような安全な伝送チャネルを使用します。

3

私の推測では、HTTPSを見てください。

2

シリアライズの部分について考えるべきではありません。シリアライゼーションプロセスの終わりに、データ(バイナリまたはXMLのいずれか)が得られ、それを安全でないものとして扱うべきです。

HTTPSを安全に転送する計画がある場合は、HTTPSを調べる必要がありますが、電子メールやファイル転送などの別の方法で転送する場合や、安全に保存またはアーカイブする必要がある場合は、おそらくPKCS#7 and related standardsを見てください。

2

お客様のデータをインターネット経由で簡単に送信できるように、ArrayListをシリアル化する予定です。どれくらい安全ですか?

葉書に印刷して郵便に入れても安全です。あなたとレシーバーの間のチェーン内のすべてがコンテンツを見ることができます。

シリアライズされたオブジェクトを送信する前に、フォーム暗号化を調べる必要がありますか?

これは通常の方法です。クライアントとサーバーの間の接続が暗号化されているが、両端の「プレーンテキスト」にメッセージが表示されるセキュリティ保護されたソケットなどのトランスポートレベルのセキュリティ、またはメッセージ自体を暗号化してクライアントで復号化することができます。トランスポートではなくメッセージを暗号化する方がレイヤーが増えるので複雑ですが、メッセージを保存したり、クライアントサーバーからキャッシュを許可するものに変更することができます。移動中の人々がラップトップを失った場合に情報が失われることを心配している場合は、メッセージを暗号化し、使用時にのみ解読する方が良いかもしれません。 (もう1つの方法は、すべてのメッセージを保存するドライブを暗号化して、すべてを保護するものですが、コンピュータ上のすべてのものに影響を与えますので、会社のITポリシーを変更する必要があります)。

3つすべてを一度に使用できます。

1

SSL経由のHTTPSまたはTCPの使用は、通信チャネルによって異なります。各側に証明書を安全に展開する必要がある場合は、その中のすべてが安全です。

また、シリアライズする前に暗号化を行うと、その秘密鍵を両側で使うことができます。鍵を安全に保管し、その鍵が届かないようにする必要があります。しかし、後でそれらを置き換えることがあり、キー管理が少し苦しいことがあるので、これは素晴らしいことではありません。私は、顧客データが が簡単に インターネット経由で送信することができるように のArrayListをシリアル化するつもりHTTPS/TCP + SSL

2

でスティックを言うと思います。どれくらい安全ですか?私は の前にいくつかのフォームの暗号化を調べる必要がありますシリアル化オブジェクトを送信する?

暗号化はシリアル化ステップで実行しないでください。明確にするには:直列化はオブジェクトを取り出し、バイト列に変換します。すべてのシリアライゼーションは、不必要な操作を行わずに済ませて、複雑なものにする必要があります。

ビットのパッケージをエクスポートする準備ができたら、暗号化を実行する必要があります。ネットワーク経由などの「ライブ」を目的地と通信する場合は、SSLを使用して回線を保護する必要があります。幸いにも、これはあなたのTcpClientSslStream (MSDN)を付けるだけで簡単です。より大きな(暗号化されていない)大きなストリーム内のビットの小さなパッケージを暗号化することは、一般的に誤ったセキュリティであることに注意してください。安全であるためには、会話全体が安全でなければなりません。

一方、ビット(ファイル)を保存する場合は、何らかの種類のオフライン暗号化を使用する必要があります。ここでも、.NETフレームワークがすべての詳細を処理します。あなたのFileStreamCryptoStreamオブジェクトを添付すれば完了です。

2

シリアライズし、gzipしてからHTTPSで送信します。これらの手順を適切な順序に保つことが重要です。暗号化されたデータを圧縮することはできません。圧縮されていないデータの暗号化には時間がかかり、理論上はセキュリティが低下します。

関連する問題