16と17のリビジョン間の差分
2018-11-15 18:38:26時点のリビジョン16
サイズ: 14983
コメント:
2018-11-16 15:32:19時点のリビジョン17
サイズ: 17101
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
= セキュアErase = = セキュアイレース(Secure Erase) =
行 5: 行 5:
 * 手持ちのSSD/HDDでセキュアErase(Secure Erase)を実施してみた。  * 手持ちのSSD/HDDでセキュアイレース(Secure Erase)してみた。
行 11: 行 11:
 * [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換器
   * 本検証環境ではUSB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
   * もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
 * 以下の機器を使用して動作確認した。
   * GROOVY
[[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換器
   * UGREEN [[https://www.ugreen.com/product/859-ja.html|SATA USB 3.0 変換アダプタ 2.5/3.5インチHDD/SSD 電源アダプタ付き 50cm]]
* 本検証環境ではUSB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
 * もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
行 20: 行 22:
 * HP SSD 60GB(MK0060EAVDR)※ただしセキュアErase未対応なのを確認  * HP SSD 60GB(MK0060EAVDR)※ただしセキュアイレース未対応なのを確認
行 23: 行 25:
=== デバイス接続時のカーネルメッセージ === === デバイス接続時のカーネルメッセージ(GROOVY) ===
行 40: 行 42:
 * SATA接続の場合、adan に直接SSDの文字列が表示される下記、同一デバイスにおける接続形態によりメッセージが変化)
SATA接続の場合、adan に直接SSDの文字列が表示される下記のように、同一デバイスにおける接続形態によりメッセージが異なる
行 51: 行 54:
= セキュアEraseしよう = === デバイス接続時のカーネルメッセージ(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 は元のメディアの文字列が表示される。

= とにかくセキュアイレースしよう =
行 56: 行 77:
行 59: 行 81:
camcontrol security da0

camcontrol security da0 -U user -k secure99
camcontrol security da0 -U user -d secure99
行 62: 行 89:
 * 拡張セキュアEraseに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。  * 拡張セキュアイレースに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。
 * セキュアイレースが完了したかモニタリング(応答が正常に返ることを確認する)。
 * 完了したらドライブロックを解除(drive locked yes の時、しなくても良い機種もある)
 * 更にセキュリティモードからの脱出(enabled yes の時、しなくても良い機種もある)
行 138: 行 168:
上記状態で再度セキュアEraseを実行すると、以下のように成功する。 上記状態で再度セキュアイレースを実行すると、以下のように成功する。
行 152: 行 182:
この時のパスワードはもちろん同一である(-s オプションの指定が正である)。
行 184: 行 215:
== 拡張セキュアEraseするなら ==
本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアErase(Enhanced Secure Erase)を実行することができる。
拡張でないセキュアEraseとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアEraseの実行」にある。
== 拡張セキュアイレースするなら ==
本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアイレース(Enhanced Secure Erase)を実行することができる。
拡張でないセキュアイレースとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアアイレースの実行」にある。
行 200: 行 231:
セキュアEraseの実行と違い、「Erase Complete」ではなくエラー(failed)になっている。 セキュアアイレースの実行と違い、「Erase Complete」ではなくエラー(failed)になっている。
行 204: 行 235:
この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了を確認すること。 この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。
下記のような表示が続く場合は、内部でセキュアイレース中であると言える。
{{{
# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed
}}}
行 207: 行 243:
一応「enhanced erase time 18 min」とあるので、18分後には終ってる可能性がある。

これより長い(一時間とか)場合は、障害を疑った方がよいことになる。
デバイスのオフ/オンを実行した場合、デバイスがロックされたままとなるので、
パスワードが必要になる。

なお本デバイス(!SanDisk !ExtremePRO SSD)の場合、拡張セキュアEraseが完了するとデバイスが切断(デタッチ)される。
一応本例では「enhanced erase time 18 min」とあるので、18分後には終ってる可能性がある。

これより遙かに長い時間(10倍とか)がかかっている場合は、
セキュアイレース完了後にモードを維持したままのパターンがありうる。

その場合、下記のようにして「drive locked」を解除(yes → no)する。
{{{
# camcontrol security da0 -k パスワード

}}}

また続いて、「enabled」を解除(yes → no)する。
{{{
# camcontrol security da0 -d パスワード

}}}

なお !SanDisk ExtremePRO SSD の場合、拡張セキュアイレースが完了するとデバイスが切断(デタッチ)される。
行 224: 行 271:
 * パスワードを設定して「セキュリティ機能を有効化」→「セキュアErase」後は、内部で、セキュアEraseが完了すると「セキュリティ機能の無効化」が行われます。  * パスワードを設定して「セキュリティ機能を有効化」→「セキュアイレース」後は、内部で、セキュアイレースが完了すると「セキュリティ機能の無効化」が自動で行われることがあります(そうでない機種もある)
行 231: 行 278:
処理に失敗した場合、回復処理の時にパスワードが必要となるので、覚えておく必要がある。

セキュアErase中にデバイスの電源を落すなどの検証をしてみたが、回復が必要なほどの状況が発生しなくて、
処理に失敗した場合や手動で解除する必要がある機器では後でパスワードが必要となるので、覚えておく必要がある。

セキュアイレース中にデバイスの電源を落すなどの検証をしてみたが、回復が必要なほどの状況が発生しなくて、
行 236: 行 283:
== Q.セキュアEraseでもエラーメッセージが表示されました。大丈夫ですか? == == Q.セキュアイレース時でもエラーメッセージが表示されました。大丈夫ですか? ==
行 239: 行 286:
もちろん拡張セキュアEraseでもメッセージは表示されたので、ATAコマンドに対する もちろん拡張セキュアイレースでもメッセージは表示されたので、ATAコマンドに対する
行 249: 行 296:
一般にセキュアEraseは user で実行するようだが、いくつかのデバイスで master で実行できるのもあった。 一般にセキュアイレースは user で実行するようだが、いくつかのデバイスで master で実行できるのもあった。

セキュアイレース(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 の時、しなくても良い機種もある)

セキュアEraseの実行のロジック

コマンド実行

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」であるためセキュアEraseの実行に失敗する(というメッセージが出る)。
  • 「security is enabled」にするために確認および事前手順を実施する必要がある。
  • まずは以下のコマンドを実行して(ステータス表示)セキュアEraseできるか確認する。

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」の時、セキュアEraseできるので、本ケースの場合、以下のコマンドで「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」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。

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

本例のデバイスは「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分後には終ってる可能性がある。

これより遙かに長い時間(10倍とか)がかかっている場合は、 セキュアイレース完了後にモードを維持したままのパターンがありうる。

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

# camcontrol security da0 -k パスワード

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

# camcontrol security da0 -d パスワード

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

よくある質問とその答え

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 で実行できるのもあった。

付録

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

参考文献

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