1. HOME
  2. 在学生の方へ
  3. ITリテラシー
  4. USBメモリの暗号化

For Linux

Linuxではcryptoloopというkernel moduleを利用して暗号化を行うことができる。パスワードの強度もDES, AES, MD5と選びたいものを選ぶことができる。同様に外付けのハードディスクのセキュリティも向上させることができる。繰り返しになるが、今の時代、物理デバイスよりも内容の流出の方がデメリットが大きい。まさにセキュリティのためにうってつけの技術である。
この機能はLinux kernelで実現することができる。Loopback deviceという機能に暗号化の機能をつけた、cryptoloopというモジュールを利用する。まずはkernelの設定でcryptoloop および暗号化の機能が有効になっているかチェックする。

Loopback deviceとは、メディアデバイスのように使うことができる仮想のデバイスである。メディアデバイスとして思い付くのはハードディスクやフロッピーディスク、USBメモリなどである。これらのデバイスにはファイルやディレクトリの構造を持たせることができるし、さまざまなファイルシステムをつくることができる。Loopback deviceはあたかもメディアデバイスのようにフォーマットしたりディレクトリをつくることができる仮想のデバイスであり、しかもたった一つのファイルでしかない。

これよりLoopback deviceを暗号化する方法からはじめてメディアデバイスを暗号化する方法へと進めることにする。

1.1. Loopback deviceの作成

メディアデバイスとして使用するためのファイル(Loopback)を作成する。
dd if=/dev/zero of=loopback.img bs=4k count=2560
このコマンドで10MBのファイルが作成される。つまり10MBのハードディスクを作成したことになる。このファイルは仮想のデバイスであるが実際に10MBの大きさを持つ。実デバイスには少なくとも10MBの容量を必要とする。もし100GBの暗号化ファイルが欲しいならハードディスクには100GBの空き容量が必要である。

1.2. Loopback deviceの暗号化

losetup -e aes /dev/loop0 loopback.img
作成したloopback.imgを/dev/loop0と関連づけ、そのさいに暗号として"aes"を使うとしている。ここで暗号の箇所を"des"に変えたりすればloopback.imgはdesで暗号化されたことになる。利用できる暗号の種類はkernelに実装されている暗号の種類に依存します。
loopback.imgを暗号化したらフォーマットしましょう。

mkfs -t ext3 /dev/loop0
ext3形式でフォーマットできます。/dev/loop0はloopback.imgと関連付けられているのでloopをフォーマットしたらloopback.imgもフォーマットしたことになります。

1.3. Loopback deviceのマウント

mount -o encryption=aes loopback.img /mnt
暗号化されたloopback.imgをマウントするために暗号化の種類を"aes"として指定し、マウント場所を/mntに指定しています。マウント場所はそれぞれの環境や趣味で変わります。 マウント後に/mntを見てみるとext3でフォーマットされたファイルシステムが見つかります。
ここに好きなファイルを入れてみましょう。ファイルのコピーが終わったらマウントを解除します。

umount /mnt
loopback.imgは適切なパスワードを入力しないかぎりマウントすることができません。つまり存在はわかってはいるが、その内実については誰にも知られることのない自由な10MBの空間が手に入ったことになるのです。

1.4. メディアデバイスを安全にする

メディアデバイスを安全にするために、過渡的な方法から行って見ましょう。すでにUSBメモリには大量のデータが格納されています。これらのファイルを一時的にでも移動させること自体が危険を伴います。 そこでどうしても見られたらまずいデータをさきほど作成したloopback.imgに格納し、loopback.imgをUSBメモリにコピーすればOKです。
大量に存在するファイルの中のひとつであるloopback.imgに大切なデータが入っているなんて誰も気づきません。:-) ファイルの種類を特定することも難しいでしょう。

大事なデータを使いたいときにはloopback.imgをマウントすればOKです。

1.5. メディアデバイスを暗号化する

4の方法ではloopback.imgに入れたファイル以外のファイルは誰でも見ることができてしまう。(この方法の方が、他のファイルがダミーとして機能するので大事なデータを守るという点ではむしろ効果的かもしれない。)
USBメモリ自体を暗号化すれば、USBメモリを誰もマウントすることができなくなる。より完全な暗号化を望むならこの方法がふさわしい。

losetup -e aes /dev/loop0 /dev/sda
先の例ではloopback.imgというファイルを/dev/loop0と関連付けたが、今回は/dev/sda(大体の場合のUSBメモリのデバイス名)を/dev/loop0と関連づける。 関連付けが成功したらフォーマット、マウントを行います。

これでUSBメモリの暗号化が終了。とてもセキュアなデバイスを使うことができるようになります。

1.6. 注意事項

デバイス自体は暗号化されていますが、マウント後にはファイルシステムの一部分になりますので権限さえあれば読み書きは自由自在です。USBメモリを挿したまま出歩かないようにしてください。
パスワードを決して忘れないでください。パスワードは誰にもわからないのです。そのファイルは二度と人の目に触れられることがなくなってしまいます。

▲ページトップへ

  • 大学パンフレット
  • YPU@ほーむ
  • Twitter
  • Facebook
  • LINE@
  • YouTube