AES-256の役割
AES-256は、データを暗号化するための標準的な方式です。暗号化を行うと、読める状態のファイルやメッセージ、写真が、ランダムなノイズのようなデータに変わります。正しい秘密鍵があれば、それをもとの読める状態に戻せます。
AESとは、Advanced Encryption Standardの略です。これは公開された規格で、数多くの研究が行われており、スマートフォンやパスワード管理アプリ、金融サービスなどで広く使われています。安全性は、アルゴリズムを隠すことではなく、キーを秘密に保つことによって支えられています。
固有の鍵で施錠されたスーツケースを思い浮かべてください。スーツケースは誰でも見ることができますが、開けられるのは鍵を持つ人だけです。AES-256はその錠前です。暗号化キーが、それを開ける鍵になります。
「256」が意味するもの
256という数字は、鍵の長さをビット単位で表したものです。つまりAES-256には2256通りの鍵があるということです。これは78桁にもなる、途方もなく大きな数字です。
暗号化されたデータを総当たりで開こうとする場合、攻撃者は鍵が当たるまで試し続けることになります。膨大な計算能力があっても、AES-256の鍵を十分な数だけ試すのは現実的に不可能です。
だからといって、暗号化されたファイルがすべて自動的に安全になるわけではありません。パスワードを手に入れたり、ロックを解除したままのスマートフォンを使ったり、暗号化されていないコピーを見つけたりできれば、泥棒は鍵を推測する必要はありません。
実際に攻撃が起こる場所
保護されたデータが流出したとき、暗号化アルゴリズム自体に問題があることはめったにありません。攻撃者は通常、それを迂回してきます。
弱いパスワード。パスワードで暗号化のロックを解除する仕組みの場合、短い、あるいは使い回されたパスワードは推測されるおそれがあります。その場合、攻撃者は正規の方法で侵入したことになります。AES-256が破られたわけではありません。
ロックされていないデバイス。ロックを解除したままのスマートフォンを誰かに使われたり、ファイルを開いている間にマルウェアが動作していたりすると、読み取り可能な状態のデータが直接見られてしまうことがあります。
安全でない取り扱い。不注意なアプリが、鍵やファイルの平文コピーを保存すべきでない場所に保存してしまうことがあります。その弱いコピーが標的になります。
パスワードが重要な理由
パスワードは、いわば暗号化キーへの人間サイズの入り口です。推測しやすかったり、他の情報漏洩で使われたものを使い回していたりすると、攻撃者はAES-256の鍵ではなくパスワードのほうを狙ってきます。
長く、他では使っていないパスフレーズか、パスワード管理アプリが生成したパスワードを使いましょう。デバイスは常に最新の状態に保ち、使わないときはロックしてください。
実践的なポイント:他では使っていないパスフレーズを選び、鍵を保持するデバイスを守りましょう。そうすれば、AES-256は本来の役割をきちんと果たしてくれます。
SealbyにおけるAES-256の使い方
SealbyはAES-256-GCMでファイルを暗号化します。GCMには改ざん検知の仕組みが組み込まれているため、暗号化データへの変更を検出できます。ファイルごとに個別の鍵を使うので、1つの鍵で開けられる範囲が限られます。
鍵はiPhone上で作成され、そのハードウェアによって保護されます。ボールトのロックを解除する前に、PINやパスフレーズはあえて時間のかかる処理を通ります。これにより、パスワードの推測にかかるコストが上がります。強力な暗号化は、鍵とパスワードとデバイスのすべてが守られているときに最も力を発揮します。