Уважаемые коллеги, подскажите пожалуйста, существует ли нечто готовое под линукс, умеющее сжимать и шифровать достаточно большие объёмы информации (~30 Гб) с помощью цифрового конветра, но при этом имеющие возможность быстрого извлечения из шифрованного архива 1-2 файлов? Т.е. без расшифровки всех 30 Гб.
Цифровой конверт это шифрование открытым ключом сеансового ключа, с помощью которого шифруются сами данные. Чтобы расшифровать данные, сначала с помощью закрытого ключа расшифровывается сеансовый ключ, а потом сеансовым ключом расшифровываются данные. Нужна такая схема, потому что используя ассиметричное шифрование, нельзя шифровать большие объёмы данных, а симметричное шифрование подразумевает либо ввод пароля вручную (что тяжело сделать с кронтабом), либо наличие одного и того-же файла-ключа и для зашифрования, и для расшифрования, что плохо с точки зрения безопасности - файл-ключ должен лежать в открытом доступе на сервере.
Почитал man'ы к p7zip и dar - не умеют они цифровой конверт, если конечно я ничего не упустил.
Можно losetup с шифрованием, а там уже tar архивы держать, из которых легко достаются 1-2 файла
Почитал про losetup. И у меня возникли сомнения в возможности достать из такого виртуального блочного устройства несколько файлов, не расшифровывая его все. Или существуют варианты расшифровки "на лету"?
Можно losetup с шифрованием, а там уже tar архивы держать, из которых легко достаются 1-2 файла
Почитал про losetup. И у меня возникли сомнения в возможности достать из такого виртуального блочного устройства несколько файлов, не расшифровывая его все. Или существуют варианты расшифровки "на лету"?
У меня сложилось твёрдое мнение на основании собственного опыта, что в случае использования losetup расшифровывание происходит "налету" причем только тех данных, к которым вы пытаетесь получить доступ. Соответственно, то, что вам нужно. Останется только либо файловую систему с сжатием выбрать, либо на обычной хранить сжатый архив, техника сжатия которого поддерживает разархивирование определенного файла без необходимости разжимать и разархивировывать в ОЗУ весь сжатый архив (если я правильно понял задачу). Можете подробнее рассказать о вашей системе? Мне эта тема интересна
А обязательно нужен архив? Если критично быстрое извлечение отдельных файлов, может и хранить их по отдельности? Тогда всё, что Вам нужно, - это gpg.
Да в том то и дело, что сейчас есть собственный скрипт, который шифрует каждый отдельный файл, по указанной технологии. Меня как раз интересует, существуют ли более стандартные решения, чем самописный скрипт. Ну или хотя бы более автоматизированные.
Если делать один большой архив, а потом его шифровать, то для того, чтобы достать 1 файл, нужно будет расшифровать весь архив, а этого очень не хочется, потому что потери времени огромные.
Спасибо за ответы, буду разбираться с losetup+шифрование.
У меня сложилось твёрдое мнение на основании собственного опыта, что в случае использования losetup расшифровывание происходит "налету" причем только тех данных, к которым вы пытаетесь получить доступ. Соответственно, то, что вам нужно. Останется только либо файловую систему с сжатием выбрать, либо на обычной хранить сжатый архив, техника сжатия которого поддерживает разархивирование определенного файла без необходимости разжимать и разархивировывать в ОЗУ весь сжатый архив (если я правильно понял задачу). Можете подробнее рассказать о вашей системе? Мне эта тема интересна
Почитал про losetup с шифрованием. Действительно всё он умеет. Только я свою задачу не до конца сформулировал, поэтому такой вариант мне не подходит. Изначально мне нужен такой вот цифровой конверт для бэкапов. Чтобы надёжно, без ручного ввода пароля (потому что запускается из кронтаба), без хранения ключа для расшифровки на сервере, который архивирует и шифрует и с быстрым извлеченим 1 файла из большого архива. Вот такая у меня система . Сейчас этим занимается рукописный скрипт. Решил поискать ещё варианты для решений своей задачи . Пока ничего лучшего не нашёл.
Уважаемые коллеги, подскажите пожалуйста, существует ли нечто готовое под линукс, умеющее сжимать и шифровать достаточно большие объёмы информации (~30 Гб) с помощью цифрового конветра, но при этом имеющие возможность быстрого извлечения из шифрованного архива 1-2 файлов? Т.е. без расшифровки всех 30 Гб.
tar'у нужно для этого именно распаковать весь архив.
не нужно. Т.е. файл читается, но не распаковывается, и даже не декомпресируется (компрессия не нужна, ибо должна быть ПЕРЕД шифрованием, а не после. После уже нет смысла)
ИМХО каждая утилита должна свою задачу выполнять. Сжатие, архивирование, и шифрование - три разные задачи. gpg использует системное сжатие ZIP, ZLIB или BZIP2 (см. --compress-algo). Естественно сжатие в tar (или что там у вас) необходимо отключать(архивы несжимаемы).
мне нужен такой вот цифровой конверт для бэкапов. Чтобы надёжно, без ручного ввода пароля (потому что запускается из кронтаба), без хранения ключа для расшифровки на сервере, который архивирует и шифрует и с быстрым извлеченим 1 файла из большого архива.
без ручного ввода пароля, без хранения ключа на сервере. Как это сейчас у вас реализуется?
мне нужен такой вот цифровой конверт для бэкапов. Чтобы надёжно, без ручного ввода пароля (потому что запускается из кронтаба), без хранения ключа для расшифровки на сервере, который архивирует и шифрует и с быстрым извлеченим 1 файла из большого архива.
без ручного ввода пароля, без хранения ключа на сервере. Как это сейчас у вас реализуется?
мне нужен такой вот цифровой конверт для бэкапов. Чтобы надёжно, без ручного ввода пароля (потому что запускается из кронтаба), без хранения ключа для расшифровки на сервере, который архивирует и шифрует и с быстрым извлеченим 1 файла из большого архива.
без ручного ввода пароля, без хранения ключа на сервере. Как это сейчас у вас реализуется?
man gpg. Для шифровки не нужен секретный ключ.
пардон, я думал, что ему нужно расшифровывать бэкап без хранения ключа на сервере. Просто ТС сформулировал так, что я, читая, ввёл себя в заблуждение
ИМХО каждая утилита должна свою задачу выполнять. Сжатие, архивирование, и шифрование - три разные задачи. gpg использует системное сжатие ZIP, ZLIB или BZIP2 (см. --compress-algo). Естественно сжатие в tar (или что там у вас) необходимо отключать(архивы несжимаемы).
ему нужно расшифровывать бэкап без хранения ключа на сервере.
просто по логике, бекап должен создаваться на сервере, и по той-же логике, нужно автоматизировать именно _создание_ бекапа. А уж его разворачивание - это внештатная ситуация, которой лучше-бы и не было. Потому для бекапа нужно именно автоматическое шифрование.
Я сначала из текста понял, что необходимо автоматически кроном из созданных зашифрованных архивов в 30Гб доставать один маленький файл (для каких-то целей) не имея при этом на сервере ключа и не вводя пароль. Вот и запутался.
Да знаю про асимметричное шифрование, перестаньте