訳註: これは作業してる最中のもので、本来、訳作業者以外は見えぬべきものです。 訳作業者以外は見ないでください。意味が反対になったりとか当然にあるから、 内容は利用しないでください。この言語への変換作業(翻訳作業)物に関しては、現在、オープンなライセンス条件ではありません。 十進240のコードのキャラクターを<240>に置換してる場合あり
Chapter14.The cryptographic device driver (CGD)

Table of Contents

14.1. Overview
14.1.1. Why use disk encryption?
14.1.2. Logical Disk Drivers
14.1.3. Availability
14.2. Components of the Crypto-Graphic Disk system
14.2.1. Kernel driver pseudo-device
14.2.2. Ciphers
14.2.3. Verification Methods
14.3. Example: encrypting your disk
14.3.1. Preparing the disk
14.3.2. Scrubbing the disk
14.3.3. Creating the cgd
14.3.4. Modifying configuration files
14.3.5. Restoring data
14.4. Example: encrypted CDs/DVDs
14.4.1. Introduction
14.4.2. Creating an encrypted CD/DVD
14.4.3. Using an encrypted CD/DVD
14.5. Suggestions and Warnings
14.5.1. Using a random-key cgd for swap
14.5.2. Warnings
14.6. Further Reading

cgd ドライバーは ディスクやパーティションを 暗号化 storage として使える機能を供給します。 適切なキーを与えることで、暗号化パーティションが cgd pseudo-devices を使ってアクセスできます。

14.1.Overview

人々はしばしばハードディスクに sensitiveびみょーな 情報 を store し、そして、 この情報が悪い手の中に落ちることを心配します。 これは特にラップトップユーザーや他の携帯用デバイスや携帯できるメディアの 利用者に関連のあることで、これは盗まれるかもしれないし、 偶然に置き忘れるかもしれません。

14.1.1.Why use disk encryption?

GnuPG のような ファイル-oriented 暗号化ツールは 個々のファイルの暗号化にはすばらしいもので、 ディスク上に 暗号化されて stored したのと同じように、 信用ならぬネットワークをまたいで送ることができるものです。 だけど時々不便なこともあって、ファイルが使われるたび一々復号 されなければならなくて; ファイルの大きな collection を守るとき、これは特に扱いにくいです。 セキュリティーツールはいつも使うのがやっかいで、そこには、 正しく使うのを忘れ、便利なために、ファイルを unprotected なまま leaving する機会があるんす。

より悪いことに、暗号化された contents の可読複製物がまだ ハードディスク上に存在しているかも知れません。それらの unlinking 前に これらファイルを上書きしてさえも ( rm -P を使って)、 アプリケーションソフトウェアーがあなたの知らない一時コピーを 作るかも知れず、また、スワップ領域に paged するかも知れず、 - そしてハードディスクが沈黙のまま不良セクターの remapped(再配置) をデータが残ったまま行うことさえあるかもしれません。

その答えは簡単で、暗号化されていない情報は決してハードディスクに 書かないことです。暗号化に ファイル-指向アプローチを語るよりも ブロック-指向アプローチ - 仮想ハードディスク、を考慮するべきで、 それは普通のハードディスクで普通のファイルシステム のように見え、しかしこれは、 on the way で(進行中に) 実ディスクからブロックごとに暗号化および復号化します。

14.1.2.Logical Disk Drivers

cgd デバイスの、残りのオペレーティングシステムへの 見かけと挙動は、ほかのあらゆるディスクドライバーに似ています。 real ハードウェアーを直接駆動するよりむしろ、 他のブロックデバイスの on top で 論理機能 layered を提供します。 それには特別な 設定プログラム cgdconfig があって、 cgd デバイスの作成と設定に 暗号化されたデータを保持する underlying原 ディスクデバイスを point it します。

NetBSD にはいくつか他の似た論理ブロックデバイス を includes 、 それぞれ 他の何らかの機能を提供し、 cgd は暗号化を提供します。 これら論理ブロックデバイスのいくつかを一緒に stack でき、 ハードディスク不良からyour 暗号化されたデータを守るために、 暗号化 raid を作ることもまたできます。

一度 cgd ディスクを作ると、 disklabel を使って パーティションに分けることができ、 swapctl でそれらパーティションに swapping to でき、あるいは、ファイルシステムを作るのに newfs を使え、 そして、それらのファイルシステムを mount し使うことが いかなる他の新しいディスクと同じようにできます。

