22と23のリビジョン間の差分
2018-11-19 22:58:52時点のリビジョン22
サイズ: 19029
コメント:
2018-11-19 23:00:52時点のリビジョン23
サイズ: 19031
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 325: 行 325:
 * [[FreeBSD/camcontrol/WD Red HDD|WD Red HDD]]  * [[FreeBSD/camcontrol/WDC Red HDD|WDC Red HDD]]

セキュアイレース(Secure Erase)

目的

  • 手持ちのSSD/HDDでセキュアイレース(Secure Erase)してみた。
  • クリアされることの確認(ダンプしてオールゼロになること)および実施に当たっての注意点(実行上の注意)を探る。
  • サニタイズ(Sanitize)は今回の検証範囲外とする(検証した全ての機種で実行不可能であることを確認)。

検証環境

動作確認

デバイス接続時のカーネルメッセージ(GROOVY)

ugen0.2: <UD-3000SA UD-3000SA> at usbus0
umass0 on uhub0
umass0: <UD-3000SA UD-3000SA, class 0/0, rev 3.00/4.27, addr 2> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x8100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <UD3000SA  0427> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 20150331008EF
da0: 400.000MB/s transfers
da0: 228936MB (468862128 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
  • umass に「UD-3000SA」の文字列があること。
  • da0 に「UD3000SA」の文字列があること。

※SATA接続の場合、adan に直接SSDの文字列が表示される。下記のように、同一デバイスにおける接続形態によりメッセージが異なる。

ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
ada0: Serial Number 160845400358
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 228936MB (468862128 512 byte sectors)

デバイス接続時のカーネルメッセージ(UGREEN)

ugen0.3: <Ugreen Ugreen Storage Device> at usbus0
umass0 on uhub0
umass0: <Ugreen Ugreen Storage Device, class 0/0, rev 3.00/1.00, addr 13> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <WDC WD10 EFRX-68PJCN0 0> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 000004003FD2
da0: 400.000MB/s transfers
da0: 953869MB (1953525168 512 byte sectors)
da0: quirks=0xa<NO_6_BYTE,4K>
  • umass に「Ugreen Storage Device」の文字列があること。
  • da0 は元のメディアの文字列が表示される。

とにかくセキュアイレースしよう

しゃらくせぃ!さっさとコピペで実行できるコマンド教えやがれ、という自分の心の安寧のための章につき詳細は後述。

camcontrol security da0 | grep -e frozen -e enhanced

camcontrol security da0 -U user -s secure99 -e secure99 -y
camcontrol security da0 -U user -s secure99 -h secure99 -y

camcontrol security da0

camcontrol security da0 -U user -k secure99
camcontrol security da0 -U user -d secure99
  • frozen かどうか(yes/no)確認する。「yes」ならこれ以上の対応はできない。
  • 拡張セキュアイレースに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。
  • セキュアイレースが完了したかモニタリング(応答が正常に返ることを確認する)。
  • 完了したらドライブロックを解除(drive locked yes の時、しなくても良い機種もある)
  • 更にセキュリティモードからの脱出(enabled yes の時、しなくても良い機種もある)

セキュアイレースの実行のロジック

コマンド実行

camcontrol security da0 -U user -e パスワード」を実行するだけ!(嘘)

# camcontrol security da0 -U user -e パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
camcontrol: Can't secure erase (security is disabled)
  • 上記コマンドを無条件で実行した場合「security is disabled」であるためセキュアイレースの実行に失敗する(というメッセージが出る)。
  • 「security is enabled」にするために確認および事前手順を実施する必要がある。
  • まずは以下のコマンドを実行して(ステータス表示)セキュアイレースできるか確認する。

camcontrol security da0

たとえば SanDisk ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。

pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

Security Option           Value
supported                 yes
enabled                   no
drive locked              no
security config frozen    no
count expired             no
security level            high
enhanced erase supported  yes
erase time                2 min
enhanced erase time       18 min
master password rev       fffd

上記結果から「enabled no」「security config frozen no」であることが確認できる。

「enabled yes」「security config frozen no」の時、セキュアイレースできるので、本ケースの場合、以下のコマンドで「enabled yes」に変更する。

なお「security config frozen yes」の時はリセットする方法が無いのでデバイスをいったん切るしかない(電源オフ→電源オンなど)。 一応デバイスの電源が入る時は「security config frozen no」になってるはずだが、 BIOSやツール等により「security config frozen yes」にしてしまうモノがあるので注意。 その場合、BIOSの設定を変更するか、接続を変える(SATA接続→USB接続など)等で対応する。

# camcontrol security da0 -U user -s パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_SET_PASSWORD password='パスワード', user='user', mode='high'

この結果、ステータス表示結果が以下のように変わる。

pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

Security Option           Value
supported                 yes
enabled                   yes
drive locked              no
security config frozen    no
count expired             no
security level            high
enhanced erase supported  yes
erase time                2 min
enhanced erase time       18 min
master password rev       fffd

上記状態で再度セキュアイレースを実行すると、以下のように成功する。

# camcontrol security da0 -U user -e パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'

Erase Complete

つまりコマンド実行するなら

-s オプションと -e オプションは同時に指定できるので、まとめて指定してしまえる。 この時のパスワードはもちろん同一である(-s オプションの指定が正である)。

# camcontrol security da0 -U user -s パスワード -e パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

You are about to ERASE ALL DATA from the following device:
pass0,da0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device

Are you SURE you want to ERASE ALL DATA? (yes/no) yes
Issuing SECURITY_SET_PASSWORD password='パスワード', user='user', mode='high'
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'

Erase Complete

見てのように、全てのデータを消して(ERASE ALL DATA)いいのか「yes」「no」を聞いてくるので、確認不要(バッチモード)なら「-y」オプションを加えるとよい。

# camcontrol security da0 -U user -s パスワード -e パスワード -y
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_SET_PASSWORD password='パスワード', user='user', mode='high'
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'

Erase Complete

「-e」「-s」「-y」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。

なお「Erase Complete」が表示されず「camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed」 が表示される場合、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。

下記のような表示が続く場合は、内部でセキュアイレース中であると言える。

# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed

どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

本例では「erase time 2 min」とあるので、2分後には終ってる可能性がある。

拡張セキュアイレースするなら

本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアイレース(Enhanced Secure Erase)を実行することができる。 拡張でないセキュアイレースとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアアイレースの実行」にある。 実行方法は先に実施した「-e」オプションでの指定を「-h」の指定に変えるだけでよい。

もちろん合わせて「-s」「-y」オプションの使用は可能だ。ここではエッセンシャルな部分だけ説明する。

# camcontrol security da0 -U user -h パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'
camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed

セキュアアイレースの実行と違い、「Erase Complete」ではなくエラー(failed)になっている。 ATAコマンド発行後の応答に時間がかかったためであるが、 以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。 下記のような表示が続く場合は、内部でセキュアイレース中であると言える。

# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed

どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

一応本例では「enhanced erase time 18 min」とあるので、18分後には終ってる可能性がある。

なお SanDisk ExtremePRO SSD の場合、拡張セキュアイレースが完了するとデバイスが切断(デタッチ)される。 一般的な振る舞いかどうかは不明だが、そういう風に振る舞うデバイスもある、ということで。

途中で止まってるケース・止めたケース

セキュアイレース中にドライブの電源を落した、必要以上に時間(10倍とか)がかかってる、 という場合、セキュアイレースが中断している可能性がある。

その場合、下記のようにして「drive locked」を解除(yes → no)する。

# camcontrol security da0 -k パスワード

また続いて、「enabled」を解除(yes → no)する。

# camcontrol security da0 -d パスワード

これを実行して、セキュアイレースを強制中断できるかは不明だが、 ドライブの電源を落したあとでは、camcontrol security da0 コマンドを受け付けるため、上記解除方法が実行できるようになる。

よくある質問とその答え

Q.パスワードは何を設定すればいいですか?

A.結論を言えばてきとー。どれくらいてきとーかと言うと、

A.SanDisk曰く「SanDisk SSD Dashboard」では「sandisk123」を設定している。

A.一般論としては、

  • パスワードを設定して「セキュリティ機能を有効化」→「セキュアイレース」後は、内部で、セキュアイレースが完了すると「セキュリティ機能の無効化」が自動で行われることがあります(そうでない機種もある)。
  • 最初から「セキュリティ機能を有効化」されてるデバイスがあるかは不明。ただし、設定したまま放置されることはありうる。
  • あと、勝手に設定するソフトウェアがあるのでこの手のツールを使用するときは注意。
  • camcontrol security」は「この手のツール」ではあるが、パスワードを常に要求するので意識すること。

Q.パスワード毎回設定するなら覚えなくていいのでは?

A.大丈夫だ。問題無い・・・わけでもなく、正常に処理された場合は覚えておかなくてもなんとかなるけど、 処理に失敗した場合や手動で解除する必要がある場合では、後でパスワードが必要となるので、覚えておく必要がある。

Q.セキュアイレース時でもエラーメッセージが表示されました。大丈夫ですか?

A.大丈夫だ。問題無い・・・はず。検証した中に Intel SSD DC S3510 でその振る舞いをがあった。 しばらく放っておいたら回復したので、ATAコマンド応答に時間がかかったものと思われる。 もちろん拡張セキュアイレースでもメッセージは表示されたので、ATAコマンドに対する 応答が早い機種と遅い機種があるものと推測される。

■問題無いエラーメッセージ

camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed

Q.-U user や -U master とオプションがあるようですが何なのですか?

A.この2つがあるみたいなのは確認。それぞれで何が違うか興味無いので未調査。 一般にセキュアイレースは user で実行するようだが、いくつかのデバイスで master で実行できるのもあった。

Q.サニタイズ処理に対応してるドライブが少ないということは推奨されている「サニタイズ」処理はどうすればいいのでしょうか?

A.「サニタイズ言うなー」。

A.経済産業省から出てる媒体のサニタイズに関するガイドラインによれば、「サニタイズ」「サニタイズ」言うてるけど、実際の内容を読むと「セキュアイレースしろ」だった。 な…何を言っているのか、わからねーと思うが、おれも何を言われたのかわからなかった。 頭がどうにかなりそうだった…。読み違いとか詐欺とかそんなチャチ(以下略。

付録

検証したドライブに対して camcontrol identify および camcontrol security を実行した結果についての記録。

参考文献

FreeBSD/camcontrol security (最終更新日時 2022-01-25 16:36:33 更新者 NorikatsuShigemura)