kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu EncFS その2 - 暗号化の設定について

暗号化設定について

  暗号化設定の概要です。
  よく知られている項目やEncFSに依存しない項目は除外します。

  PBKDF2の繰り返し処理に使用する時間

    Wall-clock timeで繰り返し回数が決まるため、CPUの性能に依存します。
    1.6Ghzの64bit CPUで0.5秒間処理を行うと、約64000回程度です。
    私の環境だと25万回程度です。

  ブロックサイズ

    仮想ファイルシステムのブロックサイズです。
    ブロックサイズ単位で暗号化と復号化を行います。
    1byteでもデータを書き換える・読み込む必要がある場合は、ブロック全体が処理対象になります。

    ブロックサイズを小さくするとランダムアクセス性能が上がりますが、データのスループットは落ちます。
    ブロックサイズを大きくするとデータのスループットが上がりますが、ランダムアクセス性能は落ちます。

    おすすめは1024byteです。

  ファイル名の符号化方式

    ブロック方式とストリーム方式があります。

    ブロック方式 

      ストリーム方式より暗号化後のファイル名が長くなりますが、暗号化後のファイル名からファイル名の長さが予測しにくくなります。
      デフォルト及びおすすめはブロック方式です。

    ストリーム方式

      ブロック方式の逆です。
      ブロック方式より暗号化後のファイル名が短くなりますが、暗号化後のファイル名からファイル名の長さが予測しやすくなります。

  Filename IV chaining

    ファイル名を暗号化する際に、ファイルパスの影響を受けるようになります。

    通常「/a/b/c.txt」 と「/d/e/c.txt」の暗号化後のファイル名は同じファイル名になります。
    この機能を有効にするとパス名の影響を受けるため、暗号化後のファイル名は異なるファイル名になります。
     セキュリティーの強度は上がりますが、親ディレクトリー名を変更するとそのディレクトリー内のファイル名が再暗号化されるため、処理に時間がかかるようになります。
    もし再暗号化中にアクセス権がないなどのエラーが発生した場合、ディレクトリー名の変更はキャンセルされます。

    ちなみにIVは「4」ではなく、「Initialization Vector」の略です。

    デフォルトは有効です。

  Unique initialization vector file headers

    「Per-file initialization vectors」とも表現され、ファイルの暗号化処理を64bitのランダムな情報で変化させます。
    これにより中身が同じファイルであっても、暗号化されたファイルの中身は異なるようになります。
    もしバイナリデータを比較されても、同じ中身のファイルかどうか判別されにくくなります。

    デフォルトは有効です。

  External IV Chaining

    「Filename to IV header chaining」とも表現され、ファイルの暗号化時にファイルパスの影響を受けるようになります。

    これにより中身が同じファイルであっても、暗号化されたファイルの中身は異なるようになります。
    もしバイナリデータを比較されても、同じ中身のファイルかどうか判別されにくくなります。

    この機能を有効にするとハードリンクは作成出来なくなります。
    ハードリンクを扱うアプリは動作しなくなるので注意が必要です。

    またこれも「Filename IV chaining」と同じように、ファイル名変更時に似たような事情が発生します。

    デフォルトは無効です。

  Message Authentication Code block headers

    「Block MAC headers」や「block authentication code headers」とも表現され、各ブロックにチェックサムを埋め込みます。
    チェックサムの計算をファイルの読み込み時と書き込みに行うためパフォーマンスは落ちますが、ファイルが壊れているかどうかEncFS側で検出できるようになります。

    もしファイルが壊れていた場合、読み込み失敗エラーをアプリに返し、ログにエラー情報を書き出します。
    残念ながら修復までは行いません。

    デフォルトは無効です。

  Block MAC RandBytes

    「Block MAC headers」にランダムバイトを追加します。
    通常はブロックの内容が同じだとチェックサムの結果も同じになります。
    ランダムバイトを追加することでチェックサムの結果が同じにならないようにし、セキュリティーの強度を上げます。

  File-hole pass-through

    ファイルホールは実際にデータを書き込むときにファイルシステムのブロックが割り当てられます。
    スパースファイルをイメージしてもらえれば良いです。
    ファイルシステムのブロックが割り当てられると、ファイルホールではなくなります。

    「File-hole pass-through」はファイルホールが作られた時にブロックを暗号化しません。
    これによりパフォーマンスの低下を軽減することができます。

    デフォルトは有効です。


EncFS
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntu 22.04 LTSのインストール その5 - UEFI環境でパーティションの作成と構成 〜 ブートローダーのインストール先の選択
    UEFI環境でパーティションの作成と構成を行う UEFI環境でパーティションの作成と構成を行います。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Ubuntu 22.04 その95 - ディスプレイサーバーを切り替えるには・XorgとWayland
    ディスプレイサーバーを切り替えるには 「Ubuntu」はデフォルトで2種類のディスプレイサーバーを提供しています。
  • VirtualBox その125 - ゲストOSのUbuntuにLinux Guest Additionsをインストールするには
    ゲストOSのUbuntuにLinux Guest Additionsをインストールするには 仮想マシンにインストールしたゲストOSの「Ubuntu」に、「Linux Guest Additions」をインストールする方法です。
  • Ubuntu 22.04 その98 - 入力ソースとキーボートレイアウトと日本語入力のカスタマイズ
    入力ソースとキーボートレイアウトと日本語入力 「Ubuntu」ではユーザーが利用しているキーボードレイアウトや日本語入力のカスタマイズが可能です。
  • Ubuntuのバージョンと開発コードの対応表
    UbuntuのバージョンとUbuntuの開発コード 「Ubuntu」には各バージョンごとに開発コードが設定されます。
  • Ubuntu 22.04 その99 - 日本語入力(Mozc)の設定をカスタマイズして作業効率を上げよう
    日本語入力(Mozc)の設定をカスタマイズするには 「Ubuntu」では日本語入力に「Mozc」を採用しています。
  • Ubuntu 20.04 その74 - UbuntuとUEFIセキュアブート
    UbuntuとUEFIセキュアブート 「Ubuntu」と「UEFIセキュアブート」に関するお話です。
  • Linux その215 - GNOME 48 リリース・GNOME 48 の新機能と変更点
    GNOME 48 の新機能と変更点 2025年3月19日、GNOME 48(コードネーム:Bengaluru) がリリースされました。 リリースノートから GNOME 48 の新機能と変更点を紹介します。
記事のピックアップ
オプション