14.1.3.Availability

cgd ドライバーは Roland C. Dowdeswell 氏によって書かれ、 NetBSD-current には、 1.6 と 2.0 のリリースブランチの間に introduced 。 結果として、 1.6 リリース系統ではなく; 2.0 リリースに入りました。

14.2.Components of the Crypto-Graphic Disk system

いくつかの components およびツールが協働して cgd システムを効果的にします。

14.2.1.Kernel driver pseudo-device

cgd を使うには、カーネルの cgd pseudo-device のサポートが必要です。 カーネル設定ファイルに次の行を確認して:

pseudo-device   cgd     4       # cryptographic disk driver

この数は cgd デバイスが同時に設定できる数がいくつかを定義するものです。 cgd pseudo-device の設定の後、 カーネルの再コンパイルができ、 cgd サポートを有効にするために boot します。

14.2.2.Ciphers

cgd ドライバーは以下の 暗号化アルゴリズムを提供し:

暗号化法

aes-cbc

AES (Rijndael). AES は 128 ビットブロックサイズを用い、 128, 192 または 256 ビットキーを受け入れます。

blowfish-cbc

Blowfish は 64 ビットブロックサイズを用い、 128 ビット キーを受け入れます

3des-cbc

Triple DES は 64 ビットブロックサイズを用い 192 ビットキーを受け入れ(暗号化には 168 ビットだけが実際には使われ)ます。

3つの暗号全てが CBC モードで使われます。この意味は、各ブロックは、 暗号化の前に、先に暗号化されたブロックと XOR されるということです。 これは暗号化の break に使われる パターンの発見のリスクを減らします。

14.2.3.Verification Methods

いくつかの留意を要する cgd のもう1つの aspect状況 は cgdconfig が提供する検証法です。 これらの検証法がパスフレーズが正しいか検証に使われます。 つぎの検証方法があって:

検証法

none

検証をしません。これは危険で、キーを全く検証しないからです。 間違ったキーを入力すると cgdconfigcgd デバイスを普通に設定しますが、 ボリューム上にある利用できるデータは破壊されるでしょう (間違ったキーでブロックを decrypting すると結果は random data になり、 現在のキーで再生成されたディスクラベルになります )。

disklabel

cgdconfig は有効なディスクラベルを scans 。提供されたキーで有効なディスクラベルが見つかると 認証に成功。

ffs

cgdconfig は有効な FFS ファイル システムを scans 。提供されたキーで有効な FFS ファイルシステム が見つかると 認証に成功。

14.3.Example: encrypting your disk

この節は、 既存システムを cgd を使うように変換する 例 を works through step-by-step 、 以下の actions を実行します:

  1. Preparing the disk and partitions

  2. Scrub off all data

  3. Create the cgd

  4. Adjust config-files

  5. Restoring your backed-up files to the 暗号化された disk

14.3.1.Preparing the disk

最初に、どのファイルシステムを暗号化されたデバイスに移したいのか決めます。 最低でも小さな非暗号化のルート (/) ファイルシステムを残しておくことが必要で、 これは cgd の設定に、 カーネルのロード、 initcgdconfig および rc.d スクリプト の run のためです。この例では、 ルート (/) ファイルシステム以外全部暗号化します。

パーティションおよびファイルシステムの消去および再製作をしようとしているので、 データの復帰のためにバックアップが要求されます。それで 違うディスクや機械に、現在の信頼できるバックアップを確実に取って置いてください。 きれいな dump を手に入れることを保証するために、 バックアップはシングルユーザーモードで ファイルシステムを unmounted の状態で行ってください。 your ハードディスクのディスクラベルの記録もまた念を押してください。 これで開始前のパーティション配置の記録を持つことになります。

システムをシングルユーザーで、 / を read-write でマウントし、他は全て unmounted で、 cgd の中に動かしたい全てのデータパーティションを. disklabel を使って消します。

それから只今開放された space 全部で1つの新しいパーティションをつくり、 wd0e と呼びます。 このパーティションのパーティション type を ccd (cgd を指定するコードはありませんが、 ccd がよく似ているのです。 それは本当の問題でないけど、後に通常のファイルシステムでないことを思い出させてくれる 助けになります)にセットします。終わると、 新しいパーティションテーブルに save するため、ディスクのラベル付けします。

