Какой шифр шифрования используется при использовании zip -e?
Я ищу кроссплатформенный способ шифрования учетных данных, которые мне нужно отправить клиенту.
Я знаю, что в зашифрованных zip-архивах утечки метаданных и их можно подделать, но насколько надежен шифр шифрования?
zip -ejr "/path/to/folder.zip" "/path/to/folder"
Ответы
В формате zip можно использовать старый, слабый метод шифрования и шифрование AES (128, 192 или 256-битные ключи).
Подробности можно прочитать в Спецификации шифрования AES .
Почтовый клиент командной строки почти наверняка использует традиционное zip-шифрование, которое вы не хотите использовать.
Мне нравится это решение при нацеливании на нетехнических пользователей отправки файлов с шифрованием AES, поскольку:
- Обычно пользователи использовали zip-файлы в прошлом и знакомы с ними. Вы не «настаиваете на использовании странного формата».
- Вы можете принудительно использовать безопасное шифрование (AES) на своей стороне (это может быть проблемой, если им также потребуется отправить вам обратно зашифрованный zip).
- Если они используют клиент без поддержки шифрования AES, в сообщении об ошибке будет четко указано: «Вам нужна более новая версия, чтобы открывать zip-файлы формата XY». Это указывает на проблему с программным обеспечением пользователя, а не отправителя.
В качестве способа создания zip-файла с использованием шифрования AES вы можете использовать 7-zip ( вам нужна как минимум версия 19.00 ) из командной строки, которая будет выглядеть так:
7z a -p -mem = aes256 -tzip "/path/to/folder.zip" "/ путь / к / папке"
Для этого вы можете создать простой сценарий оболочки:
#!/bin/sh
7z a -p -mem=aes256 -tzip "$@"
Ограничения:
Очевидно, вы будете пропускать метаданные, такие как имена файлов, размеры файлов (до и после сжатия), временные метки ... Если ваша единственная забота - поделиться некоторыми учетными данными, я бы рекомендовал не сжимать содержимое (метод хранения), чтобы избежать BEAST -подобные утечки информации, но эти проблемы не кажутся слишком серьезными. Тем не менее, вам все равно нужно как-то безопасно поделиться с клиентом паролем почтового индекса. И я не удивлюсь, если они затем сохранят извлеченный файл с учетными данными в виде открытого текста на своем рабочем столе.
Вы написали: «Я ищу кросс-платформенный способ шифрования учетных данных, которые мне нужно отправить клиенту».
Вы не определяете, что вы подразумеваете под «кроссплатформенностью». Лучшее решение * не использовать zip .
Если «кроссплатформенность» означает «Windows и Mac», то лучшим решением будет использовать шифрование Microsoft Word или Adobe Acrobat. Обе системы используют AES в своем последнем воплощении.
Если «кроссплатформенность» означает «Windows, Mac и Linux», используйте Acrobat.
В любом случае вам нужно будет обменять ключ шифрования с высокой энтропией для документа с вашим клиентом. То есть вам нужно будет обменять пароль, чтобы обменять свой ключ шифрования. Конечно, если вы можете это сделать, вы могли бы просто отправить сами учетные данные, используя этот внеполосный механизм, не так ли?
Итак, что вы действительно хотите сделать, так это использовать криптографию с открытым ключом. То есть вам, вероятно, лучше всего, если ваш клиент развернет сертификат S / MIME и отправит вашему клиенту зашифрованную почту с помощью Apple Mail, Microsoft Outlook или Thunderbird или любого другого кроссплатформенного подхода к использованию S / MIME. Подробности можно найти в NIST SP800-177, «Надежная электронная почта».
Другие люди предложат вам использовать PGP. Я не буду, потому что это слишком сложно использовать. Но если вы хотите использовать PGP, попробуйте!
Если все это звучит как слишком много работы, вы можете использовать простые технологии и поместить учетные данные в конверт, поставить свою подпись на обратной стороне конверта, вложить это во второй конверт и отправить его клиенту по почте. .