パスワード付きZIPをブラウザだけで開く方法
ZipCrypto(PKWARE標準)/AES-128/192/256(WinZip 9.0以降)両対応。
なぜブラウザだけで開けるのか
現代のブラウザはWeb Crypto API(W3C仕様)でAES復号を、DataViewでバイナリ読みを実装しています。PKWAREのZipCryptoは32ビット鍵の独自方式で、WinZip 9.0(2003年)から導入されたAES-128/192/256は標準アルゴリズムです。両方ともJavaScriptで実装可能で、本ツールは端末内で動作します。
手順(5ステップ)
- ZIP解凍ツールにパスワード付きZIPを読み込む。
- パスワード欄に取引先から送られたパスワードを入力。
- 『開く』ボタンを押すと中身一覧が表示される。
- 必要なファイルにチェック。
- 『取り出す』で端末にダウンロード。
ZipCryptoの仕組みと脆弱性
PKWAREのZipCryptoは32ビットの状態量3個(合計96ビット)で構成された独自ストリーム暗号です。1994年にEli Biham・Paul Kocherにより既知平文攻撃が発表されており、平文の一部が既知なら数分〜数時間で復号可能と判明しています。
機密性が必要な場面では使ってはいけませんが、既存ZIPを開く用途では本ツールはZipCrypto復号に対応しています(パスワードを知っていれば瞬時に開けます)。
AES方式の見分け方
AES暗号化されたZIPは「extra field」のHeader ID 0x9901に暗号化情報が記録されます。鍵長は1=128bit/2=192bit/3=256bitで識別。本ツールは DataView.getUint16 でこのIDを読み、AES方式を自動判定します。
AES方式はPBKDF2でパスワードを鍵に変換(1000ラウンド)してから暗号化するため、ZipCryptoより遥かに安全です。WinZip 9.0(2003-12)が初実装、現在は7-Zip・WinRAR・macOSターミナルなど主要ツールがサポート。
PPAP廃止後の代替手段
2020年11月17日にデジタル庁(当時内閣官房)がPPAP廃止を宣言。理由はZipCrypto脆弱性/別メールでPW送信の儀式化/添付メール経路のセキュリティリスクの3点です。代替手段は以下:
- クラウドストレージ共有:Box・Google Drive・Microsoft OneDriveの「リンク+有効期限+パスワード」。
- S/MIME暗号化メール:証明書交換が必要だが本来の暗号メール。
- 専用ファイル転送サービス:GigaFile便・firestorage(パスワード必須+有効期限)。
- 業務SaaSの直接共有:Salesforce・kintone等の権限ベース共有。
よくある質問
Q. パスワードを忘れたZIPは開けますか?
A. 本ツールでは総当たり攻撃や辞書攻撃は実装していません。パスワードを知らないZIPは開けません。送信者にパスワードを再確認してください。
Q. パスワードはどこに送信されますか?
A. どこにも送信されません。パスワードはあなたのブラウザのJavaScript上で復号鍵に変換され、復号後はメモリから消えます。
Q. AES-256のZIPは時間がかかりますか?
A. PBKDF2の1000ラウンドにより少し時間がかかります(数MBで0.5〜2秒程度)。これは仕様によるもので、総当たり攻撃を遅らせる役割です。