36と37のリビジョン間の差分
2020-05-11 06:07:49時点のリビジョン36
サイズ: 22595
コメント:
2022-01-25 16:36:33時点のリビジョン37
サイズ: 22765
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 16: 行 16:
   * UGREEN [[https://www.ugreen.com/product/859-ja.html|SATA USB 3.0 変換アダプタ 2.5/3.5インチHDD/SSD 電源アダプタ付き 50cm]]    * UGREEN [[https://www.ugreen.com/products/sata-to-usb-3-0-adapter-cable?lang=ja|SATA USB 3.0 変換アダプタ 2.5/3.5インチHDD/SSD 電源アダプタ付き 50cm]] ([[https://www.asmedia.com.tw/product/7B6yQ54sX7YiFhGD/d1Eyq85QN8GhBwRC|ASMedia ASM1153Eチップセット]])

セキュアイレース(Secure Erase)

目的

  • 手持ちのSSD/HDDでセキュアイレース(Secure Erase)してみた。
  • セキュアイレースによる効果は以下の通り。
    • HDD/SSDの「サニタイズ」で指定されてる「消去」(「除去」)方法の適用。
    • 実装にもよるが、全領域を未使用状態にリセットすることで、ウェアレベリング処理への負担軽減(≒速度回復)を図る。
  • クリアされることの確認(ダンプしてオールゼロになること)および実施に当たっての注意点(実行上の注意)を探る。
  • サニタイズ(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接続の場合、ada に直接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; date
camcontrol security da0 -U user -s secure99 -h secure99 -y; date

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 の時、しなくても良い機種もある)

セキュアイレースの実行のロジック

コマンド実行

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」であるためセキュアイレースの実行に失敗する(というメッセージが出る)。
  • 「security is enabled」にするために確認および事前手順を実施する必要がある。

そもそも論として、以下のコマンドを実行して(ステータス表示)セキュアイレースできるか確認する。

camcontrol security da0

たとえば SanDisk ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。

# camcontrol security da0
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」の時、セキュアイレースできるので、本ケースの場合、以下のコマンドで「enabled yes」に変更する。

なお「security config frozen yes」の時はコマンドによる無効化の方法は存在しないので、デバイスの電源をいったん切るしかない。 一応デバイスの電源が入る時は「security config frozen no」になってるはずだが、 BIOS(UEFI)やOS等により「security config frozen yes」にしてしまうモノがあるので注意。 想像してみれば分かると思うが、OSの起動ディスクを簡単にセキュアイレースされてしまうと問題なのが分かると思う。 その場合、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'

この結果、ステータス表示結果が以下のように変わる。

# camcontrol security da0
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

「-s」「-e」「-y」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。

なお「Erase Complete」が表示されず「camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed」 が表示される場合、それなりに処理に時間がかかっているので、「erase time 2 min」 の表示を参考に、とりあえず2分程度待ってみる。

なおセキュアイレース中に何度も「camcontrol security da0」を実行すると、処理が中断することがある。 実行に成功して「drive locked yes」と表示された場合は、途中で中断しているので対処が必要(詳細は後述)。

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

本例のデバイスは「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コマンド発行後の応答に時間がかかったためであるが、 以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、「enhanced erase time 18 min」 により指定された時間(この例では18分)待って、「camcontrol security da0」 を実行して終了を確認すること。

「drive locked yes」と表示される場合は中断したと見てよいし、「drive locked no」 なら完了したと判断して問題無い。

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

途中で止まってるケース・止めたケース

セキュアイレース中にドライブの電源を落した、必要以上に時間(10倍とか)がかかってる、 camcontrol security da0 を何度も叩いてて中断した可能性がある、という場合、 セキュアイレースが中断している可能性がある。

特に「camcontrol security da0」を実行して応答が返る、かつ「drive locked yes」の時はセキュアイレースが中断している。

# camcontrol security da0
pass0: <WDC WD10EFRX-68PJCN0 01.01A01> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

Security Option           Value
supported                 yes
enabled                   yes
drive locked              yes
security config frozen    no
count expired             no
security level            high
enhanced erase supported  yes
erase time                152 min
enhanced erase time       152 min
master password rev       fffd

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

camcontrol security da0 -k パスワード

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

camcontrol security da0 -d パスワード

もちろん「enabled no」にせずに再度セキュアイレースを実行するのも問題無い。 いきなり「-d」オプションを指定して「drive unlock」することも可能だが、 「-k」オプションと「-d」オプションを同時に指定して、解除することはできない。

よくある質問とその答え

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

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.参考文献の「4.20.2 Passwords」によれば、

  • パスワードは「User」と「Master」の二種類ある。
  • 「User」パスワードはユーザーデータ(ストレージ内データ)へのアクセスをロックするするためのパスワードとなります。
  • 「Master」パスワードは「User」パスワードを紛失した場合や管理者がアクセスを要求した際に、アンロックするためのパスワードになります。
  • セキュアイレースは「User」でも「Master」でもどちらのパスワードでもかまわない、とある。

よって指定しないといけないが、どちらを選んでもいい話ではあるが、 敢えて -U user を指定し、もしもの時は「Master」パスワードによるリカバリ(本動作は未確認)を期待すべきであると考える。

Q.サニタイズ処理に対応してるドライブが少ないということは推奨されている「サニタイズ」処理はどうすればいいのでしょうか?

A.「サニタイズ言うなー」。

A.経済産業省から出てる媒体のサニタイズに関するガイドラインによれば、「サニタイズ」「サニタイズ」言うてるけど、実際の内容を読むと「セキュアイレースしろ」だった。 な…何を言っているのか、わからねーと思うが、おれも何を言われたのかわからなかった。 頭がどうにかなりそうだった…。読み違いとか(以下略。

Q.GROOVYとUGREENとどっちがいいですか?

A.気持ちGROOVYかな。でもUGREENも捨てがたいです。

GROOVYのを使用してみた感としては、以下の点が気に入ってます。

  • セキュアイレース中にLEDが点滅してる気がする(確証ありません)。
  • スイッチのオンオフによる安全なホットスワップ(コールドスワップだろ?というツッコミは…)が可能。

UGREENはなんと言ってもドライブの素性をレポートしてくれること。残念なのはスイッチが無いこと、かな。

両者とも変換器としては癖は無く、その点では使い勝手が良かったです。

なお性能といった観点からは評価していません:-)。

付録

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

参考文献

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