QNAP NASの暗号化とスナップショットの関係

QNAP NASの暗号化とスナップショットの関係について

最初に

検証に使用したQTSは4.4.1.1117です

今回は以下の条件下で発生する面倒な仕様を紹介
・暗号化ボリュームを使っている
・暗号化キーをNAS本体に保存しない
・スナップショット機能を使用

今回のネタはどちらかというと複数人利用を想定した話です

暗号化ボリュームについて

QNAPの場合、暗号化ボリュームにアクセスする場合に使う暗号化キーの運用は
暗号化キーをNAS本体に保存するか
起動毎に手動で暗号化パスワードか暗号化キーファイルを使ってロック解除の3択

NAS本体に保存

NAS本体に保存すると暗号化処理コスト以外は通常ボリュームと変わりなく
NAS起動時のロック解除を自動で処理してくれたり
今回の記事ネタであるスナップショット運用でも影響がなく簡単で便利だが
肝心のデータ保護についてはそのまま運用してしまうと
盗む目的がデータであろうと金目のものであろうとNAS丸ごと盗むのが正解なのに
わざわざNAS本体は盗らず、ご丁寧にHDDだけ盗まれるという
レアケースでしかデータを守ることができない

NAS本体を盗んでも管理者ユーザのパスワードもわからないからログインできないし
DHCPじゃないしSMBのゲストアクセスを無効にしているから大丈夫と思いきや
QNAPの背面にはコンフィギュレーションリセットスイッチ(リセットスイッチ)があって
このリセットスイッチを使って基本システムのリセット(3秒押し)をすれば
adminパスワードとネットワーク設定がリセットされる機能がある
もちろんこの3秒リセットは保存データには影響しないし
adminユーザを無効にしていても有効になる

他社のNASならこのリセット機能が働くと保存された暗号化キーも無効にされて
再度手動で暗号化キーの入力をしないとロック解除できずデータは守られるが
なぜかQNAPは本体に保存した暗号化キーは削除されずに残っており
パスワードがリセットされたadminでログインすれば
暗号化ボリュームも自動でロック解除されている状態となる
(QTS 4.4.1.1117で個人的にも試して確認済)

この問題はたまにフォーラムで指摘されてはいるものの未だ放置されているのが現状

というわけでどうしても暗号化キーを保存したいけどデータ保護したいという場合は
「コンフィギュレーションリセットスイッチ無効」の設定が必須となる
ただ何か問題が発生した場合でも当然リセットスイッチは使えないので
デメリットも理解した上で設定する必要がある

暗号化パスワード

暗号化パスワードはボリューム作成時に入力した文字列で暗号化キーそのもの
暗記して手動入力が最強ではあるが
長期的な運用と暗号強度を考慮した桁数だとなかなか現実的には難しい
txtからコピペするぐらいならキーファイルで済む話なので
現実的にはこれで運用するメリットは少ない

暗号化キーファイル

QNAPで暗号化ボリュームをまともに運用しようと思うとこれしかないのが
暗号化キーファイルでの運用でボリューム作成後にダウンロードできるようになっている
キーファイル自体はkey拡張子で中身は512桁の文字列で構成されたテキストファイル
決して暗号化パスワードが裸で保存された単純なテキストファイルというわけではない
デメリットはファイルの保管場所

今回は一番多いであろう暗号化キーファイルでの運用を前提に説明してますが
どの方法にしろ一度暗号化キーを使ってマウントすれば
再度ボリュームロックするかNASを再起動するまでは
Windows共有などでも読み書きが可能で
通常ボリュームと同様の扱いになると思いがちですがスナップショット周りだけは違います

スナップショットマネージャーの動作

改めて書いておきますがこれは暗号化キーをNAS本体に保存している場合は
保存された暗号化キーを使って自動で処理されますのでこの状態にはなりません

では本題ですが暗号化ボリュームを暗号化キーファイルでロック解除して
ボリュームが「準備完了」のステータスの状態になった状態で
スナップショットマネージャーを開くとどうなるのか?
それがこちらです

左上でボリューム自体は「準備完了」になっていてロック解除済なのが確認できますが
スナップショットデータは別途ロック解除が必要になります

「ロック解除>>」というリンクを選択すると
ボリュームをロック解除する時と同じような画面が出ます

暗号化キーファイルの場合はこちら

暗号化キーの保存はボリュームと同様にNAS本体に保存するオプションです

日本語サイズに入力フォームが合ってないのか文字が被ってますが
「すべてのスナップショットのロック解除」というオプションがあり
これを選択しない場合は各スナップショットデータごとにロック解除が必要になります

ここで気になるのは「すべてのスナップショットのロック解除」というオプションを使って
これを起動後に1回しておけばボリュームのロック解除と同様に
全スナップショットデータがロック解除されるのではないか?という疑問ですが答えは
ロック解除以前に撮られたスナップショットは全て解除されるが
ロック解除以後に撮られたスナップショットはロックされたままになります
つまり最近のスナップショットを使いたければロック解除の操作が必須なのです

暗号化キーファイルを使用した時点に存在するデータは全てロック解除されるという仕様は
NASを再起動した後の暗号化ボリュームのロック解除でも同様の処理になっていて
先ほどの1枚目の画像でロック状態になっている18時21分のスナップショットも
再起動後に暗号化ボリュームを暗号化キーファイルを使用してロック解除すると
自動で見えるようになっています

しかし再起動後に新しく撮った18時38分のスナップショットデータはロック状態になります

次はこの仕様がスナップショットマネージャー以外にも影響しているという話

スナップショットを利用する他の機能について

ロック解除しないとスナップショットのデータが閲覧できないということは
スナップショットに関係する全てのアプリに影響します

例えばスナップショットマネージャーで見なくても
Windowsファイル共有にて@Recently-Snapshotフォルダから
スナップショットを閲覧できる機能もありますがこれも影響します

動作としては@Recently-Snapshotフォルダ自体は機能を有効にしていれば配置されますが
@Recently-Snapshotの中にはロック解除したスナップショットデータのみ表示されるので
NAS起動後に何もしなければ@Recently-Snapshotの中は
ボリュームロック解除した時点までのスナップショットデータのみ表示されて
新しいスナップショットデータはスナップショットマネージャーでロック解除するか
再度ボリュームをロック解除するまでは表示されません

他にも「Windowsの[以前のバージョン]」機能や
File Stationのスナップショットフォルダも同様にロック解除しないとリストに表示されません

最後に

スナップショットをよく使う用途であれば暗号化を有効にすると
なかなか面倒な仕様に仕上がっていますので注意が必要です

新しいスナップショットはロック解除しないと中身を閲覧できず
毎度、暗号化キーファイルが必要ということは
暗号化キーファイルの使用頻度も上がり暗号化キーファイル自体の管理も
NAS起動時だけ保管場所から取り出せばいいという訳にもいかなくなります

理想というか普通はボリュームのロック解除中はオンメモリで暗号化キーを保管して
新しいスナップショットデータも自動でロック解除して欲しいところ

暗号化キー周りの作りは他の記事でも触れてますが
暗号化キー変更の制限や物理キーが作成できなかったりと
他社のNASを使ったことがあるとどうしても不便と感じるのが本音です