web-dev-qa-db-ja.com

/ dev / randomからのRdRand

" Linus Torvalds 、RdRandを/ dev/randomから削除することを求める Change.org への請願に応じて、請願者を、コードを理解していないことに無知と呼ばれることで非難しましたLinuxカーネル:英国のカイルコンドン氏は、「Linuxカーネルの全体的なセキュリティを向上させるため」に、Linusが/ dev/randomからRdRandを削除するように、Change.orgに請願を提起しました。

/ dev/randomのRdRandの問題は何ですか?

18
I'll-Be-Back

これは正式にテストされていないハードウェア実装であり、独自仕様です。潜在的な心配は、IntelがNSAの要求で実装をバックドアした可能性があることです。

Rdrand出力をLinuxカーネルに混合する現在の方法PRNGは、プールにXORされることです。これは、数学的には、rdrand実装からの弱い出力が弱まる可能性がないことを意味します全体的なプール-それはそれを強化するか、セキュリティに対して何もしません。

ただし、実際のリスクは、特別なシナリオでrdrandの使用を検出する方法でxor命令がバックドアされ、xorが呼び出されたときに異なる出力を生成し、only意図的に弱めたrdrand出力をプールに配置します。

実現可能ですか?はい。もっともらしい?最近の啓示を考えると、多分。バックドアされている場合、Linusはそれに加担していますか?あなたの推測は私のものと同じです。

また、素晴らしい論文があります [PDF] CPUのトランジスタレベルでハードウェアバックドアを非表示にする方法

編集、2019年2月。ユーザー Luc は、この回答が最初に作成されてから変更があったとコメントしています。

Linux 4.19以降、ブート時にrandom.trust_cpu = 0フラグを渡さない限り(またはコンパイル時間を設定しない限り)、カーネルはRDRANDを信頼してCSPRNGを完全にシードします。これが初めての起動ではない場合、これは問題になりませんが、新しくインストールされたシステムまたは新しく作成されたVMには予測可能な起動シードファイルがある(またはシードファイルがまったくない)可能性があるため、これらのシステムでは、これは適切なエントロピーの収集に関連しています。

22
Polynomial

RdRand命令は、これらのプロセッサーに現れたハードウェアのバグが原因でIvy Bridgeで壊れています。エラー以外の理由があるのも無理はありません。確定的疑似ランダムアルゴリズムを使用してシードされた暗号化アルゴリズムは、本物の乱数をシードされたものよりも、数億倍も簡単に解読できます。私は実際にその命令の恩恵を受けるエンジニアリングアプリケーションを持っていますが、それは私の新しいIvy Bridgeラップトップの違法命令例外を引き起こします。返金できますか?ハードウェアのバグに関する初期情報については、RdRandのWikipediaエントリを参照してください。

2
SeanVN