Допустим, что все ядра/драйвера/процессоры/чипы содержат уязвимости, доступ к которым - дело времени и денег.
Любая сетевая активность (скачивание файла, страницы) потенциально дает злоумышленнику root права в системе.
Так как тема во многом психологическая, рассказы про неуловимого Джо пока оставим в сторонке.
Очевидным решением будет полностью изолировать компьютер от интернета.
https://en.wikipedia.org/wiki/Air_gap_(networking)
На изолированный компьютер можно передавать информацию с помощью DVD-R или одноразовых флешек.
Немного поразмыслив на эту тему, приходим к концепции однонаправленной передачи данных (data diode).
https://en.wikipedia.org/wiki/Unidirectional_network
Самый простой способ организовать data diode - передача звука из аудио-выхода одного компьютера в микрофонный вход другого.
Софт для этого поддерживает скорость до 10 kB/s, чего должно быть вполне достаточно.
https://github.com/romanz/amodem
Вопрос знатокам: передача в обратном направлении технически возможна, значит на провод надо повесить обычный диод. Прав ли я, и какой диод подойдет?
Другой проект предлагает целую систему.
Двунаправленный USB превращается в однонаправленный через USB-to-TTL адаптер для ардуины и оптрон.
https://github.com/maqp/tfc
https://github.com/maqp/tfc/wiki/Security-design
Скорость выше, чем в amodem. Стоимость несколько тысяч рублей.
Система tfc предполагает передачу сообщений через интернет с абсолютной защищенностью от удаленного взлома.
[Изолированный компьютер Боба] -> [Внешний компьютер] <-> Интернет <-> [Внешний компьютер] -> [Изолированный компьютер Алисы]
Ключ шифрования не может покинуть компьютер Алисы, а на компьютер Боба не может попасть малварь.
Второй вопрос: как приспособить эту схему к посещению произвольных сайтов в интернете?
В принципе, мы могли бы заранее обменяться со всеми нужными сайтами ключами, а затем изолировать компьютер.
На практике нужно иметь дело с TLS, который к чистой схеме по всей видимости не приспособить.
https://tls.dxdt.ru/tls.html
Вопрос тем, кто разбирается в работе TLS: как изменить схему выше (в ущерб безопасности), чтобы посещать сайты с TLS?
Например, вводить ключи с клавиатуры или добавить прибор, отправляющий фиксированный блок данных по нажатию кнопки.
Вариант расшифровывать TLS где-то на удаленном компьютере мне кажется сомнительным, однако такое было бы приемлемо в анонимной сети.