Intelが最近有名なセキュリティ会社を買収したことで、私はどのソフトウェアがチップレベルでより安全になるかについて考え始めています。私が思いついた例は次のとおりです。
- 乱数の生成
- 暗号化
- メモリ保護
しかし、ハードウェアレベルのセキュリティは、ソフトウェアベースのセキュリティよりも安全ですか?(どのレベルで操作しても、ガベージインガベージを想定します)組み込みセキュリティの設計上の考慮事項は何ですか?制限は何ですか?最後に、このトピックについてさらに学ぶための優れたリソースはありますか?
実際、Intelはすでに多くのハードウェアベースのセキュリティテクノロジー(チップとチップセット)を実装しています。
関連するテクノロジーは次のとおりです。
一般に、ハードウェアベースのセキュリティは、コードを「下に置く」(より低いレベルで微調整する)ことは事実上不可能であるため、より安全です。
ハードウェアレベルのセキュリティでは、一部のセキュリティ問題しか解決できません。たとえば、NXゾーンを使用すると、バッファオーバーフローを悪用することがより困難になります(ただし、不可能ではありませんが、return-to-libc)。使用しているCPUアーキテクチャは、SQLインジェクションなどのより一般的な脆弱性に影響を与えることはなく、影響はないと思います。ハードウェアにも脆弱性が存在する可能性があります。たとえば、IntelCPUのこの脆弱性です。
Intelは、現在の製品をより安全にしたいと考えています。Intelはまた、貯蓄に多額の資金を持っており、彼らはこの最近の購入を成長分野への投資と見なしている可能性があります。
このスレッドは少し古いですが、インテルプロセッサー(2012世代プロセッサー以降)に組み込まれているインテルセキュアキーテクノロジー(乱数生成)についても読むことができます。実装ガイドでは、インテルよりも安全である理由について詳しく説明しています。ソフトウェアベースの実装。
このスレッドはかなり古いものですが、乱数の生成、セキュリティ、およびパフォーマンスの側面について説明しているIntelSecureKeyに関する論文に出くわしました。完全な論文はここにあります(http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120)が、非有料版はここ(https://arxiv.org/abs/1707.02212)。
つまり、乱数生成に使用できる最高のテクノロジーは、RdRandおよびRdSeed命令セットを使用するIntelSecureKeyです。これは、暗号化された安全な疑似乱数ジェネレータであり、オンチップのエントロピーソースを使用してランダムに数値ジェネレータをシードします。NIST SP800-90Ar1 / B / C、FIPS-140-2、ANSIX9.82などの最新のセキュリティ仕様に完全に準拠しています。