[OpenBSD]


「多少なりともまともなセキュリティエンジニアの唱えるべき呪文とは:『セキュリティというのは 製品ではなくプロセスなんだ』ということ。単に、強い暗号方式をシステムに組み込むだけじゃすまない。 システム全体の設計にあたって、暗号方式を含むあらゆるセキュリティ手段がいっしょに働くよう 設計するということだ」

-- Bruce Schneier, "Applied Cryptography"著者.

暗号の使用


Index
なぜ暗号つきで出荷するのでしょう ?
OpenSSH
疑似乱数生成器 (PRNG): ARC4, ...
暗号技術的ハッシュ関数: MD5, SHA1, ...
暗号変換 (Cryptographic Transforms): DES, Blowfish, ...
暗号化ハードウェアのサポート
国際暗号学者求む
追加読み物


なぜ暗号つきで出荷するのでしょう ?

それは一言で、出荷できるから です。

OpenBSD プロジェクトは、カナダが本拠地です。

カナダ輸出規制一覧は、 暗号ソフトの輸出に 特に制限をつけていないし、 自由に手に入る暗号ソフトの輸出が自由である ことについては、 もっとはっきり明記してあります。 暗号関連法規を検討する研究は、 Marc Plumb が行っています。

おかげで OpenBSD プロジェクトは、オペレーティングシステムの随所に 暗号を仕込んであります。私たちとしては、使用する暗号はすべて 自由に入手できてライセンスも適切でなくては ダメです。 いぢわるな特許つきの暗号は、直接使用できません。 さらに その暗号ソフトが、まともな輸出ライセンスを持った国からのもので あることが必要です。どこの国の法律も破りたくないからです。 いま 私たちが使用している暗号ソフトコンポーネントは、 アルゼンチン、 オーストラリア、カナダ、ドイツ、ギリシャ、ノルウェー、スウェーデン で書かれたものです。

OpenBSD のリリースやスナップショットをつくるときには、リリース用バイナリは フリーな国でつくります。ユーザに提供されるソースやバイナリが、ケチの つかないものであるのを確実にするためです。過去のリリース用バイナリは、 カナダ、スウェーデン、ドイツで作られています。

OpenBSD は Kerberos V 込みで出荷されています。私たちの使用するコードベースは、 輸出規制のない Heimdal リリースでスウェーデンからのものです。私たちの X11 ソースも、Kerberos を使用するように拡張されています。

VPNC TEST PARTNER OpenBSD は、IPsec スタックつきで出荷された初のオペレーティングシステムでした。 IPsec は、1997 年の OpenBSD 2.1 リリース以来含まれています。 私たちの、完全準拠のカーネル内 IPsec スタックは、多数のカードに基づく ハードウェアアクセラレーションつきだし、私たち独自のフリーの ISAKMP デーモンと いっしょにVPNCの IPsec 準拠試験のためのマシンのひとつでも使用されています。

今日、暗号はオペレーティングシステムのセキュリティを高める方法としてだいじです。 OpenBSD で使用される暗号は、いくつかの側面に分類できます。 以下に説明しましょう。

OpenSSH

2.6 リリースをもって、OpenBSD には OpenSSHが含まれます。完全にフリーで 特許のしがらみもないバージョンの ssh です。 OpenSSH は ssh バージョン 1 と相互運用できて、 さらにいろいろ追加機能を持っていました。

おおまかに言って、私たちは ssh のフリーライセンス版リリースを持ってきて、それを OpenBSD 化した、というわけです。 それから一年ほど後に、私たちは OpenSSH を拡張して SSH 2 プロトコルも扱えるようにしました。 現在、1.3、1.5、2.0 という、主要な SSH プロトコルすべてに対応しています。

疑似乱数生成ソフト

疑似乱数生成 (PRNG) ソフトは、アプリケーションに一連の数字をわたします。 この数字は、システムのセキュリティ上、いくつか重要な特徴を持っています;

PRNG はふつう、同じ初期値から始めれば同じ出力シーケンスが出てくる アルゴリズムにすぎない場合が多いのです。マルチユーザの オペレーティングシステムでは、PRNG にランダムなデータでシードを与えるための ソースがたくさんあります。OpenBSD カーネルは、マウスのインタラプトタイミングや ネットワークデータのインタラプト応答時間、キーボードの打鍵間隔や、ディスク IO 情報を 使用して、エントロピープールを満たそうとします。乱数は、カーネルルーチン用に 提供されていて、デバイス経由でユーザ領域のプログラムに輸出されます。いまのところ、 以下のようなところで乱数が使用されています:

暗号技術的ハッシュ関数

ハッシュ関数は、入力データを圧縮して、一定サイズのストリングにします。暗号技術的ハッシュ 関数においては、次のようなものを見つけることは不可能か非常に困難となります:

OpenBSD では、MD5、SHA1、RIPEMD-160 が暗号技術的ハッシュ関数として使用されています。 たとえば以下のような場面で:

暗号変換

暗号変換は、データの暗号化と復号に使用されます。これらは、 データ暗号化用には暗号キーを使用し、データ復号用には 復号キーを使用します。暗号変換のセキュリティは、 キーとなる材料にのみ依存するはずです。

OpenBSD は、DES、3DES、Blowfish、Cast などの暗号変換方式を、カーネルやユーザ 領域のプログラム用に提供しており、これはいろいろな場所で使用されています。たとえば:

暗号化ハードウェアのサポート

OpenBSD は 2.7 より、アクセラレータや乱数生成器など、一部の暗号化ハードウェア のサポートをはじめました。

もしドライバ書きを手伝いたい人がいたら、 是非手伝ってください

国際暗号研究者募集

もちろん、私たちのプロジェクトは、こうしたシステムの作業をしてくれる 人々を必要としています。もしアメリカ以外の暗号学者で、これまで挙げた 制約条件を満たす人が OpenBSD 組み込み暗号の手助けをしてくれる気があるなら、 ぜひ連絡してください。

追加の資料

OpenBSD チームメンバーは、OpenBSD のセキュリティ関連の変更について、 いろいろ論文を書いています。これら文書の postscript 版が 以下で手に入ります。


OpenBSD www@openbsd.org
$OpenBSD: crypto.html,v 1.50 2006/12/27 16:17:15 saad Exp $