/dev/randomではなく/dev/urandomを使うべき理由?

 

Myths about /dev/urandom」が定説を覆す解説を行っている。Linuxを使う場合には/dev/urandomよりも/dev/randomを使う方が安全だといわれていたが、ブロックするというその特性や実際の内部実装などから考えれば、/dev/urandomが適切な選択肢であり、強い理由があって/dev/randomを使っているのでなければ/dev/urandomが十分なランダムデータの入手源であるという。

説明はLinuxカーネルを焦点にしたもので、マニュアルにも記載されている定石「/dev/randomは、疑似乱数生成器を利用する/dev/urandomよりもランダム性が高い」というのは、必ずしもそういうことではないと説明している。説明は概念的なところから実際の処理の流れ、暗号処理が使用している疑似乱数生成器などに触れ、最終的に/dev/randomを必要とする強い理由がない限りは/dev/urandomで十分であるといった説明になっている。

FreeBSDの実装にも言及がある。FreeBSDでは/dev/urandomは/dev/randomへのシンボリックリンクになっており、かつ、/dev/randomにおいては基本的にブロックが発生しない仕組みになっている。組み込み機器やアプライアンスなど動作環境が固定化された環境ではエントロピーを外部から予測される危険性があり、よく設定された疑似乱数生成器の方が安全になるケースがある。FreeBSDの/dev/randomは起動時に十分なエントロピーが得られない場合にのみ一度だけ読み込みをブロックするとあり、記事ではこの動作は正しいと説明している。

なお、こうした挙動はシステム(特に組み込み機器)によってはユーザビリティを損なうことがある。起動時に読み込みがブロックされることを嫌う組み込み機器などがこれに該当する。FreeBSDではこのあたりの挙動はsysctl(8)値で制御できるようになっている。また、疑似乱数生成器ではなくハードウェアを使用することもできる。

Myths about /dev/urandom」で説明されている内容はLinuxカーネル、しかも現状での機能に関するものであり、今後も有効な内容とは限らない。また、状況によってはブロックを実施するLinuxカーネルの/dev/randomが/dev/uradnomよりも適切であることもある。また、ほかのUNIX系オペレーティングシステムにはそのままでは適用できなかったり、カーネルのバージョンが変わると動作が変わるものもあり、使用するオペレーティングシステムおよびカーネルのバージョンに合わせて内容を読み替えることが推奨される。



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

アニメ「モブサイコ100」BD&DVD9月より続々、イベント申込券やおまけ映像も
[00:00 7/26] ホビー
[ビッグオーダー]「未来日記」作者の異能力マンガが完結 次号にエピローグ
[00:00 7/26] ホビー
[東京ESP]少年エースの超能力マンガ 6年5カ月の歴史に幕
[00:00 7/26] ホビー
Googleお役立ちテクニック - Chromeブラウザに入れて便利な拡張機能・5選
[00:00 7/26] パソコン
「アイステ」が重ねた時間を巡るライブ! 「THE IDOLM@STER STATION!!! Summer Night Party!!!」
[23:44 7/25] ホビー

求人情報