14.3.2.Scrubbing the disk

パーティション table 情報を取り除きましたが、しかし、 ファイルシステム およびデータは、まだディスク上に存在しています。 cgd デバイスを作り、ファイルシステムを作り、 データの restore をした後でさえも、これらの ディスクブロックのいくつかは まだ上書きされていなくて、データが平文で入ったままかもしれません。 これは特に、ファイルシステムがほとんど空の時のような場合にあります。 さらに行う前にディスクを scrubごしごしこすって洗いたい でしょう。

新しい wd0e パーティション上に /dev/zero をコピーするのに dd が使えますが、 後に書かれた暗号化されたデータ以外の場所はゼロで満たされたままになります。 どのブロックに 実際のデータが含まれていて、そして、 どこが free space かについて、いかなる手がかりも attacker に与えたくないです。 それでディスク blocksブロック 全部に "ノイズ" を書き込みたくなります。 それで、 random でわからないキーを設定された temporary cgd をつくります。

最初に、 cgd を random key を使って設定します:

# cgdconfig -s cgd0 /dev/wd0e aes-cbc 128 < /dev/urandom 

なう、 cgd の raw パーティションにゼロを書き込めます (NetBSD/i386 の /dev/rcgd0d/dev/rcgd0c は他の大抵の プラットホームで):

# dd if=/dev/zero of=/dev/rcgd0d bs=32k

暗号化されたゼロはディスク上で random データのように見えます。大きなディスクでは、 これはしばらくかかるかもしれません。一旦終わると、 random-key の cgd を unconfigure し:

# cgdconfig -u cgd0

14.3.3.Creating the cgd

cgdconfig プログラムは、 cgd デバイスを操作するもので、 各 cgd の 暗号化 type 、キー長、および random password salt のような情報 を store したパラメーターファイルを用います。 これらのファイルは非常に重要で、 safe を維持する必要があり - それらが無いと、 データの復号が不可能です!

パラメーターファイルを生成し、 default 位置に書きます ( /etc/cgd ディレクトリーが mode 700 で存在することを確かめて):

# cgdconfig -g -V disklabel -o /etc/cgd/wd0e aes-cbc 256

これは パラメーターファイル /etc/cgd/wd0ecgd がつかう aes-cbc 暗号法、 キー検証法に disklabel 、 キー長 256 bits であることを describing 作ります。このようなものでしょう:

algorithm aes-cbc;
iv-method encblkno;
keylength 256;
verify_method disklabel;
keygen pkcs5_pbkdf2/sha1 {
        iterations 6275;
        salt AAAAgHTg/jKCd2ZJiOSGrgnadGw=;
};

覚えておいて、このファイルは後でどこか安全なところに save したくなります。

秘訣

パラメーターファイルの作成で、 cgdconfig は、 the password salt を作るために /dev/random から読みます。 もしランダムプールに十分なエントロピーが収集されていなかったら、 この読みはブロックするかもしれません。特に、前のステップでディスクの 上書きが終わったばかりだと、これは好ましくないです。しかし、それが起こったら、 rnd デバイスが十分なエントロピーを 収集するまで、コンソールのキーを押したり、 および/またはマウスを動かすことができます。

ここで、 cgd を作る時が来ました。これには パスフレーズが必要です。このパスフレーズは cgd が開かれるたびに毎回入力する必要があって、 これは大抵 reboot ごとです。 暗号化キーは このパスフレーズおよび the salt から導かれます。 忘れないけど他の人が推測できないものを、きちんと選ぶようにしてください。

初回の cgd 設定では、 logical デバイス上には有効なディスクラベルはなくて、それで、後に使いたい 検証機構は work しません。それをoverrideくつがえします、これをいちど:

# cgdconfig -V re-enter cgd0 /dev/wd0e

これで、打ち間違いの場合のためにパスフレーズの一致を確かめるため 二度 prompt(入力促進)します。さもないと、あなたの期待したのと異なるパスフレーズで 暗号化された cgd が置いてかれます。

さて、新しい cgd ができました。 パーティションを切って、ファイルシステムを作る必要があります。 前と同じ全てのパーティションを同じサイズで同じ letter names で Recreate します。

秘訣

