Open source утиліт для шифрування файлів на будь-який випадок життя

12 травня 2023 2 хвилин Автор: Lady Liberty

Що таке шифрування файлів і навіщо це потрібно?

Мало хто знає але це дуже потрібні знання якими має володіти кожен. Давайте почнимо з того, що взагалі таке шифрування. Шифрування — оборотне перетворення інформації з метою приховування від неавторизованих осіб з наданням авторизованим користувачам доступу до неї. Головним чином шифрування служить завданням дотримання конфіденційності інформації, що передається. Важливою особливістю будь-якого алгоритму шифрування є використання ключа, який затверджує вибір конкретного перетворення із сукупності можливих для даного алгоритму. Користувачі є авторизованими, якщо вони мають певний автентичний ключ. Вся складність і, власне, завдання шифрування полягає в тому, як саме реалізований цей процес. Загалом, шифрування складається з двох складових: зашифрування та розшифрування За допомогою шифрування забезпечуються три стани безпеки інформації.

Конфіденційність. Шифрування використовується для приховання інформації від неавторизованих користувачів під час передачі або зберігання. Цілісність. Шифрування використовується для запобігання зміні інформації під час передачі або зберігання. Ідентифікованість. Шифрування використовується для аутентифікації джерела інформації та запобігання відмови відправника інформації від того факту, що дані були надіслані саме їм.Шифрування папок та окремих файлів є надійним гарантом їхньої безпеки. Існує кілька методів, які користувачі Windows можуть використовувати для захисту своїх пристроїв та даних, що зберігаються на них.



Насправді його секрети нафіг нікому не потрібні. І до речі, такий ключ за 5 доларів ще треба пошукати

Штатне повнодискове шифрування

