/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系オペレーティングシステムにはそのままでは適用できなかったり、カーネルのバージョンが変わると動作が変わるものもあり、使用するオペレーティングシステムおよびカーネルのバージョンに合わせて内容を読み替えることが推奨される。



IT製品 "比較/検討" 情報

転職ノウハウ

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

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

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

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

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

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

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

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

人気記事

一覧

イチオシ記事

新着記事

TVアニメ『NEW GAME』、PV第2弾公開! 第1話あらすじ&場面カット紹介
[22:08 6/27] ホビー
『しくじり先生』の授業を360°で体験! テレ朝夏祭りにVRブースが登場
[22:00 6/27] エンタメ
照れ屋男子がお気楽女子に悪戦苦闘!?学園4コマ「照屋くんは絆されない」1巻
[21:49 6/27] ホビー
Ka signature「Ex-Sガンダム」はMETAL ROBOT魂で展開! 可動と質感を両立
[21:35 6/27] ホビー
モフモフ触り納め!セーラー服を着た柴犬描く「しばいぬ子さん」最終4巻
[21:31 6/27] ホビー

求人情報