1

私はクライアントサーバーモデル(クライアントはデータを収集し、RESTを介してサーバーに送信するサーバー上のスクリプトです)を作成しており、送信されるデータを暗号化したいと考えています。

現在、特定のタイムゾーンから時間を追加するランダムキーを生成する関数があります-IP-HOSTNAME-YEAR-MONTH-DAY-HOUR-(MINUTE / 2)

キーの各部分は、SHA256を介して3,000〜10,000回実行され、最後に128ビットキーが生成されます。全体として、スクリプトの完了には約0.8〜1秒かかります。

データはAESを介して暗号化され、キーに128ビットキーの一部を使用します。iv。

サーバースクリプトは、接続をリッスンし、IPアドレスがリストされているかどうかを確認してから、データの復号化に進みます(同じ方法を使用してキーとivを生成します)

私の質問は:-私は車輪を再発明していますか?-データ暗号化用の動的で時間制限のあるキーを生成するためのより良い方法はありますか?

私の目標は、60〜120秒に制限されたキーを取得してから破棄し、複数のサイクルを使用してキーを生成することでした(TruecryptのPythonの方法を読み取ったおかげで)。そのため、データがキャッチされても復号化されません。 "簡単に" 。また、サーバーモデルには、暗号化された暗号化を暗号化するために使用するSSL証明書があります。

私は、AES暗号化に使用される各クライアントスクリプト(RSA生成)に静的キーを与えることを考えていました。

あなたの正直な答えとこれを改善するための新しいアイデアに感謝します。

4

2 に答える 2

3

はい、しないでください!暗号化技術は、ある理由で開発とテストに何年もかかります。正しく理解するのは非常に困難です。RSAまたはその他のPKIインフラストラクチャの使用を検討することをお勧めします。もし私があなたなら、PyCryptohttps://www.dlitz.net/software/pycrypto/を調べます。いずれにせよ、あなた自身の地図作成システムを実装しないでください。それは壊れて安全ではありません!

于 2012-04-10T05:45:48.753 に答える
3

最も単純なSSL/TLS(PKIなし)をRESTのトランスポート保護として使用することは、最初から正しく機能するための最も効果的な方法です。

それに加えて、いくつかのトピックを明確にする必要があります。例えば:

  1. サーバーになりすましている可能性のある攻撃者にクライアントがだまされないようにすることが重要ですか?そうである場合は、クライアントが証明書を使用してサーバーを認証できるように、PKIを適切に設定する必要があります。または、TLS-SRPを使用することもできます。
  2. サーバーが実際のユーザーになりすましている可能性のある攻撃者にだまされないようにすることが重要ですか?そうである場合は、認証スキームを設定する必要があります。たとえば、HTTPダイジェスト、SSLクライアント証明書、TLS-SRPなどです。
  3. クライアントまたはサーバーでの侵害が、以前のセッションで交換されたデータを危険にさらさないことが重要ですか?そうである場合は、暗号スイートを完全転送秘密(DHE)を提供する暗号に制限する必要があります。

SSLの設定で問題が発生した場合にのみ、独自のプロトコルをロールアップすることを検討する必要があります。

于 2012-04-10T07:16:28.680 に答える