1

Windows を実行している標準的なコンピューターにどの程度の信頼を置くことができますか? 私が書いたように私のコードを実行することをどの程度確実に確信できますか? 「int j = 5;」のようなものを宣言すると、j が常に 5 になることをどのように確認できますか? 標準の x86 コンピューター システムで信頼を測定する方法はありますか? j = 5 であることを確認するために、どのような保護がありますか?

私が考えているのは、1 ビットでもずれることがなく、すべてが記述されたとおりに実行する必要がある重要なシステムです。

4

4 に答える 4

2

これは、悪意のある誰かがコードを変更して、プログラムされていないことを実行する可能性に関するものですか? それとも、ランダムエラーが計算を台無しにする可能性についてですか? 後者の場合、最新のコンピューターのエラー率は 10^17 分の 1 程度であるため、おそらく心配する必要はありません。これは、1 プロセッサあたり年間 1 未満です。それでも許容できない場合は、エラー修正を使用できます。アルゴリズムを使用して、有効なエラー率を必要なだけゼロに近づけます (その代償として、特定の計算を行うためにより多くの時間が必要になります)。

しかし、あなたが心配しているのがハッカーなら... セキュリティの期待はまったくありません. コンピューターを物理的に制御している人物は、原則としてコンピューターを変更して、コンピューターで実行できると考えられるあらゆることを実行できます。必要に応じて、コードを逆アセンブルし、アセンブリ命令を自由に変更して、プログラムを思い通りに動作させることができます。ただし、ほとんどの場合、ハッキングする価値のあるものを書いていないため、実際にはこれについて心配することはありません。軍用暗号化ハードウェアや核ミサイル制御チップを設計するプログラマーなどは、改ざん防止ハードウェアに頼ることができるため、コードの変更が非常に困難になります。(ただし、そのようなものは高価になる可能性があります)

Ross Anderson 著の「Security Engineering」という本を読んでみてください。この本では、この改ざん防止ハードウェアのいくつかと、コードを保護する必要がある一般的な方法について説明しています。

于 2009-04-08T23:28:49.773 に答える
1

基本的に、なし。この記事を読んで、信頼の概念を再評価することを検討してください。:-)

于 2009-04-08T23:17:47.553 に答える