disklabel -I 引数をつけて使うことを忘れないで。なぜなら、新しいディスクには 初期ラベルをつくるためです。

新しいパーティションのサイズは、古い、暗号化していない 物と同じだけ欲しいでしょうが、オフセットが異なるでありましょう。 それらはこの仮想ディスクの始めから始まるからです。

それから、関連のパーティション全てでファイルシステムを作るのに newfs を使います。 このとき、パーティションは cgd ディスク名を反映させ、例えば:

# newfs /dev/rcgd0h

14.3.4.Modifying configuration files

いくつかのファイルシステム を他の (論理) ディスクに moved しました、 それゆえ /etc/fstab の更新の必要があります。 (この例では)各パーティションは同じ文字で、 しかし、wd0 ではなくて cgd0 の上にです。 それで /etc/fstab エントリーはこのように:

/dev/wd0a   /     ffs     rw    1 1
/dev/cgd0b  none  swap    sw            0 0
/dev/cgd0b  /tmp  mfs     rw,-s=132m    0 0
/dev/cgd0e  /var  ffs     rw            1 2
/dev/cgd0f  /usr  ffs     rw            1 2
/dev/cgd0h  /home ffs     rw            1 2

/tmp は引き離されたファイルシステム、 cgd の中の mfsffs のどちらかであるべきです。 そうすっと、 your temporaryファイルは / ファイルシステムに平文で stored られることはありません。

リブートごとに、早期、 fsck の runs 前で、 ファイルシステム がマウントされる前に

cgd が設定されることが必要です。

/etc/cgd/cgd.conf に次の行を Put し:

cgd0    /dev/wd0e

これは cgd0 の 設定ファイルとして /etc/cgd/wd0e を使います。

最後に、 boot 毎に cgd を enable するように、 /etc/rc.conf の中に次の行を put :

cgd=YES

これで /etc/rc が starts するたび に、 /dev/cgd0 のパスフレーズを prompted す。

14.3.5.Restoring data

次に、新しいファイルシステムを mount し、そして、データをその中に restore します。 大きなダンプファイルを展開するとき、 restore が 適切な量のテンポラリー空間をつかえるように、真っ先に /tmp をマウントすることはしばしば助けになります。

boot 設定の変更をテストするには、ファイルシステムを umountcgd を unconfigure すると、 それでシングルユーザーシェルを exit したとき、クリーンブートのときのように rc が run し、 パスフレーズを訊ねてくるので、ファイルシステムを正しくマウントされてください。 さて、システムがマルチユーザーまで起き上がってこれて、 全てが以前のように works するのを 確めてください。

14.4.Example: encrypted CDs/DVDs

14.4.1.Introduction

この節では NetBSD での 暗号化された CDs/DVD の作り方および使い方を説明します (ここでは "CD" というのは全て "DVD" にもあてはまります)。 cgd(4) の基礎知識を持っていることを想定するので、 cgd とは何かとか内部の詳細などについては説明しません。 vnd(4) についても。この howto を読んだら 暗号化された CD の利用ができるようになります、が、 ほかの cgd 設定オプションについての、より詳しい情報については、どうか Chapter14, The cryptographic device driver (CGD) か manpages を読んでくだされ。

14.4.2.Creating an encrypted CD/DVD

cgd(4) はパーティション全体もしくはディスク全体に対する 高い安全性の暗号化を提供します。不幸にも、 "normal" CD の作成では 何らのディスクラベル付けも newfs の実行もありません。 単純にドライブに CDR を入れることもできませんし、 cgd を設定して、 syncing 時に暗号化したデータを書き込むと仮定もできません。 標準 CD はすくなくても、 sysutils/cdrtools パッケージからの mkisofs(8) で作られた ISO-9660 ファイルシステムが入っています。 ISO イメージにはディスクラベルも cgd パーティションも入って いない かもしれません。

しかし、もちろん CD reader/writer ハードウェアーは ファイルシステムについて全く関知しません。if you like なら raw データを CD に書くこともできます - また暗号化 FFS ファイルシステムを書くことも できますが、ここではしません。しかし警告しておきます、この CD は NetBSD 以外のいかなる OS でも読む方法がありません - 他の BSD でさえも cgd がないため無理です。

