【Windows】cipherコマンドでファイル暗号化(EFS)を管理する

セキュリティ

今回は、Windowsに標準搭載されている「cipherコマンド」を使ったファイル暗号化(EFS:Encrypting File System)の管理方法について解説します。

企業の情報セキュリティ対策として、機密ファイルの暗号化は欠かせない要素です。この記事では、EFSの仕組みからcipherコマンドの基本操作、実務での活用シナリオ、そしてトラブルシューティングまで、丁寧に解説していきます。


EFS(Encrypting File System)とは?

EFSは、Windows 2000以降のNTFSファイルシステムに組み込まれた暗号化機能です。ファイルやフォルダを暗号化することで、万が一PCの盗難やハードディスクの紛失が発生しても、第三者がデータを読み取ることを防止できます。

EFSの仕組み

EFSは「公開鍵暗号方式」と「共通鍵暗号方式」を組み合わせたハイブリッド暗号化を採用しています。その動作の流れは以下のとおりです。

  1. ファイル暗号化キー(FEK)の生成:ファイルを暗号化する際、ランダムな共通鍵(FEK:File Encryption Key)が生成されます。
  2. ファイルの暗号化:FEKを使用して、対象ファイルがAES(Advanced Encryption Standard)などのアルゴリズムで暗号化されます。
  3. FEKの保護:生成されたFEKは、ユーザーの公開鍵で暗号化され、ファイルのメタデータとして保存されます。
  4. 復号化:ファイルにアクセスする際、ユーザーの秘密鍵でFEKを復号し、そのFEKでファイル本体を復号します。

この仕組みにより、暗号化したユーザー(または許可されたユーザー)のみがファイルを開くことができます。

EFSのメリットと注意点

メリット

  • Windows標準機能のため、追加コストなしで利用可能
  • ユーザーが意識せずに透過的に暗号化・復号化される
  • ファイル単位・フォルダ単位で柔軟に暗号化を適用できる

注意点

  • NTFSファイルシステムでのみ利用可能(FAT32などでは使用不可)
  • 暗号化証明書と秘密鍵のバックアップが必須(紛失するとデータ復旧不可)
  • システムファイルや圧縮属性のついたファイルは暗号化できない

cipherコマンドとは?

cipherコマンドは、Windowsのコマンドプロンプトから EFS暗号化を管理するためのコマンドラインツールです。GUIでも暗号化の設定は可能ですが、cipherコマンドを使うことで、複数ファイルの一括処理やスクリプトによる自動化が可能になります。

cipherコマンドの基本構文

cipher [オプション] [パス]

パスを指定せずに実行すると、カレントディレクトリ内のファイルとフォルダの暗号化状態を表示します。


cipherコマンドの主要オプション一覧

以下に、実務でよく使用するcipherコマンドのオプションをまとめました。

オプション 説明
/e 指定したフォルダを暗号化します。以降そのフォルダに追加されるファイルも自動的に暗号化されます。
/d 指定したフォルダの暗号化を解除します。以降追加されるファイルは暗号化されません。
/s:ディレクトリ 指定したディレクトリとすべてのサブディレクトリに対して操作を実行します。
/a ファイルとディレクトリの両方に対して操作を実行します。
/h 隠しファイルやシステム属性のファイルも対象に含めます。
/k EFS用の新しいファイル暗号化キーを作成します。
/r:ファイル名 EFS回復エージェント用のキーと証明書を生成します。
/u ローカルドライブ上の暗号化されたすべてのファイルを更新します。
/n 他のオプションと組み合わせて、実際の操作を行わずに対象を表示します(テスト用)。
/w:ディレクトリ 削除済みデータの痕跡をボリューム全体から消去します。
/x:ファイル名 EFS証明書とキーをバックアップします。
/y ローカルPC上のEFS証明書のサムネイルを表示します。
/adduser 暗号化ファイルにアクセスできるユーザーを追加します。
/removeuser 暗号化ファイルからユーザーを削除します。

代表的なコマンド例

1. 暗号化状態の確認

現在のディレクトリ内のファイル・フォルダの暗号化状態を確認します。

cipher

実行結果の見方

  • 「E」:暗号化されているファイル/フォルダ
  • 「U」:暗号化されていないファイル/フォルダ

2. フォルダを暗号化する

指定したフォルダを暗号化し、今後追加されるファイルも自動的に暗号化されるようにします。

cipher /e /s:C:\SecureData

このコマンドは、C:\SecureDataフォルダとそのサブディレクトリすべてを暗号化対象に設定します。

3. フォルダの暗号化を解除する

暗号化を解除し、通常のフォルダに戻します。

cipher /d /s:C:\SecureData

4. ファイルも含めて暗号化する

フォルダ内の既存ファイルも含めて暗号化する場合は、/aオプションを追加します。

cipher /e /s:C:\SecureData /a

5. 暗号化証明書のバックアップ

EFSで暗号化したファイルを復号するために必要な証明書と秘密鍵をバックアップします。これは非常に重要な操作です。

cipher /x:C:\Backup\EFS_Backup

