1997年 2月 8日

ファイルの暗号化とdes のmake

Linux 上でファイルを暗号化する方法を紹介します。
これはLinux 以外のUNIX にもあてはまります。
具体的には、Linux でのdes-dist のmake 方法と使い方についてのおはなしです。

ファイルの暗号化

他人には内容を見せられない重要なファイルがあるとします。
UNIX では、持ち主だけがread できるようにパーミッション を設定することで、そのようなファイルを保護することができそうです。

本当ですか?

root ユーザは何でもありなので、root さんには見られてしまいますね。
あなたしかマシンのroot パスワードをしらない場合でも、Linux の場合では インストール用ブートフロッピー などで起動するとノーパスワードでroot になれます。
そのあとターゲットパーティションを適当にマウントするとパーミッション保護を 突破できてしまいますね。
(それにしても、これーなんとかならないのかなぁ!)

大切なファイルは暗号化しましょう。
暗号化したファイルは暗号化パスワードをしられないかぎり、root 権限が あっても解読は困難(ほとんど不可能)です。

暗号化を行うプログラムとしては、crypt, des, pgp などがあげられます。
Slackware などのLinux インストールパッケージでは、何故か暗号化を行うための プログラムが一切含まれていません。
crypt は暗号化の手法があまり複雑ではなく、とりわけ英文テキストファイルがもとの データである場合は比較的容易に解読されてしまうそうです。

ここではある程度の強度(解読されにくさ)をもった des コマンドのmake 方法と使い方を紹介します。

ファイルの暗号化に関心をもってもらったり、ファイルの暗号化をしたいけど 何をどうすればよいかわからない方の参考になれば幸いです。

des-dist をLinux 上でmake

des は、その本場であるアメリカから取ってくることは禁じられています。
そこでヨーロッパで作成されたdes-dist.tar.gz をarchie で検索して取り寄せます。
日本国内では、例えば東京大学からget できるようです。
東京大学からget

このパッケージはそのままではSlackware3.1 でインストールしたLinux システムで make できませんでした。
私が行った修正をパッチにしましたので、これも持っていって下さい。
des-dist.linux.patch

make 方法

  1. ファイルの展開
          % zcat des-dist.tar.gz | tar xvf -
        
    crypt-dist というディレクトリが作成され、その中にファイルが展開 されます。
    ディレクトリの名前にcrypt という文字が入っていますが、crypt コマンド ではなくdes コマンドのキットです。御心配なく。


  2. パッチをあてる
    crypt-dist のひとつ上のディレクトリで次のようにパッチをあてて下さい。
          % cat des-dist.linux.patch | patch -p0
        
  3. make の実行
          % cd crypt-dist
          % make -f Makefile
        
  4. インストール
          % cd alodes/prog
          % su
          Password:
          # cp des /usr/local/bin
          # cd ../man
          # cp des.1 /usr/local/man/man1/
          # cp libdes.3 /usr/local/man/man3
        

des の使い方

以下の説明で、

target 暗号化したいもとのファイル
target.des 暗号化を実施したファイル
target.org 復号化を行い、復元したもとのファイル

とします。

  1. 暗号化
  2. 暗号化は次のように -e オプションを用いて 行います。
        % des -e target target.des
        Enter Keyward:
        Verify:
    
    考えたパスワードと打ち込んだパスワードがもし違っていると復号できなくなって しまいます。そこで確認のために2回入力するわけです。

    これはパイプを使い、次のようにすることもできます。
        % cat target | des -e > target.des
        Enter Keyward:
        Verify:
    
    暗号化した後、もとのファイルを消しておくことをお忘れなく。


  3. 復号化
  4. 復号する場合は暗号化の時に用いたパスワードで次のようにします。
    -d オプションで復号化を指示します。
        % des -d target.des target.org
        Enter Keyward:
        Verify:
    
    これは次のように行うこともできます。
        % cat target.des | des -d > target.org
        Enter Keyward:
        Verify:
    

  5. テープに暗号化してバックアップ
  6. 私が暗号コマンドを使うのはテープにバックアップする時がほとんどです。

    テープにバックアップする場合、次のようにパイプでdes を通すと暗号化された データを書き込めます。
        % tar cvf - ./project | des -e | dd of=/dev/st0
        Enter Keyward:
        Verify:
    
    ここで、project はバックアップしたいディレクトリ名で/dev/st0 は使用している テープデバイスに置き換えて下さい。

    こうして書き込んだテープを読む場合は次のようにします。
        % dd if=/dev/st0 | des -d | tar xvf -
        Enter Keyward:
        Verify:
    
    ですが、実をいうとdes による暗号化は結構CPU 負荷が かかります
    直接テープに書く場合と比べ、かなり遅くなるので注意して下さい。

わたし流のLinux メニューへ戻る

メインメニュー へ戻る


私へのメールは専用フォームからどうぞ