ファイルやパーティション、ディスク全体の暗号化を行うことで、お使いのデータに対する不正なアクセスを保護し、ファイルや文書に対する機密を保護することができます。
暗号化を行うにあたっては、下記のいずれかの方法をとることができます:
YaST を利用することで、インストール中でもインストール後でも暗号化されたパーティションを作成することができます。詳しくは 12.1.1項 「インストール時における暗号化パーティションの作成」 および 12.1.2項 「動作中のシステムにおける暗号化パーティションの作成」 をお読みください。この方式は外付けのハードディスクなど、リムーバブルメディアに対しても適用することができます。こちらに関する詳細は 12.1.3項 「リムーバブルメディアの内容の暗号化」 をお読みください。
1 つまたは複数のファイルを単純に暗号化したいだけであれば、 GPG ツールをお使いになるとよいでしょう。詳しくは 12.2項 「GPG を利用したファイルの暗号化」 をお読みください。
1 つまたは複数のファイルを単純に暗号化したいだけであれば、 Rage 暗号化ツールをお使いいただくこともできます。詳しくは 12.3項 「Rage によるファイルの暗号化」 をお読みください。
本章で説明している暗号化は、動作中のシステムでの保護を行う仕組みではありません。たとえ暗号化されているボリュームであっても、マウントが成功してしまえば、アクセス許可での制限がない限り、アクセスができてしまいます。本章での暗号化は、コンピュータをどこかに置き忘れてしまった場合や、盗難にあった場合に役に立つ仕組みであり、このような場合に機密データが読み取られることのないように保護を実現するものです。
YaST を使用することで、インストール中であってもインストールが終わった後からであっても、暗号化されたパーティションや仮想ハードディスクを作成することができます。しかしながら、インストール済みのシステムに暗号化されたパーティションを追加したい場合、既存のパーティションのサイズを変更したりする作業が必要になることがありますので、比較的難しい作業になります。このような場合は、必要なサイズで暗号化されたファイルを作成して、ファイルやディレクトリなどをその中に書き込むように設定したほうが便利な場合があります。それに対して、パーティション全体を暗号化する場合は、パーティションレイアウト内に専用のパーティションを作成して対応する必要があります。また、 YaST で表示される標準のパーティション提案では、既定では暗号化されたパーティションが含まれません。インストール時に暗号化されたパーティションを設定したい場合は、パーティションダイアログにて手作業で設定をしてください。
暗号化されたパーティションを作成する際は、パスワードを忘れることがないようにしてください。パスワードを忘れてしまうと、暗号化されたデータにアクセスできなくなってしまいます。
YaST の熟練者向けパーティション設定を使用することで、暗号化パーティションを作成することができます。新しい暗号化パーティションを作成するには、下記の手順で行います:
› を選択して、 YaST 熟練者向けパーティション設定を起動します。
ハードディスクを選択して
を押します。プライマリもしくは論理パーティション のいずれかを選択します。パーティションに対して設定するサイズ、もしくは範囲を指定します。
パーティションに対して設定するファイルシステムと、マウントポイントを選択します。
このとき、
にチェックを入れておきます。にチェックを入れると、追加のソフトウエアをインストールするよう促すポップアップウインドウが表示されることがあります。暗号化パーティションを動作させるには、これら全てのパッケージをインストールする必要があります。
暗号化されたパーティションを自動ではマウントしたくない場合は、
で を選択します。自動的にマウントする場合は、 を選択してマウントポイントを入力または選択してください。を押して、このパーティションを暗号化するためのパスワードを入力します。入力されたパスワードは表示されません。入力ミスを防止するため、パスワードは 2 回入力してください。
あとは
を押して処理を完了します。暗号化パーティションが新しく作成されます。/etc/fstab
内で暗号化されているパーティションを自動的にマウントするように設定している場合、システムの起動時に暗号化パーティションに対するパスワード入力を求めるようになります。パスワードの入力を行うことでマウント処理が実行され、全てのユーザからアクセスできるようになります。
システムの起動時に暗号化されたパーティションをマウントしたくない場合は、パスワード入力の際に Enter を押してください。再度パスワードの入力を求められた場合も、同様に入力を拒否してください。これにより、暗号化されたパーティションがマウントされなくなりますが、オペレーティングシステムの起動処理はそのまま続けられるようになります。この場合、暗号化されたパーティション内のデータにはアクセスができなくなります。
システムの起動時にマウントしなかった暗号化パーティションをマウントしたい場合は、ファイルマネージャを開いて
を選び、表示された一覧の中から暗号化されたパーティションを選択してください。これにより、パスワードの入力が求められますので、パスワードを入力してください。既にパーティションが存在するマシンに対してシステムをインストールしている場合は、インストール時に既存のパーティションを暗号化するように設定することもできます。この場合は、 12.1.2項 「動作中のシステムにおける暗号化パーティションの作成」 の手順に従って作業を行ってください。ただし、既存のパーティション内にある全てのデータが削除されることに注意してください。
動作中のシステムで暗号化されたパーティションを作成することもできます。ただし、既存のパーティションを暗号化すると、その中のデータは全て削除されてしまうほか、場合によっては既存のパーティションのサイズを変更したり、再構築したりする作業が必要になってしまうこともあります。
動作中のシステムで暗号化されたパーティションを作成するには、 YaST コントロールセンターから 12.1.1項 「インストール時における暗号化パーティションの作成」 で示している手順と同じです。
› を選び、表示された警告メッセージには を選びます。あとは で暗号化したいパーティションを選び、 を押します。残りの作業はYaST では、リムーバブルメディア (外付けハードディスクや USB フラッシュメモリなど) についても、通常のストレージデバイスと同じように扱います。これまでに説明してきたものと同じ手順で、リムーバブルメディア内に仮想ディスクやパーティションを作成することができます。ただし、システム起動時の自動マウントについては、無効化するようにしてください。これは一般に、リムーバブルメディアはシステムの起動時には接続されていないことがあるためです。
YaST でリムーバブルデバイスを暗号化した場合、 GNOME デスクトップでは暗号化されたパーティションを自動的に認識することができますので、デバイスへのアクセス時にパスワード入力を求めるようになっています。また、 GNOME の動作時に FAT 形式でフォーマットされたリムーバブルデバイスを接続すると、デスクトップを利用しているユーザがデバイスの所有者になります。 FAT 以外のファイルシステムを使用しているデバイスの場合は、デバイスに対して読み書きができるようにするため、 root
でパーミッションを変更するなどして、所有権を明示的に設定してください。
GNU Privacy Guard (GPG) 暗号化ソフトウエアを使用することで、ファイルや文書を個別に暗号化することができます。
GPG でファイルを暗号化するには、まず鍵対を生成する必要があります。鍵対を生成するには、 gpg --gen-key
を実行して、表示される手順に従って作業を行ってください。鍵対を作成する際、 GPG はユーザ ID (UID) を作成して鍵対を識別するようになります。ユーザ ID には本名やコメント、電子メールアドレスを含めることができます。この UID (もしくは名前の一部や電子メールアドレス) は、ファイルを暗号化する際に指定します。既存の鍵の一覧を取得するには、 gpg --list-keys
コマンドを実行します。鍵対を生成したあと、ファイルを暗号化するには、下記のコマンドを実行します:
>
gpg -e -a --cipher-algo AES256 -r UID ファイル名
ここで、 UID には UID の一部 (たとえば名前など) を、 ファイル名 には暗号化したいファイルを指定します。たとえば下記のようになります:
>
gpg -e -a --cipher-algo AES256 -r Tux secret.txt
このコマンドは、指定したファイルのファイル名に .asc
という新しい拡張子を追加して、暗号化されたファイルを作成します (今回の例では、 secret.txt.asc
というファイルが作成されます) 。
-a
は ASCII テキスト形式でファイルを出力するための指定です。これにより、ファイルをコピー&ペーストで貼り付けることができるようになります。 -a
を省略した場合はバイナリ形式のファイルが作成され、ファイル名も secret.txt.gpg
のような名前になります。
暗号化されたファイルを復号するには、下記のコマンドを実行します:
>
gpg -d -o 復号化したファイル 暗号化されたファイル
ここで、 復号化したファイル には復号後のファイルのファイル名 (出力先) を、 暗号化されたファイル には暗号化されたファイルのファイル名を指定します。
ただし、この手順でファイルの暗号化を行った場合、暗号化で使用したものと同じ鍵を使用しないと、復号できないことに注意してください。他のユーザに対して暗号化したファイルを送りたい場合は、その相手の公開鍵を取得して、この公開鍵で暗号化を行わなければなりません。
Rage はファイルを暗号化するための暗号化ソフトウエアです。他のユーザとの間で容易に鍵を交換できる仕組みのほか、不用意な操作ミスや機密データの漏洩の防止機能を備えています。ファイルの暗号化を行う場合は、 Rage の使用をお勧めします。
Rage のインストールは下記の手順で行います:
>
sudo
zypper install rage-encryption
暗号化したファイルを受信する側のユーザは、まず Rage で鍵対を生成しなければなりません:
>
rage-keygen -o ~/rage.key 2 ~/rage.pub
上記で 2 つのファイルが作成されます; 上記の例では、それぞれ rage.pub と rage.key というファイル名になっています。
rage.pub の例
>
cat file.pub
Public key: age17e4g67cs07jk3lmylyq6gduv26uf7tz7nm9jrsaxn8xxx9uc9amsdg4a5e
rage.key の例
>
cat file.key
# created: 2023-05-30T16:29:20+05:30
# public key: age17e4g67cs07jk3lmylyq6gduv26uf7tz7nm9jrsaxn8xxx9uc9amsdg4a5e
file.key は機密鍵であるため、他者に開示してはなりません。
ファイルを暗号化するには、コマンドラインで公開鍵を指定して実行します:
>
rage -e -r 公開鍵 -o 暗号化されたファイル 元の_(暗号化前の)_ファイル
たとえば下記のようになります:
>
rage -e -r age17e4g67cs07jk3lmylyq6gduv26uf7tz7nm9jrsaxn8xxx9uc9amsdg4a5e -o test.txt.age test.txt
暗号化したファイルは、公開鍵に対応する機密鍵を持つユーザのみが復号化できます。つまり、誰かと暗号化したファイルをやりとりしたい場合は、相手の公開鍵を指定して暗号化する必要があります。
>
rage -d -i ~/rage.key -o 復号化したファイル 暗号化されたファイル ファイル
たとえば下記のようになります:
>
rage -d -i ~/rage.key -o test.txt.decrypted test.txt.age
-p
や --passphrase
のパラメータを指定することで、暗号化したファイルにさらにパスフレーズを設定することもできます。既定では Rage は独自にパスフレーズを設定しますが、パスフレーズを指定しておくこともできます。
>
rage -e -p -o 暗号化されたファイル ファイル
たとえば下記のようになります:
>
rage -e -p -o test.txt.age test.txt
Rage では、暗号化を行う際、 Rage の鍵対ではなく SSH (Secure Socket Shell) の鍵対を使用することもできます。 Rage ではそれぞれ ssh-rsa と ssh-ed25519 の公開鍵に対応し、復号化もそれに対応する機密鍵で実施することができます。なお、 ssh-agent と ssh-sk(FIDO) には対応していません。
>
rage -e -p -o 暗号化されたファイル ファイル
たとえば下記のようになります:
>
rage -e -p -o test.txt.age test.txt
たとえば下記のようになります:
>
ssh-keygen -t ed25519
暗号化するには、下記のようなコマンドを実行します:
>
rage -e -a -R 公開鍵ファイル -o 暗号化されたファイル ファイル
たとえば下記のようになります:
>
rage -e -a -R id_ed25519.pub -o test.txt.age test.txt
復号化するには、下記のようなコマンドを実行します:
>
rage -d -i SSH_機密鍵ファイル -o 復号化したファイル暗号化されたファイル
たとえば下記のようになります:
>
rage -d -i id_ed25519 -o test.txt.decrypted test.txt.age
なお、鍵とファイルはそれぞれパスで指定しなければなりません。
Rage は同時に複数の宛先で復号化できる暗号ファイルを作成することもできます。この場合、指定した複数の公開鍵のうち、いずれかの機密鍵を利用して復号化することができます。
rage -e -a -R 最初の_SSH_公開鍵-r 最初の_Rage_公開鍵... -o 暗号化されたファイル ファイル
たとえば下記のようになります:
rage -e -a -R id_ed25519.pub -r age1h8equ4vs5pyp8ykw0z8m9n8m3psy6swme52ztth0v66frgu65ussm8gq0t -o -r age1y2lc7x59jcqvrpf3ppmnj3f93ytaegfkdnl5vrdyv83l8ekcae4sexgwkg test.txt.age test.txt
Rage のコマンドラインパラメータの一覧を取得したい場合は、 -h
または --help
を指定して実行してください。
https://github.com/str4d/rage Rage 暗号化の GitHub リポジトリ
https://github.com/C2SP/C2SP/blob/main/age.md Age 暗号化の GitHub リポジトリ