В очередной раз хочу поднять тему TrueCrypt / VeraCrypt
Как мы помним, разработка TrueCrypt была прекращена при загадочных обстоятельствах, никто так и не понял, что же там произошло, но все согласны, что "что-то не чисто". Очень вероятно, что на разработчиков оказывали давление. Возможно, кто-то влиятельный. Возможно, госструктуры...
Команда VeraCrypt быстро подхватила разработку. Вопрос №1:
на них не оказывается давление? Почему? Не потому ли, что они, в отличие от команды TrueCrypt, оказались более сговорчивы? А это, очевидно, может означать, что в продукт добавили бэкдоры -- например, возможность расшифровать контейнер, не зная пароля, если ты работаешь в ФБР.
Исходный код VeraCrypt прошёл независимую проверку (аудит) -- бэкдоров не обнаружено. Вопрос №2:
насколько независимой была проверка? Можем ли мы ей доверять? Могут ли бэкдоры быть добавлены после проверки? Тут я не стал бы сильно беспокоиться, потому что пока исходный код открыт, его может проверить кто угодно, и если даже Вася Пупкин что-то подозрительное заметит, будет скандал, а это никому не нужно. Так что, скорее всего, в исходном коде и правда бэкдоров нет.
Но вот что интересно. Мало кто станет собирать продукт из исходников. Большинство (включая, я уверен, и нас с вами) скачают готовую бинарную сборку. Вопрос №3:
где гарантия, что бэкдор не добавляется в исполнимый файл во время сборки, после получения исходного кода из репозитория? Как это можно проверить? Взять исходный код, собрать самому и сравнить?
Не тут-то было. Скачиваем исходники, читаем инструкцию по сборке:
At the end of each official .exe and .sys file, there are embedded digital signatures and all related certificates (...) Keep this in mind if you compile VeraCrypt and compare your binaries with the official binaries. If your binaries are unsigned, the sizes of the official binaries will usually be approximately 10 KB greater than sizes of your binaries (there may be further differences if you use a different version of the compiler, or if you install a different or no service pack for Visual Studio, or different hotfixes for it, or if you use different versions of the required SDKs).
То, что вы скомпилируете, заведомо бессмысленно сравнивать с официальными бинарниками, потому что 1) там у них добавлены сертификаты и подписи, которых у вас нет и не может быть; 2) Хэщ-сумма кода зависит от множества факторов, не все из них вы можете контролировать.
Получается, что
отсутствие бэкдора в официальных сборках мы проверить не можем. Тяжела ты, жизнь параноика. Что же теперь делать? Всегда собирать самому?
Есть ещё вариант использовать старый TrueCrypt 7.1a, но в нём, якобы, были найдены какие-то баги, в частности, дающие возможность обнаружить скрытый том. К тому же, без всякой поддержки он скоро совсем устареет, например, перестанет работать в новой версии ОС.
Что думаете, диванные спецы по безопасности?