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

目的

検証環境

動作確認

デバイス接続時のカーネルメッセージ(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>

※SATA接続の場合、ada に直接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>

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

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

camcontrol security da0 | grep -e frozen -e enhanced

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

camcontrol security da0

camcontrol security da0 -U user -k secure99
camcontrol security da0 -U user -d secure99

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

コマンド実行

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)

そもそも論として、以下のコマンドを実行して(ステータス表示)セキュアイレースできるか確認する。

camcontrol security da0

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

# camcontrol security da0
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(UEFI)やOS等により「security config frozen yes」にしてしまうモノがあるので注意。 想像してみれば分かると思うが、OSの起動ディスクを簡単にセキュアイレースされてしまうと問題なのが分かると思う。 その場合、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'

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

# camcontrol security da0
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

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

なお「Erase Complete」が表示されず「camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed」 が表示される場合、それなりに処理に時間がかかっているので、「erase time 2 min」 の表示を参考に、とりあえず2分程度待ってみる。

なおセキュアイレース中に何度も「camcontrol security da0」を実行すると、処理が中断することがある。 実行に成功して「drive locked yes」と表示された場合は、途中で中断しているので対処が必要(詳細は後述)。

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

本例のデバイスは「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コマンド発行後の応答に時間がかかったためであるが、 以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、「enhanced erase time 18 min」 により指定された時間(この例では18分)待って、「camcontrol security da0」 を実行して終了を確認すること。

「drive locked yes」と表示される場合は中断したと見てよいし、「drive locked no」 なら完了したと判断して問題無い。

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

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

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

特に「camcontrol security da0」を実行して応答が返る、かつ「drive locked yes」の時はセキュアイレースが中断している。

# camcontrol security da0
pass0: <WDC WD10EFRX-68PJCN0 01.01A01> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

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

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

camcontrol security da0 -k パスワード

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

camcontrol security da0 -d パスワード

もちろん「enabled no」にせずに再度セキュアイレースを実行するのも問題無い。 いきなり「-d」オプションを指定して「drive unlock」することも可能だが、 「-k」オプションと「-d」オプションを同時に指定して、解除することはできない。

よくある質問とその答え

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

A.結論を言えばてきとー。どれくらいてきとーかと言うと、SanDisk曰く「SanDisk SSD Dashboard」では「sandisk123」を設定している。

A.一般論としては、

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.参考文献の「4.20.2 Passwords」によれば、

よって指定しないといけないが、どちらを選んでもいい話ではあるが、 敢えて -U user を指定し、もしもの時は「Master」パスワードによるリカバリ(本動作は未確認)を期待すべきであると考える。

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

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

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

Q.GROOVYとUGREENとどっちがいいですか?

A.気持ちGROOVYかな。でもUGREENも捨てがたいです。

GROOVYのを使用してみた感としては、以下の点が気に入ってます。

UGREENはなんと言ってもドライブの素性をレポートしてくれること。残念なのはスイッチが無いこと、かな。

両者とも変換器としては癖は無く、その点では使い勝手が良かったです。

なお性能といった観点からは評価していません:-)。

付録

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

参考文献

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