Шифрования не достаточно

Шифрования не достаточно

Несколько фактов о безопасности и шифровании

Шифрования не достаточноВ любой сфере есть свои "но". Эти неловкие моменты обычно открывают картину совершенно с другой стороны. И даже если вам кажется, что таких моментов нет, то они все равно есть. Попробуйте вспомнить. Наверняка у вас в жизни были какие-то события, которые вы трактовали совершенно по разному в зависимости от фактов. Например, вы считали, что если удалить файл из корзины, то он будет действительно удален. Но спустя время, вы узнали о программах для восстановления файлов. Теперь вы уже так не считаете. Криптография в данном случае - не исключение.

 

Неловкий факт № 1 - Криптография сложнее, чем кажется

Криптография сложнее, чем кажется: не любая программа шифрования будет действительно безопасной. Почти любой опытный программист может скачать исходники какого-либо блочного шифра (криптографический протокол), например, AES. Добавить к ним ввод пароля и вывод полученного шифрованного текста. После чего назвать свое творение "утилитой шифрования". Скорее всего этот программист будет сильно разочарован результатом.

Есть специальный закон Мерфи для начинающих криптографов: где-то в другом месте во всем процессе шифрования почти наверняка будет скрыта одна или несколько роковых ошибок. Это может быть генерация ключа, генератор случайных чисел, вычисление хэша и т.п. Квалифицированный хакер может найти и использовать уязвимость без особых усилий. Если не верите, то вспомните, как быстро ломаются различные защитные системы игр. Иногда это время может быть фантастически коротким. Не думайте, что в таких защитах не используются методы криптографии. В свое время один известный хакер снес аппаратную криптографическую защиту просто удалив драйвер платы. Поэтому сделать свою утилиту шифрования - это тоже самое, что представить себе, что вы сможете обыграть в шахматы Каспарова.  

Брюс Шнайер о подводных камнях в криптографии:

Криптографическая система будет сильной настолько, насколько сильны алгоритмы шифрования, алгоритмы цифровой подписи, однонаправленные хэш-функции и коды аутентификации, на которые она опирается. Сломайте любую из них, и вы сломаете систему. Это точно так же, как возможно построить хилое здание, используя прочные материалы. Можно построить слабую криптографическую систему с помощью самых надежных алгоритмов и протоколов.