Для початку коротко про стандартні рішення, інтегровані в операційні системи. У сучасних смартфонах досить надійна реалізація повнодискового шифрування, принаймні якщо судити за вартістю експлоїтів на чорному ринку. Якщо ви використовуєте пароль, а не пін-код, відключили біометрію, не чіпали завантажувач, то рядовий зловмисник навряд чи дістанеться даних. З настільними операційними системами ситуація складніша. Apple використовує в macOS технологію FileVault на базі алгоритму XTS-AES-128 із довжиною ключа 256 біт та криптографічний чіп T2 для роботи з ключами. Це рішення близьке за надійністю до шифрування iPhone. У той же час Windows пропонує BitLocker, який шифрує систему за допомогою 128- або 256-бітного алгоритму AES та Encrypting File System для шифрування окремих файлів, проте ці функції недоступні у Windows 10/11 Home. Вони працюють у професійних редакціях операційної системи. Для Linux існує загальний стандартний метод шифрування LUKS, але його реалізації відрізняються від дистрибутива до дистрибутива. Зазвичай використовується шифрування AES з 256-бітними ключами, але LUKS працює з різними шифрами (Serpent, Twofish, CAST-128, CAST-256) та хеш-функціями (SHA-1, SHA-256, SHA-512, RIPEMD160, WHIRL . У результаті виходить зоопарк, якому не можна дати єдину однозначну оцінку. Отже, наявність штатного шифрування не заважає існувати ряду альтернативних рішень з відкритим вихідним кодом. Вони призначені для більш різноманітних сценаріїв використання. Ходімо від простого до складного.

Просте файлове шифрування

Hat.sh та Cloaker. Веб-додатки, які забезпечують локальне шифрування окремих файлів у браузері з використанням відомої бібліотеки libsodium та криптографічних алгоритмів.

XChaCha20-Poly1305 – для симетричного шифрування

Argon2id – для отримання ключа на основі пароля

X25519 – для обміну ключами

Hat.sh і Cloaker — прості рішення, які не потребують попереднього налаштування. Hat.sh найкраще підходить для шифрування великих файлів, а Cloaker оптимізований для роботи на мобільних пристроях і має десктопну версію. Через обраний алгоритм шифрування та браузерного виконання краще їх застосування — скоріше захист файлів перед передачею незахищеними каналами, ніж тривале зберігання інформації.

Picocrypt. Windows, macOS и Linux

Крошечна, вагою 2 Мб, але функціональна утиліта, яка не вимагає встановлення та прав адміністратора. Зазвичай використовує XChaCha20 і функцію формування ключа Argon2 для створення криптоконтейнерів. У «режимі параної» використовується каскадне шифрування — послідовно шифруються дані за допомогою XChaCha20 і Serpent, а також використовується HMAC-SHA3 замість BLAKE2b для аутентифікації. З точки зору криптографії використання одного алгоритму шифрування вже надійно захищає дані. Повторне шифрування іншим алгоритмом не збільшує стійкість, але при цьому збільшуються використовувані ресурси та час роботи.

Крім того, Picocrypt може

захищати від пошкоджень шифровані контейнери ціною невеликого збільшення розміру за допомогою кодів Ріда-Соломона, здатних виправляти помилки

розбивати контейнери на частини

стискати файли під час упаковки

використовувати ключові файли як додатковий (або єдиний) метод захисту криптоконтейнерів

Шифрування файлів перед завантаженням у хмару

Cryptomator. Windows, macOS, Linux, iOS, Android

Cryptomator не замінює клієнти для хмарних сховищ, проте він призначений спеціально для шифрування каталогів, які синхронізуються з їх допомогою. Ця програма приховує структуру каталогів, шифрує файли та їх імена за допомогою AES та 256-бітного ключа, що генерується на основі пароля за допомогою scrypt. AES обрано на конкурсній основі як, де-факто, міжнародний стандарт. AES є одним з найбільш популярних і докладно досліджених шифрів. Це не означає, що він не має недоліків, наприклад, розроблений теоретичний спосіб знизити стійкість AES на 2 біти ключа, проте з 1997 року не знайдено жодної практично корисної атаки. Втім, алгоритм шифрування це ще не все. Важливо помітити, що Cryptomator не приховує метадані: мітки часу доступу, модифікації та створення файлів, а також кількість, розмір файлів та папок. Документація Cryptomator докладно описує архітектуру безпеки . Деякі криптографічні бібліотеки Cryptomator  пройшли аудит Cure53 . Винятком є ​​cryptolib-swift — бібліотека, що використовується в Cryptomator для iOS. До того ж, вихідний код мобільних програм не опублікований.

Duplicati. Windows, macOS, Linux

Спеціалізоване рішення для безпечного резервного копіювання файлів у хмарні сховища. Воно використовує AES-256 для захисту даних засобами SharpAESCrypt або GnuPG. Duplicati підтримує резервне копіювання, тобто спочатку завантажує повну резервну копію, а потім зберігає невеликі додаткові оновлення. Крім того, ця утиліта дозволяє створювати резервні копії відкритих або заблокованих файлів за допомогою служби миттєвих знімків тома (VSS) Windows або диспетчера логічних томів (LVM) у Linux.

RClone. Windows, macOS, Linux, .deb, .rpm, FreeBSD, Plan9, Solaris

Це універсальний інструмент для керування даними в хмарі, який може переміщати, копіювати, синхронізувати, монтувати, перевіряти, видаляти, дедуплікувати і, звичайно, шифрувати. Для криптографічного захисту файлів в RClone використовується 256-бітний ключ і сіль, створювані на основі пари різних паролів користувача. До речі, про паролі. Враховуючи те, які великі словники та бази доступні зловмисникам, найбезпечнішим варіантом і для криптоконтейнерів та будь-яких інших цілей, будуть паролі завдовжки від 16 символів. Або цілком випадкові, або паролі, у яких частина випадкова, а частина – ваша парольна фраза. Для їх генерації та зберігання можна скористатися менеджерами, наприклад, KeePass Password Safe. У RClone шифрування виконується за допомогою NaCl SecretBox , за допомогою алгоритмів XSalsa20 та Poly1305, які також забезпечують цілісність файлів. Імена файлів і каталогів також шифруються за замовчуванням. Структура та розмір файлів та інші метадані не шифруються. На відміну від Cryptomator, RClone підключається безпосередньо до хмар. Він підтримує двосторонню синхронізацію (поки що як експериментальну функцію), тому він підходить для автоматичної синхронізації файлів між пристроями у сценарії, коли на файли шифруються перед завантаженням у хмару, а на комп’ютері зберігаються у розшифрованому вигляді. Щоправда, для налаштування такої конфігурації доведеться повозитися з консоллю. RClone має лише базовий веб-інтерфейс, налаштування шифрування здійснюється за допомогою текстових команд.

Створення шифрованих архівів, контейнерів та томів

VeraCrypt. Windows, macOS, Linux, FreeBSD, Raspberry Pi

Відоме рішення для створення захищених файлових контейнерів із довгою історією, репутацією, регулярними оновленнями та великими функціями. VeraCrypt дозволяє створювати приховані томи та каскадне шифрування, забезпечує правдоподібне заперечення. Підтримує повнодискове шифрування, становлячи конкуренцію BitLocker. За умовчанням ця утиліта використовує 256-бітове шифрування AES, але підтримує й інші шифри: Camellia, Коник, Serpent і Twofish з 256-бітним ключем та різні їх поєднання. Всі ці алгоритми є блоковими (що подаються на вхід дані обробляються блоками) і симетричними (для зашифрування та розшифрування повідомлень використовується той самий ключ). У них застосовуються ідентичні лінійні та нелінійні операції, що відрізняються лише довжинами та значеннями параметрів. Криптостійкість блокових шифрів приймається аксіоматично і підтверджується відсутністю знайдених атак. Можна навіть сказати, що кількістю невдалих спроб знайти їх.

zuluCrypt. Linux

Ця програма фактично є графічним інтерфейсом для роботи з cryptsetup . Вона використовує можливості криптографічного API ядра Linux для створення та монтування томів PLAIN dm-crypt, LUKS, контейнерів TrueCrypt, VeraCrypt та BitLocker. Не дозволяє створювати розділи BitLocker, тільки переглядати їхній вміст, але в іншому універсальна.

Kryptor. Windows, macOS, Linux

Консольний інструмент для шифрування та підпису файлів, який розробляється, як заміна age та Minisign , а також сучасна альтернатива GPG . Використовує алгоритм XChaCha20-Poly1305 для захисту файлів, argon2id для отримання ключа на основі пароля, BLAKE2b для хешування, X25519 для обміну ключами та Ed25519 для цифрових підписів. Всі вони реалізовані за допомогою бібліотеки libsodium . Добре документований . Kryptor приховує метадані та імена файлів і підтримує асиметричні ключі, так що дозволяє налагодити обмін файлами з автентифікацією відправника по заздалегідь небезпечних каналах.

Dexios. Linux, Windows, MacOS, FreeBSD

Ще один консольний інструмент шифрування. Написаний мовою Rust і здатний шифрувати як окремі файли, і каталоги. Як і Kryptor, має докладну документацію . Dexios підтримує AES-256-GCM та ChaCha20-Poly1305 для шифрування файлів, а також BLAKE3-Balloon та argon2id для формування ключа. Усі криптографічні примітиви взяті з набору RustCrypto . А ще, в 2022 році Dexios пройшов перевірку NCC без істотних зауважень.

Tomb. Linux

Командна оболонка для криптографічного API ядра Linux. Tomb служить для керування cryptsetup та LUKS. За замовчуванням використовується для захисту файлів і каталогів алгоритм AES-256 (XTS plain), проте може використовувати всі доступні в Linux криптографічні примітиви. За концепцією ця утиліта нагадує zuluCrypt, але Tomb дозволяє зберігати криптографічні ключі окремо, наприклад, на флеш-накопичувачі, та підтримує стеганографію (приховування ключів у текстах та JPEG-файлах). Подібні аудити – важлива річ. Незважаючи на всі міські легенди про закладки у популярних алгоритмах шифрування, вітчизняних та зарубіжних, жодного такого свідчення немає. Усі перелічені у статті алгоритми відомі криптографічному співтоваристві довгий час, по кожному з них проведено неодноразовий аналіз і жодної атаки, якоїсь близької до практичної, не знайдено. Найкращий результат, отриманий російськими криптоаналітиками для сучасних стандартизованих криптомеханізмів, відноситься до алгоритму генерації ключа MQ-DRBG. Авторам дослідження вдалося знизити криптостійкість із 256 до 153 біт, проте практичні атаки не знайдені, а наявність закладки не доведено. Однак одна справа алгоритм сам по собі, інша — реалізація шифрування в конкретній програмі. На цьому рівні багато що може піти не так. Періодичні незалежні перевірки криптографічних інструментів є дуже важливими. Далі буде описано гарний приклад.

SiriKali. Windows, macOS, Linux

Рішення в стилі “все в одному” – комбайн з графічним інтерфейсом на Qt/C++, який керує зашифрованими папками за допомогою ряду інструментів.

У Linux як бекенд SiriKali виступають:

Securefs та Gocryptfs

Encfs та Cryfs

Sshfs та Fscrypt

Ecryptfs та Cryptomator

У Windows SiriKali працює з:

Securefs та Cppcryptfs

Cryfs та Encfs та Sshfs

У macOS до утиліти підключаються:

Securefs та Gocryptfs

Cryfs та Encfs

Все це консольні інструменти, які можна використовувати окремо від SiriKali. Досить широкий вибір, однак, не всі вони однаково корисні. Так, під час аудиту в 2014 році в EncFS було знайдено вразливості , які досі не виправлені. Проект не оновлювався з 2018 року і прямо скажемо, застарів. На противагу виділимо Gocryptfs (минула аудит і була доопрацьована за підсумками ), cppcryptfs і Securefs , які служать для створення та управління каталогами-контейнерами, заснованими на файловій системі FUSE (Filesystem in Userspace) на базі AES256-GCM. Ці рішення концептуально займають проміжне місце між криптографічні контейнерами і пофайловим шифруванням. Утиліти для роботи з FUSE на логічному рівні маніпулюють контейнерами, але кожен файл у контейнері зберігається окремо. Такий підхід найкраще підходить для роботи з хмарними сховищами — зміна одного файлу не означає повторного завантаження всього контейнера, проте Filesystem in Userspace не приховує структури каталогів та розмірів файлів. Що стосується CryFS , то ця консольна утиліта створена для використання разом із Dropbox або іншими хмарними сервісами. У ній криптографії використовується бібліотека Crypto++. Її архітектура описана в магістерській дисертації та науковій статті, опублікованій на DBSec 2017 . В основі є шифр AES-256. CryFS надає зашифровану файлову систему іншого типу. Вона дробить файли на шифровані блоки, які зберігаються в базовому каталозі з використанням випадкового ідентифікатора як ім’я файлу. Таким чином, крім приховування вмісту файлу, CryFS приховує метадані та структуру каталогів. Підхід має мінус — безліч окремих файлів, які генерує програма. У деяких хмарних сервісах можна швидко зіткнутися з обмеженням максимальної кількості файлів. До того ж, при шифруванні файлів, розміром менше кількох МБ, CryFS збільшує займане ними місце через фіксований розмір шифрованого блоку. Але головна вада утиліти полягає в тому, що вона все ще знаходиться в стадії бета-тестування.

Як бачите, Open Source-спільнота створила та підтримує багато цікавих та корисних програм для шифрування, але, якщо говорити про рішення, які використовують у повсякденному житті експерти-криптографи, то зазвичай це все-таки VeraCrypt.

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.