暗号化された CD 作成の基本的ステップは:

  • (空の)イメージファイルの作成

  • vnd(4) を用いて仮想ディスクを登録

  • vnd ディスクの中に cgd を設定

  • cgd に内容をコピー

  • 全部 Unconfigure (flush!)

  • CD にイメージを書き込む

暗号化 CD 作成の最初のステップは、 single イメージファイルを dd で作ることです。イメージは増えないので、 CD content 全部が中に入るような十分に大きく作ります。 註として、 後にイメージ全体が CD にかかれるので、 それで、 100 MB の content に 700 MB のイメージをつくり、 700 MB の CD への書き込み操作がなお要求されます。 DVD についてのいくつかの情報をここに: DVD は marketing 用語で only 4.7 GB 。 4.7GB = 4.7 x 1024 x 1024 x 1024 = 5046586573 bytes. 実際は、 DVD は 正確に 4.7 x 1000 x 1000 x 1000 = 4700000000 bytes だけ保持でき、これは約 4482 MB あるいは約 4.37 GB です。 DVD イメージを作るとき覚えて置いてください。 CD については心配しないで、 "本当の" 700 MB (734003200 Bytes) を hold です。

Invoke 次の全てのコマンドは root で!

CD には:

# dd if=/dev/zero of=image.img bs=1m count=700

または DVD には:

# dd if=/dev/zero of=image.img bs=1m count=4482

ここでイメージを vnd(4)-pseudo ディスクに設定し:

# vnconfig vnd0 image.img

cgd の利用には、パラメーターファイルと呼ばれるファイル、 暗号化パラメーターが記述され、 および "password salt" が含まれているもの、 が必ず生成されます。 ここでは、それを /etc/cgd/image と call します。いくつかの暗号化されたパーティションに対して1つのパラメーター ファイルを使うことができます (私はホストごとには違うファイル、 全リムーバブルメディア イメージには、 共用ファイルをつかっていますが、あなた次第です )。

私は AES-CBC の 256 ビットキー長を使います。 詳細および alternatives は cgd(4) および cgdconfig(8) を参照してください。

次のコマンドでパラメーターファイルとして /etc/cgd/image が作られます。 何らの CD を焼いた後は YOU DO NOT WANT TO INVOKE THE FOLLOWING COMMAND AGAIN,(次のコマンドは再び実行しいとは思いません、) なぜなら、パラメーターファイルの再生成は パラメーターファイルを滅失させ、暗号化された CD を決して再びアクセスできなくします。 (このファイルの "salt" は callする(呼び出す) たびに異なるものが入ります)。 このファイルを HOLY, BACKUP IT and BACKUP IT AGAIN! かよく考えて。 CD の検証法の指定は -V スイッチで "disklabel" (cgd はマウント時、あなたが後から正しいパスワードを入れたかどうか検出できません もしくは)。

# cgdconfig -g -V disklabel aes-cbc 256 > /etc/cgd/image

さて、 vnd ドライブに cgd を設定するときです。 ( "c" がディスク全体で、全プラットホームで (ここで "sysctl kern.rawpartition" 表示が "2"、 "3" ではなく)ではスライス "d" を "c" に置き換えてください; i386 か amd64 上なら "d" で OK):

# cgdconfig -V re-enter cgd1 /dev/vnd0d /etc/cgd/image

cgd がまだディスクラベルを持たないかぎり "-V re-enter" オプションは大事で、 それで、アクセスができ設定できます。 これは暗号化に使うパスワードを2回訊ねるように switch ます。

なう、 cgd の中にディスクラベルを作るときです。 defaults のラベルは ok 、それで disklabel をこれで invoking

# disklabel -e -I cgd1

そして ":wq" で vi から直ちに離れます。

cgd 上にファイルシステムをつくり、そして、最後にどこかにマウントしましょう:

# newfs /dev/rcgd1a
# mount /dev/cgd1a /mnt

cgd が alive! Now /mnt を content でうずめましょう。終わったら、設定プロセスを逆転します。 このステップは:

  1. cgd1a を Unmount し:

    # umount /mnt
  2. cgd を Unconfigure し:

    # cgdconfig -u cgd1
  3. vnd を Unconfigure し:

    # vnconfig -u vnd0

次のコマンドは CD や DVD にイメージを burn る例です。 cdrecord の dev= や growisofs の /dev/rcd0d は調整してくださいな。 註として、 "rcd0d" NetBSD では大事です。 Growisofs は sysutils/dvd+rw-tools パッケージの中にあります。繰り返しますことに、 your プラットホームがそうなら、 raw パーティション として、 "d" の代わりに "c" を使ってください。

