手軽屋
ツール一覧

パスワード付き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ステップ)

  1. ZIP解凍ツールにパスワード付きZIPを読み込む。
  2. パスワード欄に取引先から送られたパスワードを入力。
  3. 『開く』ボタンを押すと中身一覧が表示される。
  4. 必要なファイルにチェック。
  5. 『取り出す』で端末にダウンロード。

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点です。代替手段は以下:

よくある質問

Q. パスワードを忘れたZIPは開けますか?

A. 本ツールでは総当たり攻撃や辞書攻撃は実装していません。パスワードを知らないZIPは開けません。送信者にパスワードを再確認してください。

Q. パスワードはどこに送信されますか?

A. どこにも送信されません。パスワードはあなたのブラウザのJavaScript上で復号鍵に変換され、復号後はメモリから消えます。

Q. AES-256のZIPは時間がかかりますか?

A. PBKDF2の1000ラウンドにより少し時間がかかります(数MBで0.5〜2秒程度)。これは仕様によるもので、総当たり攻撃を遅らせる役割です。

関連