古いZIPファイルを解読し、ANCの「Operation Vula」秘密暗号コードをオープンソース化
- 最近、30年前のPKZIPファイルのパスワードを解読し、南アフリカ共和国のアパルトヘイト体制を打倒するうえで重要な役割を果たしたANCの「Operation Vula」暗号コードを分析した
- Operation Vulaは、1980年代後半にANC指導者たちを南アフリカに潜入させ、地下ネットワークを構築する作戦だった
- この作戦では、8ビットコンピューター、DTMFトーン、音響カプラなどを使い、ワンタイムパッドで暗号化したメッセージをやり取りしていた
暗号化システムのオープンソース化
- Tim Jenkinが暗号化システムの元のソースコードをオープンソース化した
- Timは1991年に南アフリカへ戻る前、すべてのソースコードを暗号化されたZIPファイルに圧縮したが、パスワードを忘れてしまった
- 筆者はTimの依頼を受け、ALLBAS.ZIPとCODMAY93.ZIPファイルを解読することにした
ZIPファイル解読の過程
- 当時のZIP形式で使われていたZipCryptoアルゴリズムに対する既知平文攻撃を活用した
bkcrackというオープンソース実装を使い、ZIPファイルの特定位置にある12バイトの平文を予測した
- Timが提供した別バージョンのOLDCOD.ZIPファイルから、最初のファイル名がCOMKEY.BASであることを確認し、これを基に平文を生成して攻撃を試みた
- 23分後、
bkcrackがALLBAS.ZIPファイルのキーを見つけ出し、同じキーでCODMAY93.ZIPファイルも解読した
プログラムの実行
- 2つのプログラムをDOSBox上でコンパイルして実行した
- RANDOM.BASはワンタイムパッドとして使うランダム数字ディスクを生成し、TECOD.BASは電子メール経由でメッセージを暗号化・復号するプログラムである
- プログラムのパスワードはTIMBOBIMBOに設定されている
GN⁺のまとめ
- この記事は、ANCの秘密暗号コードを解読してオープンソース化する過程を扱っている
- 歴史的に重要な暗号化システムを復元し、分析することに興味を持てる内容である
- 類似機能を持つプロジェクトとしては、PGP(Pretty Good Privacy)とGnuPG(GNU Privacy Guard)がある
1件のコメント
Hacker Newsのコメント
Vulaシステムは使い勝手の悪さが原因で失敗した
セキュアなワンタイムパッド向けの数字生成器を見てみた
南アフリカでは多くのことが起きていた
TIMBOBIMBO ハハハハ
Operation Vulaについての言及
[flagged]
「古い」ZIPを解読するなら、アーカイブ内の数文字が分かっている場合の最適なツールはbkcrack