個人情報を扱うのも安心:SDカードの暗号化

SDカード(ストレージ)のデータを暗号化するソフトウェアは数えきれないほど市場に存在します。暗号化によってSDカードから読めても意味のないデータしか読めないというものです。しかしSDカードには上記暗号化と違って、SDカードからデータを全く読めもできなくする機能があります。これを使って情報漏えい対策をするという提案です。読めもできなくするというのは簡単には壊すことですが、この方法は当然戻すこともできます。最近少しは収まりましたが、マイナンバー をどうやって保持するのかというのもPCを金庫に入れて保持するのもいいですが、SDカードに保持しておくというのも、銀行の貸金庫にも入れやすいのでオススメです。

SDカードを媒体として、移動などに使う場合にはどうしてもセキュリティを考える必要があります。特に企業などでは必須と言われます。PCのソフトウェアで作った文書や、まだ公開されていない製品の写真、映像など、これらをネットワークで転送するには時間がかかったり(またはネットワークがない地域、またはネットワークがあってもその国に覗かれている地域)します。このような場合にはどうしても記憶媒体が必須となります。ワールドワイドの会社であればあるほど、この問題は悩ましいと思います。

記録メディアに関して、なぜかみなさんデータを暗号化だけにこだわっていませんか?データの暗号化はライセンスの問題や、セキュリティーホールが新たに見つかった等いろいろ問題があとからも発生しています(opensslなど)。このような問題でいろいろ大変になることもあります。しかしデータ暗号化は物理機器の種別に依存しない方法であるため、ネットワークでもHDDでも、光ディスクでも、フラッシュメディアでも使えるから幅広くソフトウェアを使いまわして暗号化に使っています。

それぞれの物理ストレージにも独自の情報漏えいが物理的に備わっています。HDDならばTPMを使ったものなどがあります。SDカードにも実は備わっています。標準機能で備わっているのですがほとんどのSDホスト機器は全く使っていないのが現状です。 これを使って情報漏えい対策を行うという提案です。

背景
SDカードの情報漏えい対策としてはSDカードのファイルの暗号化や、使用禁止という対策があります。使用禁止という対策はここでは論外として、SDカードの暗号化が最も使われていると思います。また、SDカードとSDカードリーダと一体化して、USBメモリとして扱い暗号化するという方法です。USBメモリをPC等のソフトウェアを使って暗号化してという方式が多いと思いますが(ほとんどのUSBメモリで使えるから)、ハードウェアの暗号化エンジンを持っているものも高価ですがあります。ただこれはよっぽど特殊と思います。Windowsを使っている限り使えるのは、WindowsのProfessional Edition以上であれば、Bit Locker To Go のソフトウェアが使えます。 また、以前TOSHIBA USBメモリでは、 暗号化の規格でIEEE1667 をサポートしていたため、これも Windowsの標準 OSで使えました。Windowsでは、IEEE1667をサポートいますがその対応USBメモリがほぼ存在しない状態です。

SD機器の暗号化

PCのようなソフトウェアをインストールできるようなものは暗号化のソフトウェアなどをインストールしてSDカードを暗号化するというのは簡単なことです。ただその操作が面倒だったりまたそのSDカードはほかのSD機器では使えないなどいろいろと制限されることも使いにくいと考えられます。 SD機器はインストール等というのは不可能ですので暗号化の対策を後からいれるなんてことは不可能(あらかじめリッチコンテンツを除く暗号化対策している機器も皆無)です。SD機器でもどうしもて暗号化したいという特別狭い市場があります。SD機器でファイルを書いてそれをPCに持って行ってそこで暗号化、またはネットワークで送信という方法もありますが、これはどちらにしても、ファイルサイズに影響して時間がかかります。通常の暗号化は、書き込むデータは暗号化しながら書き込む、また逆に読み込んで平文化するという方式なので書き込むデータ(または読み込むデータ)が大きければ大きいほど時間がかかります。また、PC等のような強力なCPUが行えば問題ないですが、SD機器のCPUなんてデバイスの制御程度であって演算能力は非力のため、暗号化、平文化の処理をするとまともに動かないところだと思います。

SDカードの新しい方式のプロテクト
今回、SDカードを読めなくする(当然書けもしない)方式を取ることで、ファイルサイズに影響受けずに読めなくすることで情報漏えい対策とする方式をとる方法を提案します。先に説明した暗号化はしませんのでSDカードの容量が16MByteでも、2TBytesでも読めなくするための時間は同じです。読めなくするための時間(または戻すための時間)は人間の操作含めて20秒程度です(今のところ)。ビデオ等の大容量のファイルの暗号化を考えるとほんのちょっとした手間でSDカードを読めなくしていしまいます。映画にあったこの写真のcrypticsのように、中にどんなに手紙が多く入っていても、少なくても、このパスワードを設定する時間は変わりません。cryptics

ではどのくらい、読めないかというと、データ復旧会社やデータ復旧ソフトウェアを使っても復旧はできません(キーを知っていればできる可能性があります)。なんといっても、SDカードが全く読めないのですから。これらの会社や、ソフトウェアは読める部分からデータを合成することでデータ復旧しているので、全く読めないと全く復旧ができないことになります。ハードディスクのようにSDカードを分解して読めるのではないかということも考えられますが、まともなSDカードは分解してフラッシュメモリ部分を取り出しても内部で暗号化されていて、SDカードコントローラを変えるとデータとしては読めなくなっています。よってこの方式は少なくともまともな会社の製造のSDカードを推奨します。

後はパスワードが16文字で戻すことができますが(文字種別がなく16バイトフルに設定できます)総当たりで試したとして計算するとSDカードの論理的最大応答時間から計算して1000年以上かかります。先に、NANDフラッシュメモリが壊れてしまうでしょう。大体の暗号化ソフトゥエアはAES暗号化を使っていますが、暗号化されたものをコピーして世界中のCPUを使って分散して10年計算して平文化することはやればできますが、この方式ではコピーができないのでそのSDカードでないと戻せないところから単純には難しくなります。

こんな機能が元々SDカードには入っているのですが、悲しいことにほとんどのSD機器では使っていないという状況です。なぜ使わないんかというと、ユーザが混乱しないためです。暗号化なんていらない人には全くじゃまなだけで意味がないからです。