ハードディスクの暗号化#

VeraCrypt (旧TrueCrypt)#

`VeraCrypt <https://www.veracrypt.fr/en/Home.html>`_は、Windows、macOS、GNU/Linuxに対応したフリーでオープンソースのディスク暗号化ソフトウェアです。TrueCryptの後継であるため推奨されていますが、以下の説明はTrueCryptにも当てはまります。

`Nitrokey Storage 2 <https://shop.nitrokey.com/shop/product/nitrokey-storage-2-56>`_または`Nitrokey Pro 2 <https://shop.nitrokey.com/shop/product/nk-pro-2-nitrokey-pro-2-3>`_でプログラムを使用するには、以下の手順に従ってください。

  1. 最新リリースの`OpenSC <https://github.com/OpenSC/OpenSC/wiki>`_をインストールするか、`PKCS#11ライブラリ <http://smartcard-auth.de/download-en.html>`_をダウンロードします。

  2. VeraCryptの「Settings>Preferences>Security Token」でライブラリを選択します(場所はシステムによって異なります、例:/usr/lib/opensc)。

  3. Tools>Keyfile Generatorで64バイトのキーファイルを生成します。

  4. Tools>Manage Security Token Keyfilesから生成されたキーファイルをインポートできるようになります。最初のSlot([0] User PIN)を選択してください。このキーファイルは、Nitrokeyに「Private Data Object 1」(PrivDO1)として保存されます。

  5. その後、オリジナルのキーファイルをあなたのコンピュータ上で安全に消去してください。

  6. VeraCryptをNitrokeyで使えるようになりました。コンテナを作成し、パスワードの代わりにデバイス上のキーファイルを選択します。

警告

セキュリティへの配慮

VeraCryptは、Nitrokey(および一般的なスマートカード)が提供する完全なセキュリティを利用していないことに注意してください。その代わりに、ユーザーがPINを入力した後に、理論的にはコンピュータウイルスによって盗まれる可能性のあるキーファイルをNitrokeyに保存します。

注:`Aloaha Crypt <http://www.aloaha.com/aloaha-crypt-disk/>`_は、TrueCrypt/VeraCryptをベースにしていますが、記載されているセキュリティ制限はありません。

LinuxにおけるLUKS/dm-cryptを用いたハードディスクの暗号化#

ここでは、優れたインストラクション<http://blog.kumina.nl/2010/07/two-factor-luks-using-ubuntu/>`_を紹介します。Nitrokeyを使って、LinuxでハードディスクをLUKS/dm-cryptで暗号化する方法です。`その他の説明書

Purism は、LUKS パーティションのロックを解除する方法として Nitrokey/LibremKey を追加するための シンプルなスクリプト を作成しました (Nitrokey ではまだテストされていません)。

このプロジェクトは Nitrokey Pro や Password Safe (Nitrokey ではまだテストされていません)をベースにした Storage で LUKS の使用を容易にすることを目的としています。Gentoo での使用方法の説明は、`こちら <https://amedeos.github.io/gentoo/nitrokey/2019/01/21/gentoo-nitrokey-luks.html>`_にあります。

Arch Linux では、initramfs-scencrypt を参照してください。

GNU+LinuxでのEncFSによるストレージの暗号化#

ちなみに

前提条件

`デバイスドライバーのインストール、デフォルトのPINの変更、GnuPG<https://www.nitrokey.com/start>`_での鍵の生成またはインポートが行われていることを確認してください。

`EncFS <http://www.arg0.net/encfs>`_は、暗号化されたファイルシステムを簡単に使えるようにしたもので、`FUSE <http://de.wikipedia.org/wiki/Filesystem_in_Userspace>`_をベースにしています。非常に長いパスワードとNitrokey Pro 2を使用するには、以下の手順に従ってください。

初期化#

  1. ランダムなデータを持つキーファイルを作成します。

$ dd bs=64 count=1 if=/dev/urandom of=keyfile
  1. キーファイルを暗号化し、NitrokeyのUser-IDを使用してください。

$ gpg --encrypt keyfile
  1. キーファイルを平文で削除します。

$ rm keyfile # you may want to use 'wipe' or 'shred' to securely delete the keyfile
  1. マウントポイントの作成

$ mkdir ~/.cryptdir ~/cryptdir
  1. 実際の暗号化フォルダの作成

$ gpg -d keyfile.gpg | encfs -S ~/.cryptdir ~/cryptdir
# There may appears an error message about missing permission of fusermount
# This message can be ignored
  1. 新しいファイルシステムをアンマウントします。

$ fusermount -u ~/cryptdir

使用方法#

  1. 暗号化されたファイルシステムをマウントし、NitrokeyのPINを入力する。

$ gpg -d keyfile.gpg | encfs -S ~/.cryptdir ~/cryptdir
  1. 使用後は、ファイルシステムをアンマウントしてください。

$ fusermount -u ~/cryptdir

ECryptFSによるLinuxでのストレージ暗号化#

`eCryptfs <https://www.ecryptfs.org/>`_は、Linux用のファイルベースの透過型暗号化ファイルシステムで、PKCS#11ドライバを介してNitrokeyと一緒に使用することができます。

`説明書 <http://tkxuyen.com/blog/?p=293>`_をご覧ください。

  1. 証明書と鍵をNitrokeyにインポートします。

# Warning: This will delete existing keys on your Nitrokey!
$ pkcs15-init --delete-objects privkey,pubkey --id 3 --store-private-key user@example.com.p12 --format pkcs12 --auth-id 3 --verify-pin
  1. ファイル ~/.ecryptfsrc.pkcs11 を作成します。

$ editor ~/.ecryptfsrc.pkcs11
  1. この内容を入力してください。

$ pkcs11-log-level=5 pkcs11-provider1,name=name,library=/usr/lib/opensc-pkcs11.so,cert-private=true
$ openvpn --show-pkcs11-ids path to opensc-pkcs11 module
Certificate
    DN: /description=Iv4IQpLO02Mnix9i/CN=user@example.com/emailAddress=user@example.com
    Serial: 066E04
    Serialized id: ZeitControl/PKCS\x2315\x20emulated/000500000c7f/OpenPGP\x20card\x20\x28User\x20PIN\x29/03
  1. シリアル化されたIDを後で使用するためにコピーします。

$ ecryptfs-manager
# This will show list option. Choose option "Add public key to keyring"
# Choose pkcs11-helper
# Enter the serialized ID of step 3 to PKCS#11 ID.

または、`ESOSI <http://sourceforge.net/projects/esosi/>`_を試すか、OpenSCとOpenVPNを使って以下の手順を実行してください。

ガイドのソース: https://www.nitrokey.com/documentation/applications#a:hard-disk-encryption