既存のセキュリティ コードを変更しています。仕様はかなり明確で、サンプル コードもありますが、私は暗号の専門家ではありません。実際、サンプル コードには、事実上、「このコードを逐語的に使用しないでください」という免責事項があります。
変更しようとしているコードを監査しているときに (これは機能が完成していると思われます)、チャレンジの生成に使用されるこの小さな宝石に出くわしました。
static uint16 randomSeed;
...
uint16 GetRandomValue(void)
{
return randomSeed++;/* This is not a good example of very random generation :o) */
}
もちろん、私がすぐに最初に行ったのは、それをオフィスに回して、みんなで笑えるようにすることでした。
このコードを作成したプログラマーは、(コメントで示されているように) 良いアルゴリズムではないことを知っていましたが、セキュリティへの影響を理解していなかったと思います。彼らはメインループでそれを呼び出すことさえ気にしなかったので、少なくともフリーランニングカウンターに変わります - まだ理想的ではありませんが、これを超えた世界です.
しかし、私が作成したコードが、本物のセキュリティの第一人者を同じように笑わせたり震えさせたりすることはわかっています。
- 暗号化に特有の、理解する必要がある最も一般的なセキュリティの問題は何ですか?
- よくある間違い以外に知っておくべきことについて、適切な知識を与えてくれる優れたリソースは何ですか?
-アダム