ドライブ全体や外付けHDDの暗号化が可能な暗号化ソフトVeraCrypt

関連記事

VeraCryptとは

暗号化ソフトとして一時代を築いたTrueCryptの後継ソフトです。

コマンドラインオプションやUIはほぼTrueCryptと同じなので、元々TrueCryptを使っていた人は違和感なく移行できるでしょう。

上位互換性があり、『TCモード』を使うことでTrueCryptで作成した暗号化ボリュームのマウントも可能。

最近のポータブルHDD/SSDは暗号化ソフトが付いてくることも多いですが、メーカーごとに操作方法が異なるソフトの操作を覚えるより、暗号化は全てVeraCryptで行ったほうが効率的です。

VeraCryptのコンテナはクロスプラットフォームでもあるので、WindowsだけではなくMacやLinuxでも問題なく動作するのも魅力。

暗号化によるメリット・デメリット

メリット

当然ながらプライバシーの向上が挙げられます。

業務で使うパソコンは当然として、個人のパソコンであってもプライベートなファイルは可能なかぎり暗号化した方がいいでしょう。

デメリット

これも当然ですがマウント・アンマウントの手間がかかります。

VBスクリプトやバッチファイルを書くことでかなり手間を軽減可能ですが、毎回パスワードを入力する必要があるのは回避しようがありません。

ドライブ全体の暗号化について

VeraCryptではドライブ全体の暗号化もサポートしていますが、ファイルとして持ち歩くことができなくなるので、個人的には『ほぼドライブ全体を使い切るサイズ』のコンテナを作成することを推奨します。

余った容量に以下のような自動マウントスクリプトを置くこともできますし。

Windows10の高速スタートアップがオンだとボリュームのマウントが解除されない

これでは何の意味もないので無効化します。

GUI操作で無効化する方法はGoogle検索をすればすぐ出てくるので、ここでは実行することで高速スタートアップを無効化するVBスクリプトを記載しておきます。

' 高速スタートアップを無効化
Set objShell = WScript.CreateObject("WScript.Shell")
'WScript.echo(objShell.RegRead("HKLMSYSTEMCurrentControlSetControlSession ManagerPowerHiberbootEnabled"))
objShell.RegWrite "HKLMSYSTEMCurrentControlSetControlSession ManagerPowerHiberbootEnabled", 0

管理者権限で実行する必要があります。

VBSでVeraCryptのボリュームファイルをマウントする

ボリュームの作成方法は検索すれば出てくるのでこの記事ではVBスクリプトでコンテナをマウントする方法を紹介します。


Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

' マウントするドライブ
MOUNTDRIVE = "V"
CONTAINERDRIVE_BACKUP = ""
' バックアップファイル名
BACKUP_FILE_NAME = "backup.tc"

Dim PASSWORD
PASSWORD = InputBox("パスワードを入れて下さい。", "バックアップドライブ")

If Not objFSO.FolderExists(MOUNTDRIVE + ":") Then
 For Each drive In objFso.Drives
    If objFSO.FileExists(drive + "" + BACKUP_FILE_NAME) Then
      CONTAINERDRIVE_BACKUP = drive
      objWshShell.Run("C:localVeraCryptVeraCrypt.exe /l " + MOUNTDRIVE + " /v " + CONTAINERDRIVE_BACKUP + "" + BACKUP_FILE_NAME + " /q /p " + PASSWORD)
    End If
 Next
End If

If CONTAINERDRIVE_BACKUP = "" Then
   WScript.Echo("バックアップドライブが見つかりません。")
   WScript.Quit
End If

Do While objFSO.FolderExists(MOUNTDRIVE + ":") <> -1
  WScript.Sleep 1000
Loop

Windows版のVeraCryptはウィンドウタイトルがうまく取得できないのでKeePass用にパスワード入力ダイアログを表示し、全てのドライブからバックアップファイル名を探してマウントするVBSファイルです。

外付けSSDなどでドライブレターが変わった場合にも対応できるように作成しました。

VBSのダイアログでパスワードが暗号化されないのが少々気がかり。

関連記事

SNSでシェアする