/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年後は? あなたの年収をデータに基づき予報します。

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

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

人気記事

一覧

イチオシ記事

新着記事

[おそ松さん]舞台版のイヤミのビジュアル公開 “個性派”村田充がなりきり
[18:00 8/27] ホビー
岡村隆史、あばれる君の腫れ上がった顔に衝撃「体張っていて感動」
[18:00 8/27] エンタメ
[エイジアプロモーション]益若つばさ、安西ひろこ、島袋聖南の所属事務所がオーディション開催
[17:52 8/27] エンタメ
高橋愛、浴衣姿で地元・坂井市のアンテナショップ1日店長に就任
[17:30 8/27] エンタメ
[笑福亭鶴瓶]鶴瓶落語が歌舞伎に 作者に聞く「山名屋浦里」
[17:26 8/27] エンタメ

求人情報