(Цитата: A cryptographic system can only be as strong as the encryption algorithms, digital signature algorithms, one-way hash functions, and message authentication codes it relies on. Break any of them, and you've broken the system. And just as it's possible to build a weak structure using strong materials, it's possible to build a weak cryptographic system using strong algorithms and protocols).

------------------

Просто потому, что программа шифрования работает, нельзя утверждать, что она безопасна. Это происходит с большинством продуктов. Кто-то прочитает что такое прикладная криптография. Выберет алгоритм шифрования. Реализует его. Проверит его пару раз. Убедиться, что алгоритм работает. И на этом будет считать, что программа безопасна. Но это не так.

(Цитата: Just because an encryption program works doesn't mean it is secure. What happens with most products is that someone reads Applied Cryptography, chooses an algorithm and protocol, tests it to make sure it works, and thinks he's done. He's not).

------------------

Функциональность не эквивалентна количеству. И никакое количество бета-тестов никогда не покажут брешь в безопасности. Слишком много продуктов лишь используют "модные слова". Они используют безопасные алгоритмы шифрования, но они не являются безопасными.

(Цитата: Functionality does not equal quality, and no amount of beta testing will ever reveal a security flaw. Too many products are merely "buzzword compliant"; they use secure cryptography, but they are not secure).

Возьмите любые самые известные примеры взлома. Скорее всего там будут фигурировать "модные слова", которые были когда-то подтверждены экспертизой.

Пример: соблазн использовать собственный криптографический алгоритм с закрытым исходным кодом постоянно приводит к глупости:

"Даже самый сильный из алгоритмов шифрования может быть беззащитным, если он реализован с ошибками или же используется не по назначению. Это болезнь всего частного программного обеспечения. Microsoft особенно печально известна тем, что практически в каждом из его криптографических решений были найдены серьезные уязвимости. И часто они ломались совершенно тривиальным образом. Не надо далеко ходить за примерами. Kerberos, шифрование документов Microsoft Office, протокол аутентификации NTLM, SysKey, EFS шифрование в Windows 2000, реализация генератора случайных чисел в Windows 2000/XP/Vista. Как показывает история, компания не учится на собственных ошибках, поэтому лучше использовать все что угодно, но только не криптографические алгоритмы/программы/утилиты Microsoft. Поверьте, вы не найдете компанию, у которой была бы настолько же плохая репутация в сфере криптографии" - Форум Mycotopia (ссылка: https://mycotopia.net/forums/resist-rebel/68108-open-discussion-privacy-security-tip-day.html).

(Цитата: "Even the strongest of the encryption algorithms can be defenseless, if it is implemented with errors, or used inappropriately, and that is the illness of the proprietary software. Microsoft is especially infamous for that, as virtually each of its cryptographic solutions had serious vulnerabilities, often breakable in a trivial manner. One need not venture far for the examples, — Kerberos, encryption of Microsoft Office documents, NTLM authentication protocol, SysKey, EFS encryption in Windows 2000, RNG implementations in Windows 2000/XP/Vista. As history shows, that company is unable to learn on its own mistakes, therefore it is better to use anything, but the Microsoft's cryptography, since, even if you would want to, you will find no worse reputation, than the one enjoyed by the Microsoft." ~Mycotopia Forum).

Кроме того, показательным примером этой глупости являются не только продукты отдельных компаний, но и простые логические заключения.

 

Неловкий факт № 2 - Операционные системы порочны

Операционные системы порочны: Они оставляют эхо (в открытом виде) всех данных, к которым обращались вы или процессы. Файл подкачки, временные файлы, переход в спящий режим, файлы кэша браузера и другие артефакты.

Служба теневого копирования Windows (Windows Volume Shadow Copy Service) представляет собой особую проблему. Даже если вы будете безопасно стирать файл после его шифрования, его чистая копия предыдущих версий останется на диске. И даже если эти файлы скрыты, их легко можно найти и восстановить.

Многие простые программы шифрования просто шифруют и дешифруют файлы. Да, некоторые из них умеют удалять исходные файлы после закрытия программы, но, к сожалению, они не могут надежно очищать файлы (сделать их не восстанавливаемыми).

Использование шифрованного сжатия. Например Zip. Такие программы могут представлять серьезную опасность. Если вы не можете создавать, открывать и сохранять файлы непосредственно в самом зашифрованном архиве, то вы будете оставлять их чистые копии на компьютере. И вот эти копии вам необходимо будет удалять, причем не просто удалять. Ведь вы знаете, что удаленные файлы на самом деле не стираются, не так ли?

Если вы потеряете ваш компьютер, или же его кто-то украдет (тьфу-тьфу-тьфу), или просто любопытный человек получит к нему доступ, то, с большой вероятностью, он сможет найти все не шифрованные отголоски ваших шифрованных данных. Чтобы предотвратить это, вы можете использовать полное шифрование диска. Тогда все эхо системы будет находится в шифрованном виде, даже при выключенном компьютере. Так же убедитесь, что ваша программа шифрования работает всегда, а не только тогда, когда она видна. Это означает, что программа должна действительно предусматривать все режимы работы операционной системы и самой аппаратуры. 

 

Неловкий факт № 3 - В любой программе шифрования всегда может быть потайная лазейка

В любой программе шифрования всегда может быть потайная лазейка (на сленге "бэкдор"). Такие лазейки могут быть установлены для различных целей правительства, или для возможности восстановления данных, или для других административных целей. Кроме доступа органами государственного управления, есть более значимая опасность. Дело в том, что такие лазейки могут легко обнаружить злоумышленники. И если при разговоре о государственных структурах чаще всего речь идет о чем-то серьезном и секретном, что в жизни никогда не коснется обычного пользователя, то в случае злоумышленника обычно все наоборот.

 

Неловкий факт № 4 - Шифрование не спасет зараженный компьютер

Вредоносное программное обеспечение представляет еще одну угрозу. Если вы используете для доступа к данным зараженный шпионами компьютер, то ваши данные могут попасть к злоумышленнику. В данном случае шифрование ничем не виновато и ничем не сможет вам помочь. Вас подводит система безопасности компьютера или ее отсутствие.

 

Финальное беспокойство

Ваш компьютер и/или устройство хранения данных могут быть самим предметом поиска. Возможно, лучше будет, если ваши конфиденциальные данные практически никогда не будут находится рядом с вами. Например, они будут храниться в облаке в шифрованном виде, и что бы получить доступ к данным, вам надо будет использовать различные хитрости.

Но тут двусторонняя ловушка. Облако - это те же компьютеры, просто хранятся в другом месте. Плюс ко всему, у них всегда есть всем известная точка входа. 

Представьте, что у вас есть какая-то реликвия. Таскать ее за собой опасно, но и любые хранилища можно ограбить.

 

С учетом всех приведенных фактов, вот на что вам стоит обращать внимание при выборе программы шифрования:

  1. Программы не должны полагаться на собственный алгоритм шифрования. Этот алгоритм должен быть проверенным временем. Его должно было тщательно изучить криптографическое сообщество. Примерами являются AES (Rijndael), Twofish, Serpent, плюс их каскадные комбинации. Примечание: конечно, возможен вариант, когда новый алгоритм окажется намного сильнее всех существующих, но вероятность такого события очень мала.
  2. Весьма скептически стоит относится к программам, предлагаемыми отдельными авторами, которые реализовали их в качестве еще "одной крутой программы". Естественно, шифрование интригует, и есть отличные общеизвестные надежные алгоритмы. Но неопытная реализация почти на 100% загубит все. В большинстве случаев, такие программы предупреждают о том, что эти программы не будут безопасными для всех и т.д.
  3. Обратите внимание на программное обеспечение, которое было подтверждено временем. В идеале, за несколько лет не должно фигурировать ни одного случая взлома (по вине самой программы, а не безалаберности пользователя). Даже если новая программа будет использовать самые стойкие алгоритмы шифрования, и проходить кучу сложных тестов, все же лучше выбрать старую программу. Ведь новая программа не прошла самую сложную проверку - проверку временем.
  4. Программное обеспечение с открытым исходным кодом лучше, чем программное обеспечение с закрытым исходным кодом. Особенно, если открытые программы активно использовались коммерческими структурами. Сам факт, что коммерческие структуры продолжают использовать программы с открытым исходным кодом говорит о том, что программы оказались стойкими. Плюс ко всему сам код доступен для анализа. С одной стороны это может показаться небезопасным, с другой стороны, искать уязвимости будет намного больше человек. И если они не смогли найти уязвимости, то, согласитесь, этот код вызовет намного больше доверия. 
  5. Есть ли бэкдор в программе? Лазейка это всегда лазейка, и рано или поздно ее найдут.

Попробуем провести простой анализ на примере пакета Pismo File Mount Audit, содержащего программное обеспечение шифрования. Программа создает шифрованную папку в виде отдельного файла. Вам лишь остается монтировать этот файл в систему. Делается это через контекстное меню проводника Windows. С точки зрения пользователя ничего сложного нет. Плюс ко всему, вы читаете, создаете, редактируете и удаляете файлы внутри шифрованного каталога (по сути внутри шифрованного файла), что практически полностью позволяет избежать проблем текстового эха на вашем компьютере. Но, является ли такая программа безопасной?

Проведем простой аудит на основе вышеописанных факторов:

  1. Полагается ли программа на собственный алгоритм шифрования? Нет, они утверждают, что "используется шифрование AES и генерация ключей PKCS5v2." Пока все идет хорошо.
  2. Она предлагается отдельным автором? Нет, она предлагается коммерческим предприятием. Это хорошо.
  3. Компания целенаправленно занимается программами безопасности или же это побочная цель? Шифрование появилось относительно недавно. Как дополнительная функциональность. Это не обнадеживает.
  4. Прошла ли программа проверкой времени? Основная программа доступна давно, но шифрование появилось совсем недавно. Кроме того, нет никаких компетентных отзывов о программе. Что-то это не очень хорошо.
  5. Открытый исходный код? Исходного кода нет для полного пакета, но исходный код есть для основных функций, используемых пакетом. Хороший знак.
  6. Есть ли бэкдор? Сложно сказать. Много факторов.
  7. Вывод: есть лучшие альтернативы

Конечно, такой аудит сложно назвать основательным. Тем не менее, он поможет вам хотя бы первоначально представить себе о чем идет речь. И уже в голове прокрутить различные ситуации. Как вы будете использовать программы? Какая вероятность, что у вас возникнут проблемы при использовании? На что вы можете рассчитывать в случае проблем? Какие у вас гарантии? и т.д.

С другой стороны, всегда старайтесь адекватно взглянуть на ситуацию. Для защиты от обычных любопытных пользователей с лихвой хватит и Pismo. Если вы построите крепость, то можете привлечь внимание технически продвинутых пользователей, вплоть до настоящих хакеров. Тут может сработать психология. Если где-то что-то усиленно прячут, значит там обязательно есть что-то ценное. Плюс у настоящих хакеров есть тяга к сложным задачам. И речь не о выгоде. Речь о самосознании - "я это сломал". А вам ведь этого не надо?

 

Фатальная ловушка резервного копирования

Программы шифрования, которые создают шифрованные контейнеры (файлы, которые содержат шифрованные файлы), обычно, не изменяют размер файла-контейнера. И часто намеренно не меняют атрибут "дата изменения", хотя файлы внутри были изменены или добавлены. Делается это для отрицания самого факта изменения данных. С одной стороны, это вполне понятное поведение программ. Они стараются защитить данные. С другой стороны, если вы используете программы для резервного копирования, то такое поведение может плохо сказаться. Ведь программа для создания бэкапа не сможет понять, что файл-контейнер был изменен, и что необходимо произвести копирование. Например, для случая инкрементального резервного копирования такой файл-контейнер будет скопирован один раз. 

TrueCrypt является примером программы, которая не изменяет даты (это можно изменить в настройках). Тем не менее, некоторые облачные сервисы резервного копирования, например Dropbox, проверяют хэш-сумму файла, а не дату. И в случае если хэш-сумма изменилась, будет сохранена новая копия. Но, об этом стоит помнить, так как далеко не все программы и сервисы используют хэш-сумму и тому подобные признаки.

Социальные сети

☕ Понравился обзор? Поделитесь с друзьями!

Добавить комментарий / отзыв
Комментарий - это вежливое и наполненное смыслом сообщение (правила).



* Нажимая на кнопку "Отправить", Вы соглашаетесь с политикой конфиденциальности.
Социальные сети
Программы (Freeware, OpenSource...)