サイズ: 14071
コメント:
|
サイズ: 14959
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 5: | 行 5: |
* 手持ちのSSDでセキュアErase(Secure Erase)を実施してみた。 | * 手持ちのSSD/HDDでセキュアErase(Secure Erase)を実施してみた。 |
行 21: | 行 21: |
* [[https://www.wd.com/ja-jp/products/internal-storage/wd-red.html|Western Digital Red 1.0GB]](WDC WD10EFRX) | |
行 50: | 行 51: |
= セキュアEraseの実行 = | = セキュアEraseしよう = しゃらくせぃ!さっさとコピペで実行できるコマンド教えやがれ、という自分の中の心のメッセージ。 {{{ 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 }}} * frozen かどうか(yes/no)確認する。「yes」ならこれ以上の対応はできない。 * 拡張セキュアEraseに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。 = セキュアEraseの実行のロジック = |
行 70: | 行 84: |
たとえば !SanDisk !ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。 | たとえば !SanDisk ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。 |
行 243: | 行 257: |
* {[FreeBSD/camcontrol/WD Red HDD|WD Red HDD]] |
セキュアErase
目次
目的
- 手持ちのSSD/HDDでセキュア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 を読み替えること。
動作確認
SanDisk Extreme PRO SSD 240GB(SDSSDXPS-240G)
Intel SSD DC S3510 240GB(SSDSC2BB240G601)
Seagate 600 Pro SSD 400GB(ST400FP0021)
- HP SSD 60GB(MK0060EAVDR)※ただしセキュアErase未対応なのを確認
Western Digital Red 1.0GB(WDC WD10EFRX)
デバイス接続時のカーネルメッセージ例
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 | 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
- frozen かどうか(yes/no)確認する。「yes」ならこれ以上の対応はできない。
- 拡張セキュアEraseに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。
セキュア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/WD Red HDD|WD Red HDD]]