サイズ: 17101
コメント:
|
サイズ: 18085
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 215: | 行 215: |
なお「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分後には終ってる可能性がある。 |
|
行 217: | 行 229: |
拡張でないセキュアイレースとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアアイレースの実行」にある。 | 拡張でないセキュアイレースとの違いは「'''ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアアイレースの実行'''」にある。 |
行 245: | 行 257: |
これより遙かに長い時間(10倍とか)がかかっている場合は、 セキュアイレース完了後にモードを維持したままのパターンがありうる。 その場合、下記のようにして「drive locked」を解除(yes → no)する。 {{{ # camcontrol security da0 -k パスワード }}} また続いて、「enabled」を解除(yes → no)する。 {{{ # camcontrol security da0 -d パスワード }}} |
|
行 262: | 行 259: |
== 途中で止まってるケース・止めたケース == セキュアイレイス中にドライブの電源を落した、必要以上に時間(10倍とか)がかかってる、 という場合、セキュアイレイスが中断している可能性がある。 その場合、下記のようにして「drive locked」を解除(yes → no)する。 {{{ # camcontrol security da0 -k パスワード }}} また続いて、「enabled」を解除(yes → no)する。 {{{ # camcontrol security da0 -d パスワード }}} これを実行して、セキュアイレイスを強制中断できるかは不明だが、 ドライブの電源を落したあとでは、{{{camcontrol security da0}}} コマンドを受け付けるため、上記解除方法が実行できるようになる。 |
|
行 278: | 行 295: |
処理に失敗した場合や手動で解除する必要がある機器では、後でパスワードが必要となるので、覚えておく必要がある。 セキュアイレース中にデバイスの電源を落すなどの検証をしてみたが、回復が必要なほどの状況が発生しなくて、 具体的にどうかは不明。 |
処理に失敗した場合や手動で解除する必要がある場合では、後でパスワードが必要となるので、覚えておく必要がある。 |
行 307: | 行 321: |
* [[http://www.t13.org/documents/uploadeddocuments/docs2008/d1699r6a-ata8-acs.pdf|AT Attachment 8 - ATA/ATAPI Command Set]](ドラフト Rev.6a) |
セキュアイレース(Secure Erase)
目的
- 手持ちのSSD/HDDでセキュアイレース(Secure Erase)してみた。
- クリアされることの確認(ダンプしてオールゼロになること)および実施に当たっての注意点(実行上の注意)を探る。
- サニタイズ(Sanitize)は今回の検証範囲外とする(検証した全ての機種で実行不可能であることを確認)。
検証環境
FreeBSD 11.2-R
- 以下の機器を使用して動作確認した。
GROOVY UD-3000SA USB3・SATA変換器
- 本検証環境ではUSB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
- もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
- デバイス接続時のデバイス名(da1 や ada0 などのケース)に注意して da0 を読み替えること。
動作確認
SanDisk Extreme PRO SSD 240GB(SDSSDXPS-240G)
Intel SSD DC S3510 240GB(SSDSC2BB240G601)
Seagate 600 Pro SSD 400GB(ST400FP0021)
- HP SSD 60GB(MK0060EAVDR)※ただしセキュアイレース未対応なのを確認
Western Digital Red 1.0GB(WDC WD10EFRX)
デバイス接続時のカーネルメッセージ(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」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。
なお「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 で実行できるのもあった。
付録
検証したデバイスに対して camcontrol identify および camcontrol security を実行した結果についての記録。
参考文献
AT Attachment 8 - ATA/ATAPI Command Set(ドラフト Rev.6a)