実行するとパスワードの設定を求められます。安全な場所にバックアップファイルを保管してください。

6. 削除済みデータの完全消去

ディスク上の削除済みデータの痕跡を上書き消去し、復元を困難にします。

cipher /w:C:\

このコマンドは、Cドライブの未使用領域を3回上書きします(0x00、0xFF、乱数)。機密データを削除した後のセキュリティ対策として有効です。

7. 暗号化ファイルへのアクセスユーザー追加

他のユーザーにも暗号化ファイルへのアクセス権を付与します。

cipher /adduser /user:ドメイン名\ユーザー名 C:\SecureData\機密ファイル.docx

実務での活用シナリオ

シナリオ1:機密文書フォルダの保護

経理部門や人事部門など、機密性の高い文書を扱う部署では、専用フォルダを作成して暗号化を適用することで、万が一PCが盗まれても情報漏洩を防止できます。

cipher /e /s:"C:\Users\%USERNAME%\Documents\機密文書" /a

シナリオ2:退職者のPC引き継ぎ時のデータ消去

退職者が使用していたPCを別の社員に引き継ぐ際、削除したファイルの痕跡を完全に消去します。

cipher /w:C:\Users\退職者名

シナリオ3:定期的な暗号化キーの更新

セキュリティポリシーに基づき、定期的に暗号化キーを更新する運用を行います。

cipher /k
cipher /u /n
cipher /u

まず /k で新しいキーを作成し、/u /n で更新対象を確認してから、/u で実際に更新を実行します。

シナリオ4:回復エージェントの設定

システム管理者が回復エージェントとして、ユーザーが暗号化したファイルを復旧できるように設定します。

cipher /r:C:\Admin\RecoveryAgent

生成された証明書をグループポリシーで配布することで、組織全体のEFSファイルを管理者が復旧可能になります。


トラブルシューティング

問題1:暗号化したファイルが開けなくなった

原因:ユーザープロファイルの破損、OSの再インストール、証明書の紛失など

対処法

  1. 事前にバックアップした証明書(.pfxファイル)をインポートします
  2. 証明書マネージャー(certmgr.msc)を開き、「個人」→「証明書」にインポート
  3. バックアップがない場合は、回復エージェントによる復旧を試みます

問題2:「アクセスが拒否されました」エラー

原因:暗号化を実行したユーザーと異なるアカウントでアクセスしている

対処法

  1. 暗号化を実行したユーザーアカウントでログインする
  2. または、cipher /adduser で現在のユーザーを追加する
  3. 回復エージェントが設定されている場合は、管理者に復旧を依頼

問題3:フォルダを暗号化できない

原因:NTFSファイルシステムではない、システムファイルを対象にしている、圧縮属性が設定されている

対処法

  1. ドライブのファイルシステムを確認(NTFSであることを確認)
  2. 圧縮属性を解除してから暗号化を実行
  3. システムフォルダ(Windowsフォルダなど)は暗号化対象外

問題4:cipherコマンドが認識されない

原因:システム環境変数のPATHが正しく設定されていない

対処法

  1. コマンドプロンプトを管理者権限で実行
  2. フルパスで実行:C:\Windows\System32\cipher.exe

まとめ

cipherコマンドは、Windowsの標準機能でありながら、強力なファイル暗号化機能を提供してくれます。特に以下のポイントを押さえておくことが重要です。

  • 暗号化証明書のバックアップは必須:証明書を紛失すると、暗号化したファイルを二度と開けなくなります。
  • 回復エージェントの設定:組織で運用する場合は、管理者による復旧手段を確保しておきましょう。
  • 定期的な運用確認:暗号化状態の確認やキーの更新を定期的に実施することで、セキュリティレベルを維持できます。

EFSとcipherコマンドを適切に活用することで、追加コストをかけずに企業の情報セキュリティを強化できます。ぜひ、この記事を参考に、実務での暗号化運用に役立ててください。

 

【注意】

このブログは技術に関する知識や経験を共有することを目的としており、情報の正確性に努めていますが、その内容の正確性や完全性を保証するものではありません。ブログの情報を利用する場合は、自己の責任において行動してください。ブログの内容に基づいて行った行動や決定によって生じた損害や被害について、筆者は一切の責任を負いません。

 

記事の内容の一部は、生成AIで作成しています。

セキュリティwindowsITナレッジ
この記事の作者
StarTeller

30歳で異業種からITエンジニアへ転身し、10年以上にわたりインフラエンジニアとして様々な現場でシステム構築・運用に携わってきました。
得意分野はLinux/Windowsのサーバー構築・運用で、ネットワークやAWSなども実務で活用しています。このブログでは、これまでの業務で培った経験を基に、日々の業務で遭遇した問題の解決方法や、システム構築の具体的な手順を解説。現場のエンジニアが実際に「困ったとき」に参照できる情報を意識して投稿していこうと思っています。
※サーバ運用費がかかっているので、広告を掲載させて頂いてます。

StarTellerをフォローする
シェアする
StarTellerをフォローする
タイトルとURLをコピーしました