「Cyberduck」と「Cryptomator」で、クライアントサイドの暗号化

macOS(OS X)、WindowsベースのFTPクライアント「Cyberduck」では、米国時間2017年5月9日付にてリリースされた「6.0.0 Build 24625」より、オープンソースの暗号化ソフトウェア「Cryptomator」が統合されています。当エントリでは 「Cyberduck」と「Cryptomator」の連携によるクライアントサイドでの暗号化を、手順等を含めた形で簡単に纏めてみたいと思います。

クライアントサイドで、エンドツーエンドの暗号化と復号を実現

Cyberduckは、デフォルトにて「FTP(File Transfer Protocol)」「FTP-SSL(Explicit AUTH TLS)」「SFTP(SSH File Transfer Protocol)」等のプロトコルをサポートする他、各種のクラウドストレージ等に対する接続にも対応してます(FTPSは明示的な接続(Explicitモード)のみに対応し、暗黙的な接続(implicitモード)には対応しません)。

この中から、今回の暗号化と復号の実践には、クラウドストレージの「Google Drive」を使用する事とします。

CyberduckからGoogle Driveにアクセス

CyberduckからGoogle Driveに接続するための手順は、以下の通りとなっています。

  1. 「File(ファイル)」メニュー、或いはツールバーの「Open Connection(新規接続)」ボタンから、接続プロトコルとして「Google Drive」を選択
    Cyberduckの「Open Connection」
    ↑「Open Connection」から、接続プロトコルとして「Google Drive」を選択
  2. 「Connect(接続)」をクリックすると システム既定のWebブラウザが起動して、Googleアカウントのログイン画面に誘導されるので、ユーザー名とパスワードを入力して、Googleアカウントにログイン
  3. Google Driveに対して、Cyberduckからのアクセスを許可する
    Cyberduckからのアクセスを許可
    ↑Google Driveに対して、Cyberduckからのアクセスを許可
  4. 発行された認証コードをコピーして、Cyberduckの認証ボックスにペースト
    Cyberduckの認証ボックス
    ↑認証コードをコピーして、Cyberduckの認証ボックスにペースト
  5. ボックス右下の「Continue」ボタンを押して、認証を完了

正しく認証されると、Google Driveのユーザールートにアクセスする事が可能となります。

Google Driveにアクセス
↑正しく認証され、Google Driveのユーザールートにアクセス

Google Driveに暗号化フォルダーを作成

続いて、アクセスしたGoogle Driveに、暗号化フォルダーを作成する手順を以下に示します。

  1. 「File(ファイル)」メニュー、或いはツールバーの「Action(アクション)」ボタンから、「New Encrypted Vault…」を選択して実行
  2. アンロック(復号化)するためのパスワードを設定(パスワードのセキュリティレベルをグラフィカルに表示)
    復号するためのパスワードを設定
    ↑セキュリティレベルを確認しながら、アンロック(復号化)するためのパスワードを設定

設定した名称の暗号化フォルダーが、指定した階層に作成されている事を確認して、プロセスを完了します(暗号化するフォルダー名は「file-vault」と設定しました)。

暗号化フォルダーにファイルをアップロード

続いて、作成した暗号化フォルダーに、ファイルをアップロードする手順を以下に示します。

  1. 作成した暗号化フォルダー(file-vault)にアクセス
  2. アンロック(復号化)するためのパスワードの入力を促されるので、暗号化フォルダーを作成した時に設定したパスワードを入力
    復号するためのパスワードを入力
    ↑アンロック(復号化)するためのパスワードを入力
  3. 暗号化フォルダーへのアクセスに成功したら、「File(ファイル)」メニュー、或いはツールバーの「Action(アクション)」ボタンから、「upload…(アップロード…)」を選択して実行
  4. 専用のナビケーションサービスを通じて、ファイルシステムから対象のファイルを選択し、アップロードを実行
  5. 再度、アンロック(復号化)するためのパスワードの入力を促されるので、暗号化フォルダーを作成した時に設定したパスワードを入力して実行

指定したファイルが、ターゲットとなる暗号化フォルダーにアップロードされている事を確認して、プロセスを完了します。

暗号化フォルダーにアップロード
↑暗号化フォルダーにアップロードされている事を確認

暗号化フォルダーからファイルをダウンロードし、整合性を確認

続いて、作成した暗号化フォルダーから、ファイルをダウンロードする手順を以下に示します。

  1. 作成した暗号化フォルダー(file-vault)にアクセス
  2. アンロック(復号化)するためのパスワードの入力を促されるので、暗号化フォルダーを作成した時に設定したパスワードを入力
  3. 暗号化フォルダーへのアクセスに成功したら、ダウンロード対象のファイルを選択
  4. 「File(ファイル)」メニュー、或いはツールバーの「Action(アクション)」ボタンから、「download…(ダウンロード…)」を選択して実行

「Transfers(転送)」ウインドウを開いてダウンロードの成功を確認し、プロセスを完了します。

ダウンロードの成功を確認
↑「Transfers(転送)」ウインドウにて、ダウンロードの成功を確認

アップロード前とダウンロード後のファイルでハッシュ値(SHA-256)を計算して比較し、ファイルの整合性を確認します。

openssl dgst -sha256 /path/to/filename

最後に

FTPクライアントとしての機能に加えて、クラウドストレージへのアクセスや暗号化転送にも対応し、macOSにマッチするエレガントなユーザーインターフェイスを有するCyberduckは、個人的にも利用頻度の高いアプリケーションの一つです。

惜しむらくは、接続や転送でエラーが散見される事(私の環境に問題があるのかも知れませんが)ですが、Filezilla等との併用で、多くのタスクは 追加のコストを伴わすしてカバーする事ができるのでないかと認識しています。