最後に、 CD にイメージファイルを書きます:

# cdrecord dev=/dev/rcd0d -v image.img

...または DVD には:

# growisofs -dvd-compat -Z /dev/rcd0d=image.img

おめでとうございます! 本当に secure な CD ができました!

14.4.3.Using an encrypted CD/DVD

上に書かれたように 暗号化された CD ができた後、まだ終わってません - 再びマウントするのはどうなの? だれかが考えるだろう、 /dev/cd0d での cgd の設定で十分だろうと - いえ違います。

NetBSD は 512 bytes/sector フォーマットではない media では FFS ファイルシステムをアクセスできません。 これは CD 上の cgd の問題ではなく、 cgd が住んでいる CD のディスクラベルが 2048 bytes/sector だからです。

しかし、 CD ドライバー cd(4) は CD 上の (emulated) ディスクラベルへの "ライト" アクセスを叶えるには十分賢いです。 それで cgd の設定の前に、 ディスクラベルを見てちょこっと変更しましょう:

# disklabel -e cd0
# /dev/rcd0d:
type: ATAPI
disk: mydisc
label: fictitious
flags: removable
bytes/sector: 2048    # -- Change to 512 (= orig / 4)
sectors/track: 100    # -- Change to 400 (= orig * 4)
tracks/cylinder: 1
sectors/cylinder: 100 # -- Change to 400 (= orig * 4)
cylinders: 164
total sectors: 16386  # -- Change to value of slice "d" (=65544)
rpm: 300
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0

4 partitions:
#     size  offset  fstype [fsize bsize cpg/sgs]
 a:   65544   0     4.2BSD  0     0     0  # (Cyl. 0 - 655+)
 d:   65544   0     ISO9660 0     0        # (Cyl. 0 - 655+)

これらの変更作業を毎回手で行いたくないなら、 Florian Stoehr 氏のツール neb-cd512 が使えて、これは (これを書いているとき は) pkgsrc-wip にあって、まもなく、 sysutils/neb-cd512 に移るでしょう。 neb-cd512 ソースを http://sourceforge.net/projects/neb-stoehr/ からダウンロードすることもできます ( neb-cd512 を使うよう、しっかりして。 neb-wipe じゃなく!)。

ディスク名をパラメーターとしてつけて invoked 、ルートで:

# neb-cd512 cd0

これでディスクラベルは 512 b/s フォーマットで、 CD のアクセス はこれと同じように簡単で :

# cgdconfig cgd1 /dev/cd0d /etc/cgd/image
# mount -o ro /dev/cgd1a /mnt

註として、 cgd は 必ず read-only でマウントされるか、 または、 cd(4) ドライバーから illegal command errors を受け取り、 幾つかのケースでは CD-based cgd のマウントが不可能な事さえ起こります!

これで完了! secure な CD を享受して!

# ls /mnt

忘れないで CD を remove する必要があり、全ステップの反対で to :

# umount /mnt
# cgdconfig -u cgd1
# eject cd0

14.5.Suggestions and Warnings

これで cgd で暗号化されたファイルシステムを手にしました。 機械をシャットダウンするとデータは守られ、そしてパスフレーズなしには復号できません。 しかしながら、まだいくつか知っておくべき危険があり、 そして、 cgd でまだできることがあります。この節の documents は、 cgd の効果的利用の助けになる いくつかの更なる示唆と警告です。

  • 種類の異なるデータごとに、複数の cgd を使い、 1つは常時マウントしておき、他は必要なときだけマウントする。

  • 共用システム上にプライベートデータを安全に store するため、 リモートネットワークファイルサーバー (NFS 、 SMBFS 、 CODA 、等)上 のファイルから作られた vnd 、その on top に設定された cgd の利用。 これは、 Section14.4, “Example: encrypted CDs/DVDs” に記述された 暗号化された CD および DVD の利用と似た手順です。

14.5.1.Using a random-key cgd for swap

swap space には、リブート毎にキーの再生成をした専用の random-key cgd を使いたいかもしれません。 これの利点は 一度機械をリブートすると、 paged out した、いかなる要注意のプログラムメモリー内容は は永久に回復できません、なぜなら復号キーは you には決してわからないからです。

