1と9のリビジョン間の差分 (その間の編集: 8回)
2018-07-23 17:15:29時点のリビジョン1
サイズ: 5943
コメント:
2018-08-01 22:51:43時点のリビジョン9
サイズ: 12675
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 3: 行 3:

== 想定環境 ==
 * [[https://www.FreeBSD.org/|FreeBSD]] 11.2-R
 * [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換装置
 * ここでは、USB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
 * もちろん直接SATA接続した上でSATAドライブ(/dev/ada0)として見えてもよい。
 * つないだ時のデバイス名に注意して da0 を読み替えてください。
行 14: 行 7:
 * サニタイズ(Sanitize)は今回の検証範囲外とする。

== 想定環境 ==
 * [[https://www.FreeBSD.org/|FreeBSD]] 11.2-R
 * [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換器
 * ここでは、USB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
 * もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
 * デバイス接続時のデバイス名に注意して 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)※ただし未対応なのを確認

=== デバイス接続時のカーネルメッセージ例 ===
{{{
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)
}}}
行 16: 行 51:
{{{camcontrol security da0 -U user -e パスワード}}} コマンドの実行でバッチリだ!(嘘) {{{camcontrol security da0 -U user -e パスワード}}}」を実行する!(嘘)
行 25: 行 60:
実はこれを実行する前に、以下のコマンドを実行してセキュアEraseできるか確認する。 実はこれを実行する前に、以下のコマンドを実行して(ステータス表示)セキュアEraseできるか確認する。
セキュアEraseできる状態になってない場合「Can't secure erase」としてセキュアEraseできない旨、メッセージが表示される。
行 31: 行 67:
たとえば SanDisk Extreme Pro SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。 たとえば !SanDisk !ExtremePro SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。
行 50: 行 86:
上記結果から「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」にしてしまうモノがあるので注意。
行 60: 行 100:
この結果、以下のように変わる。 この結果、以下のように表示が変わる。
行 91: 行 131:
== つまりコマンド実行 ==
-s オプションと -e オプションは同時に指定できるので、セキュアEraseするのに躊躇ないなら、以下のように実行できる。
== つまりコマンド実行するなら ==
-s オプションと -e オプションは同時に指定できるので、セキュアEraseするのに問題がないなら、以下のように実行できる。
行 110: 行 150:
見てのように「yes」「no」を聞いてくるので、確認不要なら「-y」オプションを合わせて付けてやる。 見てのように全てのデータを消して(ERASE ALL DATA)いいのか「yes」「no」を聞いてくるので、確認不要(バッチモード)なら「-y」オプションを加えとよい
行 123: 行 163:
「-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が完了するとデバイスが切断(デタッチ)される。
一般的な振る舞いかどうかは不明だが、そういう風に振る舞うデバイスもある、ということで。
行 128: 行 201:
A.SanDisk曰く「sandisk123」が設定される。他のベンダーは?「不明」。

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

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

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

== 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 で実行できるのもあった。
行 142: 行 231:
   * [[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)として見えてもよい。
  • デバイス接続時のデバイス名に注意して 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)

コマンド実行

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)

実はこれを実行する前に、以下のコマンドを実行して(ステータス表示)セキュアEraseできるか確認する。 セキュアEraseできる状態になってない場合「Can't secure erase」としてセキュア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」にしてしまうモノがあるので注意。

# 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 オプションは同時に指定できるので、セキュアEraseするのに問題がないなら、以下のように実行できる。

# 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」を設定している。

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

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

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

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

参考文献

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