FBIがAppleに求めた暗号化解除の捜査協力の中身とは?

今、米国内を騒がせている犯罪者に使用されたiPhoneの暗号化の解除問題ですが、ようやくFBIがAppleに求めた操作協力の裁判所命令の内容が明らかになってきました。FBIはAppleに対して暗号化解除そのものを求めたわけではなく、電子的にハッキング可能な特別なiOSの提供するように求めているようです。具体的には二つあります。

1)ロック解除の失敗後の再試行までの待ち時間の解除
2)ロック解除の失敗後のデータ自動消去の無効化

iPhoneではロック解除に失敗すると、再試行のための待ち時間が長くなり、さらに自動消去が有効あれば、10回解除に失敗するとデータを消去する機能があります。この二つを解除したiOSがあればFBI自身で電子的にロック解除の試行を繰り返すことができるので、暗号化の解除も簡単にできるということでしょう。Appleはその特別なiOSが今後のセキュリティの脅威になるとして作成を拒否しています。

このことからもデータ暗号化の有効性というのは、暗号鍵へのアクセス方法がどのように提供されているかというのが重要なポイントであることが分かります。暗号鍵へのアクセス方法が安易になれば、それだけ解析も容易になりますので、暗号化されたデータと暗号鍵を物理的に分離して管理することが、業務システムでは求められます。

暗号鍵の管理は誰の責任なのか?

先週、オープンソースデータベースMySQLの最新バージョン5.7.11の新機能としてInnoDB Tablespace Encryptionが追加されたとお伝えしました。これは透過型のブロック暗号を採用したもので、利用者が暗号化を意識することなく利用できるものです。しかし、マニュアルの注意書きには「セキュリティ基準を満たすには鍵管理システムの利用が必須」と書かれており、そのままで利用するのは問題があることが示されています。

また、今週に入ってAppleがFBIからのiOS9のデータ保護の解除依頼を拒否したというニュースが流れましたが、Appleの公式見解としては「ユーザー本人以外の解読は不可能」としています。AppleはiOS8以降はユーザの暗号鍵を自社で保存していないとしていますので、当然といえば当然なのですが、Appleが当局の犯罪捜査に非協力的であるような印象操作が行なわれているようにも見えます。

MySQLもAppleも立場として共通していることは、暗号鍵の管理はユーザ側の責任でということです。iOSでは暗号鍵は同一端末内に保存されており、暗号の解除はユーザ以外はできないことになっています。これはiPhoneのパスコードを忘れると初期化するしかないということからもかなり強力です。

しかし、データベースの暗号化となると鍵管理システムは必須です。特にMySQLのような複数のユーザで使用することが前提となっているようなものは、同一サーバ内に暗号鍵を保存することは危険な行為となり、セキュリティ基準を満たすことができなくなります。

システムのデータ暗号化を検討をするときは、暗号化そのものよりも、暗号鍵の管理をどうするかをしっかりと検討していただければと思います。

MySQLの透過暗号化対応版が遂にリリース、ただし注意書き有り。

前回、MySQLの透過型暗号化のリリースが、次のメジャーリリースに持ち越されるのではないかと話題にしましたが、その二日後にバージョン5.7.11の新機能としてリリースされました。よく見てみるとマニュアルの紹介ページが変更になっていて、それが原因でリリース時期が変更されたのではないかと勘違いしたようです。大変失礼いたしました。

さて、変更前はTDE(Transparent Data Encryption)という章だったのですが、今回はInnoDB Tablespace Encryptionに変わっていました。つまり、MySQLのInnoDBストレージエンジンに特化した機能であるので、そのように書き直したようです。しかし、そこには大きく目立つように注意書きが添えられています。それは

「これは法規制のコンプライアンスソリューションとして意図されていない。」
そして
「セキュリティ基準を満たすには鍵管理システムの利用が必須」

と明記されています。読者の方はお分かりと思いますが、これは非常に重要なメッセージです。

MySQLほど広く普及しているデータベースが透過型暗号に正式に対応したとなれば、セキュリティ技術に詳しく無い人も多く利用することになるでしょう。その中で暗号鍵の管理の重要性について理解していない人が安易な暗号化を採用しないように釘を差したとも言えます。

マニュアルを見ると鍵管理はプラグイン化されているようなので、今後、商用版のリリースの中で本格的なMySQLの暗号化の鍵管理システムが提供されていくのではないかと思います。それでも暗号化されるのはInnoDBだけですので、まだまだ機能的には不十分です。何が不十分なのかは、次回以降で検証していきたいと思います。

オープンソースデータベースの暗号化対応が本格化

クラウド上でのシステムというのは多くのオープンソースソフトウエアが利用されています。その中でもデータベースはさまざまな情報の保存先として利用されています。オープンソースのデータベースとして世界的にもっとも利用されているのがMySQLですが、暗号化機能は単純な関数だけが用意されているだけという非常に貧弱なものでした。

商用のデータベースではオラクルデータベースがTDE(Transparent Data Encryption)という透過型暗号機能を提供しており、ご利用されている方もいるのではないかと思います。このTDEがついにMySQLにも採用されるようです。

実はこの機能MySQL5.7.11でリリース予定と一部で発表され、その時はマニュアルページも存在したのですが、今年に入り削除されました。おそらくマイナーリリースで発表するには、もったいない機能なので、次のメジャーリリースの発表(おそらく今春)以降に持ち越されたのではないかと想像できます。

いずれにせよ、オープンソースデータベースのMySQLがTDEのリリースを発表すれば、大きくクラウド上のデータ暗号化に貢献することは間違いありませんので、非常に楽しみな機能です。もちろん実際の機能を検証をして紹介していきたいと思います。