上の例で、ディスクを scrubbing する時、 random キーで temporary cgd をパラメーターファイルの生成をしないよう、 速記の cgdconfig -s で invocation発動 し作りました。 。

cgdconfig params ファイルは randomkey キー生成法を含みます。これはもっと "permanent" に適切な random-key 設定、および 起動時に、これらのボリュームの自動設定を容易にします。

例えば、既存の /dev/wd0b パーティション を random-key cgd1 専用に変換するには /etc/cgd/wd0b を生成するために次のコマンドを使って:

# cgdconfig -g -o /etc/cgd/wd0b -V none -k randomkey blowfish-cbc

randomkey キー生成法を使うときは、 検証法 "none" だけが使えます。なぜなら、新しい cgd の内容は毎回効果的に random ( 前のデータは random キーで復号されます)。同様に、新しいディスクは 正当なラベルもパーティションも持たず、 swapctl は swap デバイスがディスクラベル中に marked されていないと設定について 不平を言うでしょう。

ディスクのラベル付け工程を自動化するには、 適正なディスクラベルを用意しファイルに save しておきます。 例えば /etc/cgd/wd0b.disklabeldisklabel での swap パーティション設定の仕方についての情報は、 disklabel(8) を参照してください。

reboot 毎に、この saved ラベルを新しい cgd に restore するには、以下のように /etc/rc.conf.d/cgd ファイルを作ります:

swap_device="cgd1"
swap_disklabel="/etc/cgd/wd0b.disklabel"
start_postcmd="cgd_swap"

cgd_swap()
{
	if [ -f $swap_disklabel ]; then
		disklabel -R -r $swap_device $swap_disklabel
	fi
}

同じテクニックが、 /tmpmfs を使わないなら、 ffs ファイルシステムの再生成に newfs を使ってやり遂げるように 拡張できます。

14.5.2.Warnings

パスフレーズおよびパラメーターファイルの復元を確実にいつでもできるようにして 暗号惨禍を防いでください。パラメーターファイルは暴露されることから守ってください。 あるいは上のように リムーバブルメディアに保管する、なぜなら salt it には パスフレーズ上の辞書攻撃から守る助けが入っています### ??? ###。

your ディスク上に保持している暗号化されたは全く良いですが、 他のコピーはどうですか? すでに少なくても一つのそのようなコピー (このセットアップ中に使ったバックアップ)があり、そして、それは 暗号化されていません。 gpg のような ファイルベースの暗号化ツールを通した dump の Piping は この問題を一方的に送りつけることができますが、しかし、 被災後に restore するために 暗号解除に必要な全てのキーとツールを確実に持っていてください。

ソフトウェア暗号化のいかなる枠組みのように、 cgd キーは、デバイスが設定されている間、 カーネルメモリー上に留まり、 /dev/kmem grovellers のような プログラムおよびユーザーにアクセス可能です。 他のシステムセキュリティー steps を話すと、 securelevel を高めて running するようなことが高く勧告されます.

一旦 cgd ボリュームが通常のファイルシステムとして マウントされると、その内容は他のあらゆるファイルと同様にアクセスできます。 ファイルのパーミッションを大切にし、 running システムがアプリケーションやネットワークのセキュリティ攻撃から 保護されるよう確実にしてください。

suspend/resume の利用を無効に。特に、 suspend-to-disk 機能でのラップトップ。アタッカーが キーがメモリーに入ったままのあなたのラップトップを resume できたり、 後(のち)に、ハードディスク上の suspend-to-disk メモリーイメージを読むことが できれば、 cgd を使う何の意味も失います。

14.6.Further Reading

以下の resources が CGD の更なる情報を contain :

Bibliography

[smackie-cgd] NetBSD CGD Setup. Stuart Mackie.

[nycbug-cgd] I want my cgd aka: I want an encrypted pseudo-device on my laptop.

[elric-cgd] The original paper on The CryptoGraphic Disk Driver. Roland Dowdeswell and John Ioannidis.

[biancuzzi-cgd] Inside NetBSD's CGD - an interview with CGD creator Roland Dowdeswell. Biancuzzi Federico.

[hubertf-cgd] CryptoGraphicFile (CGF), or how to keep sensitive data on your laptop. Feyrer Hubert.