На главную

Кому доверять?

Идеально правильный ответ для конспиратора - никому, даже себе. Но без доверия невозможно прожить. Покупая компьютер, вы доверяете его производителю. Устанавливая на него ПО, вы доверяете этому ПО. Шифруя данные, вы доверяете ПО в том, что оно шифрует данные и шифрует их надёжно. Лично я для шифрования пользуюсь ПО, которое я же и написал. Однако не каждый может позволить себе такую роскошь, как написать кучу криптографического кода. Да и что, если я где-то ошибся? Что, если и моя программа шифрует недостаточно хорошо?
Что же делать? Прежде всего, необходимо определиться с уровнем доверия. Одному вы доверяете больше. Другому - меньше. Например, я знаю, что у меня две руки и две ноги. Надеюсь, сотрудники правоохранительных органов ещё не отпилили мне их на момент того, как вы это читаете. Но на момент написания я вижу своими глазами, чувствую ощущениями, могу потрогать руками свои конечности. В принципе, я могу услышать их движения: например, хлопки руками или топанье ногами. Всё познание даётся мне через ощущения. Если я не буду доверять своим глазам, ушам и другим чувствам, то я не смогу доверять вообще ничему. Следовательно, я с очень высокой степенью надёжности знаю, что я имею две руки и две ноги. На момент написания текста. Возможно, всего через час мне их будут отпиливать сотрудники полиции, пытаясь выпытать пароли к жёсткому диску. Кто знает? Следовательно, даже то, что я знаю сейчас с высокой степенью достоверности, может быть уже неверно через пару часов или даже минут. Я не могу полагаться на то, что ситуация не изменится в будущем кардинально даже не смотря на то, что ранее долгие годы она оставалась стабильной и я к этому привык. Кроме этого, даже если я что-то увидел собственными глазами, значит ли это, что это верно? В сумрачном свете жёлтых фонарей, закрытых деревьями, я увидел, как мимо меня промчалась чёрная машина. Реально она была тёмно-синей, но при указанных условиях освещения я увидел своими глазами совсем другие цвета. Так что даже глазам нельзя доверять всегда. Необходимо оценивать уровень доверия.
Из каких соображений можно оценить уровень доверия? Первое я уже указывал выше: насколько достоверен источник информации? Второе. Вынуждены ли мы доверять этому источнику информации? И если вынуждены, то кем или чем? Третье. Что произойдёт, если мы ему будем доверять, но он не оправдает наше доверие? Чему больше доверять: симметричной криптографии или асимметричной криптографии? Если вы знакомы с криптографией, попробуйте записать свой ответ в письменной и аргументированной форме (кратко). Потом посмотрите подсказки. Всё ли вы учли? Наконец, перейдите из подсказок по ссылке на решение задачи. Если вы не знакомы с криптографией посмотрите в подсказках ссылку на решение или попробуйте сначала, сами решить вопрос доверия.
По решению задачи мы видим, что мы можем иметь основания недоверять криптографии. Однако, мы вынуждены ей доверять. Но, если это возможно, мы должны предпринимать меры к недоверию и парированию угроз. Таким образом, мы можем понимать, что у нас есть более доверенные инструменты и менее доверенные инструменты. Некоторые недоверенные инструменты мы можем, например, изолировать от интернета, сделав их более доверенными. Если мы вынуждены доверять, то мы должны задуматься над тем, как парировать негативные стороны нашего доверия. Известно, что в OpenBSD Unix часть разработчиков было куплено АНБ (NSA) США для внесения туда уязвимостей. Поэтому, мы должны очень осторожно относится к любому инструменту. Будь он с открытыми исходниками или с закрытыми. Тем более, что для того, чтобы найти уязвимости, зачастую надо их специально искать. Бывает, что ты знаешь, что дефект вот в этих 5-ти строках кода. Смотришь на них в упор, но не понимаешь, почему программа работает неверно. И это когда специально ищешь ошибку, уже зная, что она там есть! Никогда не стоит доверять ложным посылкам о том, что мы самые безопасные потому что ... . Логика может выглядеть довольно хорошо или даже очень хорошо. Она может казаться верной три раза и все факты там будут точно верными. Но всё равно логика будет обманом. В то же время, открытое ПО хотя бы можно проверить или даже склонировать, чтобы не зависеть от потерявших качество разработчиков, как это было с TrueCrypt (автора этой программы, видимо, взяло под контроль NSA).
Теперь немного отвлечёмся от доверия и посмотрим на один из самых важных принципов - "Изоляция и разделение".