Skip to content

Commit

Permalink
docs: be more specific about the limitation of AE-2
Browse files Browse the repository at this point in the history
This gives more specific limitations about AE-2, rather than just depending on
external links.

This is to allow people to make more informed decisions on whether to use it or
not. I am maybe torn on whether to refer to AE-2's "flaws" or "limitations",
but opting to use the word "flaws" since it's stronger and from the point of
view of people's expectations of encryption, more accurate.

This is done in repsonse to the request/discussion at
#93
  • Loading branch information
michalc committed Jan 5, 2024
1 parent 00cf8b5 commit c22c6c3
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions docs/advanced-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,20 @@ password = secrets.token_urlsafe(32)
encrypted_zipped_chunks = stream_zip(member_files(), password=password)
```

Notes:

1. This encrypts the data with AES-256, adhering to the [WinZip AE-2 specification](https://www.winzip.com/en/support/aes-encryption/).

2. This is seen as more secure than ZipCrypto, the original mechanism of password protecting ZIP files, but fewer clients can open such ZIP files.

3. While a step forward from ZipCrypto, it has flaws that you should be aware of before using it. See ["Attacking and Repairing the WinZip Encryption Scheme" by Tadayoshi Kohno](https://homes.cs.washington.edu/~yoshi/papers/WinZip/winzip.pdf) and [fgrieu's answer to a question about WinZip's AE-1 and AE-2 on Crytography Stack Exchange](https://crypto.stackexchange.com/a/109269/113464).
You should make sure to use a long and random password, for example one generated by the [Python secrets module](https://docs.python.org/3/library/secrets.html).

This encrypts the data with AES-256, adhering to the [WinZip AE-2 specification](https://www.winzip.com/en/support/aes-encryption/).

> ### Warnings
>
> AE-2 is seen as more secure than ZipCrypto, the original mechanism of password protecting ZIP files, but fewer clients support AE-2 than ZipCrypto.
>
> Also, AE-2 has flaws. These include:
>
> - Not encrypting metadata, for example member file names, modification times, permissions, and sizes.
>
> - Not including sufficient mechanisms to alert recipients if data or metadata has been intercepted and changed. This can itself lead to leakage of information about the original data.
>
> - A higher risk of data leakage when there's a higher number of member files in the ZIP when they're encrypted with the same password, as stream-zip does.
>
> See ["Attacking and Repairing the WinZip Encryption Scheme" by Tadayoshi Kohno](https://homes.cs.washington.edu/~yoshi/papers/WinZip/winzip.pdf) and [fgrieu's answer to a question about WinZip's AE-1 and AE-2 on Crytography Stack Exchange](https://crypto.stackexchange.com/a/109269/113464) for more information.

0 comments on commit c22c6c3

Please sign in to comment.