2

暗号化 (フグ対称) を使用してパケットを送信しています。セキュリティの観点から、パケットが有効であることを確認するために使用できるヘッダー (パケットの残りの部分でも暗号化されている) をパケットの先頭に置くことは悪い考えですか?

疑似コードの例:

byte[] verificationHeader = [1,2,3,4,5];
receive(packet);
unencrypt(packet);
if (packet.getData().beginswith(verificationHeader)) {
   // assume packet is good, try to do something with it
} else {
   // drop packet
}

他のアプリケーションが私のグループでブロードキャストされている可能性があり、他のものと混同したくないので、それを確認したい.

ハッカーがパケットを解読するのに役立つ可能性はありますか?

それが悪い考えである場合、代替案を提案できますか?

4

2 に答える 2

1

少なくとも理論的には、それはかなり悪い考えです。ブルートフォース攻撃を行う誰かに既知の「ターゲット」を与えるので、正しいキーを取得したとき/取得した場合はそれを知っています(そしてすぐにそれを知っています)。

少なくともセキュリティの観点からは、その部分を平文のままにしておく方がはるかに良いでしょう。それもより実用的かもしれません-それがとにかく役に立たない場合、それはあなたが何かを解読することからあなたを救います。

于 2012-04-16T23:11:22.553 に答える
0

それが悪い考えかどうかはわかりませんが、そうであると判断した場合は、乱数を送信し、その後に乱数を送信するか、ヘッダーと一緒に送信することができます。次に、あなたまたはその番号の反対側で、再び乱数を使用します。次に、同じものを何度も送信することはありませんが、すべて暗号化されているため、ハッキングできません。私の計算は正しいと思いますが、アイデアはとにかく成り立ちます。

ie
value = random | header;
send (random, value);
header = random | value;
于 2012-04-16T23:21:41.783 に答える