1と13のリビジョン間の差分 (その間の編集: 12回)
2018-07-23 17:15:29時点のリビジョン1
サイズ: 5943
コメント:
2018-08-05 13:45:48時点のリビジョン13
サイズ: 14071
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 4: 行 4:
== 想定環境 == == 目的 ==
 * 手持ちのSSDでセキュアErase(Secure Erase)を実施してみた。
 * クリアされることの確認(ダンプしてオールゼロになること)および実施に当たっての注意点(実行上の注意)を探る。
 * サニタイズ(Sanitize)は今回の検証範囲外とする(検証した全ての機種で実行不可能であることを確認)。

== 検証環境 ==
行 6: 行 11:
 * [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換装置
 * ここでは、USB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
 * もちろん直接SATA接続した上でSATAドライブ(/dev/ada0)として見えてもよい。
 * つないだ時のデバイス名に注意して da0 を読み替えてください。

== 目的 ==
 * 手持ちのSSDでセキュアErase(Secure Erase)を試してみる。
 * クリアされることの確認および実施に当たっての注意点を探る。
 * [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換器
   * 本検証環境ではUSB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
   * もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
 * デバイス接続時のデバイス名(da1 や ada0 などのケース)に注意して da0 を読み替えること。

=== 動作確認 ===
 * [[http://www.sandisk-jp.com/ssd/extreme-pro/|SanDisk Extreme PRO SSD 240GB]](SDSSDXPS-240G)
 * [[https://ark.intel.com/ja/products/series/86201/Intel-SSD-DC-S3510-Series|Intel SSD DC S3510 240GB]](SSDSC2BB240G601)
 * [[https://www.seagate.com/www-content/product-content/ssd-fam/600-pro-ssd/ja/docs/600-pro-ssd-data-sheet-ds1790-3-1310jp.pdf|Seagate 600 Pro SSD 400GB]](ST400FP0021)
 * HP SSD 60GB(MK0060EAVDR)※ただしセキュアErase未対応なのを確認

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

= セキュアEraseの実行 =
行 16: 行 53:
{{{camcontrol security da0 -U user -e パスワード}}} コマンドの実行でバッチリだ!(嘘) {{{camcontrol security da0 -U user -e パスワード}}}」を実行する!(嘘)
行 25: 行 62:
実はこれを実行する前に、以下のコマンドを実行してセキュアEraseできるか確認する。  * 上記コマンドを無条件で実行した場合「security is disabled」であるためセキュアEraseの実行に失敗する(というメッセージが出る)。
 * 「security is enabled」にするために確認および事前手順を実施する必要がある。
 * まずは以下のコマンドを実行して(ステータス表示)セキュアEraseできるか確認する。
行 31: 行 70:
たとえば SanDisk Extreme Pro SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。 たとえば !SanDisk !ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。
行 50: 行 89:
上記結果から「enabled no」であることが確認できる。
実はこのままでは、セキュアEraseでは実施できず、以下のコマンドで「enabled yes」に変更する必要がある。
上記結果から「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接続など)等で対応する。
行 60: 行 105:
この結果、以下のように変わる。 この結果、ステータス表示結果が以下のように変わる。
行 79: 行 124:
上記状態で再度実行すると、以下のように成功する。 上記状態で再度セキュアEraseを実行すると、以下のように成功する。
行 91: 行 136:
== つまりコマンド実行 ==
-s オプションと -e オプションは同時に指定できるので、セキュアEraseするのに躊躇ないなら、以下のように実行できる。
== つまりコマンド実行するなら ==
-s オプションと -e オプションは同時に指定できるので、まとめて指定してしまえる。
行 110: 行 155:
見てのように「yes」「no」を聞いてくるので、確認不要なら「-y」オプションを合わせて付けてやる。 見てのように、全てのデータを消して(ERASE ALL DATA)いいのか「yes」「no」を聞いてくるので、確認不要(バッチモード)なら「-y」オプションを加えとよい
行 123: 行 168:
「-e」「-s」「-y」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。

== 拡張セキュアEraseするなら ==
本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアErase(Enhanced Secure Erase)を実行することができる。
拡張でないセキュアEraseとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュア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の実行と違い、「Erase Complete」ではなくエラー(failed)になっている。
ATAコマンド発行後の応答に時間がかかったためであるが、
以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了を確認すること。
どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

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

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

なお本デバイス(!SanDisk !ExtremePRO SSD)の場合、拡張セキュアEraseが完了するとデバイスが切断(デタッチ)される。
一般的な振る舞いかどうかは不明だが、そういう風に振る舞うデバイスもある、ということで。
行 127: 行 205:
A.結論を言えばてきとー。
A.SanDisk曰く「sandisk123」設定されてる。他のベンダーは?「不明」。

 * 仕様がよくわかってないけど、設定てないので「設定してから」「消す」みたいなオペレーションになるんでないかな
 * 最初から設定されてる装置があるかは不明
 * 勝手に設定するソフトウェアがあるのでこの手のツールを使用するときは注意。
 * {{{camcontrol security}}} はこの手のツールではあるが、パスワードを常に要求するので意識すること。
A.結論を言えばてきとー。どれくらいてきとーかと言うと、

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

A.一般論としては、

 * パスワードを設定して「セキュリティ機能を有効化」→「セキュアErase」後は、内部で、セキュアEraseが完了すると「セキュリティ機能の無効化」が行わます
 * 最初から「セキュリティ機能を有効化」されてるデバイスがあるかは不明。ただし、設定したまま放置されることはありうる
 * あと、勝手に設定するソフトウェアがあるのでこの手のツールを使用するときは注意。
 * {{{camcontrol security}}}」は「この手のツールではあるが、パスワードを常に要求するので意識すること。
行 137: 行 217:
処理に失敗した場合は回復処理が必要なので、その時パスワードが必要。 処理に失敗した場合、回復処理の時にパスワードが必要となるので、覚えておく必要がある。

セキュアErase中にデバイスの電源を落すなどの検証をしてみたが、回復が必要なほどの状況が発生しなくて、
具体的にどうかは不明。

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

■問題無いエラーメッセージ
{{{
camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed
}}}

== Q.-U user や -U master とオプションがあるようですが何なのですか? ==
A.この2つがあるみたいなのは確認。それぞれで何が違うか興味無いので未調査。
一般にセキュアEraseは user で実行するようだが、いくつかのデバイスで master で実行できるのもあった。

= 付録 =
検証したデバイスに対して {{{camcontrol identify}}} および {{{camcontrol security}}} を実行した結果についての記録。
 * [[FreeBSD/camcontrol/Intel SSD DC S3510|Intel SSD DC S3510]]
 * [[FreeBSD/camcontrol/SanDisk Extreme PRO SSD|SanDisk Extreme PRO SSD]]
 * [[FreeBSD/camcontrol/Seagate 600 Pro SSD|Seagate 600 Pro SSD]]
 * [[FreeBSD/camcontrol/HP MK0060EAVDR|HP MK0060EAVDR]]
行 142: 行 247:
   * [[http://chocs.hatenablog.com/entry/2006/10/10/060104|HDDパスワード]]
 * [[http://www.kirala21.com/veg/manual/gppro/cur/erase/secureerase.html|消去方法について- セキュア消去について]]
 * [[https://qiita.com/mzaki/items/446e081ef5e4e58cc196|FreeBSDでNVMeディスクを低レベルフォーマットする]]
 * [[http://ch.nicovideo.jp/lunaorbit/blomaga/ar1498687|セキュアイレース(Secure Erase)に TxBENCH は絶対に使うな【ATA Password】]]
 * [[https://qiita.com/nvsofts/items/f46c8a1b3541894ad382|SSDをSecure Erase機能で安全に消去する]]
 * [[https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase|ATA Secure Erase]]
 * [[http://decomo.info/wiki/freebsd/freebsd_secure_erase_with_camcontrol|FreeBSDのcamcontrolでSecure Eraseする]]

セキュアErase

目的

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

検証環境

  • FreeBSD 11.2-R

  • UD-3000SA USB3・SATA変換器

    • 本検証環境ではUSB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
    • もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
  • デバイス接続時のデバイス名(da1 や ada0 などのケース)に注意して da0 を読み替えること。

動作確認

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

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)

セキュア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

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

# 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 オプションは同時に指定できるので、まとめて指定してしまえる。

# 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するなら

本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアErase(Enhanced Secure Erase)を実行することができる。 拡張でないセキュアEraseとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュア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の実行と違い、「Erase Complete」ではなくエラー(failed)になっている。 ATAコマンド発行後の応答に時間がかかったためであるが、 以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了を確認すること。 どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

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

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

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

よくある質問とその答え

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

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

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

A.一般論としては、

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

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

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

セキュアErase中にデバイスの電源を落すなどの検証をしてみたが、回復が必要なほどの状況が発生しなくて、 具体的にどうかは不明。

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

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

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

camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed

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

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

付録

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

参考文献

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