TrueCrypt + Internet


Насколько безопасна данная связка? Один мой знакомый принципиально не использует TC когда компьютер подключен к интернету под виндами (боится, что из сети узнают ключи или незащищенные данные для ускоренного подбора ключа позже)
Это параноя или в какой-то степени может быть оправдано? И если последнее, то вечный вопрос: где утечка и как защититься ?


Комментарии
Гость (04/04/2012 00:47)   
Кроме трояна, вариантов утечки не вижу.
Гость (04/04/2012 08:16)   
не использует TC когда компьютер подключен к интернету
Уж если на то пошло, то не надо подключать к интернету компьютер, на котором когда-либо вводилась какая-либо секретная информация (например, пароли), ибо троян-кейлоггер или иные "недокументированные функции ОС или железа" могли её запомнить что-бы передать "кому следует" при появлении сетевого подключения.
Гость (09/04/2012 09:17)   
Уж если на то пошло, то не надо подключать к интернету компьютер, на котором когда-либо вводилась какая-либо секретная информация

Если в виртуалке, то можно :)

Один мой знакомый принципиально не использует TC когда компьютер подключен к интернету под виндами (боится, что из сети узнают ключи или незащищенные данные для ускоренного подбора ключа позже) Это параноя или в какой-то степени может быть оправдано? И если последнее, то вечный вопрос: где утечка и как защититься?

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

Всё, опять же, определяется разменой безопасности на удобство. Если данные критичны, то делаешь всё так, как ваш знакомый, всё верно:
  1. Отключаем интернет.
  2. luksOpen
  3. Работаем с данными
  4. luksClose
  5. Затираем все следы от данных в /tmp, /var и проч.
  6. Подключаем интернет

Понимаете, дело же ещё вот в чём может быть: если у вас стоит минималистичный UNIX, в котором вы знаете дословно все запущенные процессы, хорошо понимаете как что работает, всё под контролем pf/iptables — это одно (достаточно закрыть доступ в сеть только для одного конкретного юзера и не пользоваться программами, которые пишут в /tmp и /var). Если же у вас очередной монстр типа винды, убунты или ещё чего, то крайне маловероятно, что вы знаете все детали того, как оно работает. Может быть, оно захочет под секретным юзером что-то профилактически обновить, синхронизироваться с чем-то или ещё что в голову прийдёт — гарантий никаких при работе под таким юзером. Часто проще не думать обо всём вышенаписанном, а просто выдёргивать провод, когда надо.

Скажу честно, что, например, под моей убунтой я сделал себе монитор всех залогиненных юзеров, чтобы видеть, кто в текущий момент в системе помимо меня. Периодически (не так-то редко) я вижу, что результат команды (это из конфига ~/.screenrc)
backtick 1 10 10 sh -c "users |sed 's/МОЙ_ЮЗЕР //g;s/МОЙ_ЮЗЕР//'"
выдаёт мне, что появляется на несколько секунд залогиненным тот юзер, в которого я вообще не залогинен никаким боком. Что это — для меня загадка до сих пор. Появляется на секунды 3 где-то, потом исчезает. Надеюсь, что меня не протупит очередной раз, и я-таки успею запустить ps auxww в нужный момент. Вот зачем убунте надо периодически что-то выполнять из-под некоторого юзера, если он даже не залогинен? Просто мистика какая-то. Так что не трогайте вашего знакомого: он защищается, как умеет.
Гость (09/04/2012 22:05)   
Если в виртуалке, то можно :)
Вы не "вкурили". Троян-кейлоггер может записывать нажатия клавиш при вводе пароля и сохранять их вне виртуальной машины, а при последующем подключении к интернету сливать записанное ранее. Также он может записывать снимки экрана и оперативной памяти. А при получении пароля и расшифровывать содержимое диска напрямую.
Гость (10/04/2012 02:20)   
Если мы считаем, что уязвимости в самой виртуалке (типа Xen) нет, то виртуальная машина в принципе не может ничего сохранять вне себя и той части диска, которая ей доступна (разве что в интернете). Всё, что может утечь злоумышленнику в таком случае — информация, которая проходила когда-либо через виртуалку, либо была ей доступна. Прямого доступа к железу у виртуалки нет. И виртуалка имеет доступ только к тому куску оперативной памяти, который ей был выделен хост-осью.
Гость (10/04/2012 14:45)   
виртуальная машина в принципе не может ничего сохранять вне себя и той части диска, которая ей доступна
Откуда виртуальная машина по вашему берёт нажатия клавиш с реальной клавиатуры? Между ними стоит драйвер реальной системы, и вот за этот драйвер и можно цеплять троян, работающий в реальной системе.
Гость (10/04/2012 15:23)   
Откуда виртуальная машина по вашему берёт нажатия клавиш с реальной клавиатуры?
Гипервизор виртуальных машин ей передает, а он берет от внешней (dom0) системы стандартным способом. Сейчас речь идёт про троян в виртуалке (гостевой ОС, domU), а не в host OS (dom0); и если уязвимости в самом гипервизоре нет, а dom0 не скомпрометирован, то троян в domU вам ничего не даст.
Гость (10/04/2012 15:47)   
Сейчас речь идёт про троян в виртуалке
Я вёл речь о трояне снаружи.
если уязвимости в самом гипервизоре нет, а dom0 не скомпрометирован, то троян в domU вам ничего не даст
Вот уже два условия, и чтобы надёжно обеспечить второе не надо ходить в интернет из реальной системы никогда. Много вы таких пользователей Windows видели?

И вообще, если у нас нигде нет уязвимостей, то и утечки информации не будет, и говорить не о чем :)
Гость (10/04/2012 16:03)   
чтобы надёжно обеспечить второе не надо ходить в интернет из реальной системы никогда
Имелось в виду несколько не это. В реальной системе может быть минимум софта, и софт этот может быть очень надёжным: никаких там браузеров, проигрывателей и прочего — только файерволл (например, только тот софт, который входит в базовую систему *BSD). В виртуалке же может быть всё, что угодно. Тогда залоумышленник, даже получивший права root'а в виртуалке, так и не узнает, на каком железе она запущена. Даже если злоумышленник знает, например, MAC-адрес вашей сетевой (железо когда-то было скомпрометировано полностью, а вся инфа слита вовне) и захочет проверить эту гипотезу из виртуалки, ему это не удастся. Я, собственно, только это и хотел сказать. Всё, что известно domU — только точная версия процессора, и всё.
Гость (02/06/2012 18:43)   
Периодически (не так-то редко) я вижу, что результат команды ... выдаёт мне, что появляется на несколько секунд залогиненным тот юзер, в которого я вообще не залогинен никаким боком. Что это — для меня загадка до сих пор.

Предположительное объяснение таково: когда заканчиваю работу под специальным юзером, проверяю, не остались ли от него какие-то процессы1. Для гарантии используется pkill -9 -U спецюзер. Эта команда убивает нужные процессы, но запись об этих процессах в файле /var/run/utmp, который как раз и читают команды who, w и users, остаётся2. Спустя какое-то время появляется новый процесс из-под основного пользователя, имеющий тот же pid, что и ранее умерший от специального пользователя3. В этом случае команды w, who и users начинают писать, что запущена такая-то программа от имени специального юзера, да ещё и указывая тот tty, который был у давно умершего процесса.

Видимо, ранее наблюдавшееся означает то, что появлялись короткоживущие процессы и потому их не удавалось засечь. Кроме того, я полагал, что они обозначат себя и в ps aux, но это не так: согласно ps владельцем процесса будет числиться именно основной пользователь, от которого этот процесс на самом деле и запущен. В конце концов, случился час X, приведший к появлению долгоживущего процесса, что и позволило изучить ситуацию более подробно.

Что касается выводов, есть суп из рекомендаций:
  • Сначала убивать процессы мягко (pkill -2), давая им завершиться корректно и самим затереть о себе информацию в utmp.
  • Обнулять файл utmp руками.
  • Написать скрипт, который оттуда будет вырезать оттуда этих своего рода «зомбяков» после выполнения команды pkill -9.

P.S.: Параноя до добра не доводит :)


1Обычно они остаются, даже если разлогиниться через интерфейс и закрыть все шеллы — всякие там gnome-session, что-то связанное со screen и т.д.
2Файл /var/run/utmp также содержит pid процесса, но дёшево его не узнать — только разбираться с бинарным форматом руками.
3Это ничему не противоречит, т.к. с точки зрения ОС pid уже свободен и никем не используется.
Гость (24/08/2014 02:44)   

А в Debian ничего такого нет при тех же условиях, так что объяснение не работает, вопрос остаётся открытым.
Гость (09/02/2015 07:59)   

Напомнило:

Э[link1]тот ключ никогда не хранится на подключённой к сети системе. Он размещён на отторгаемом носителе в криптоконтейнере с двухфакторной системой защиты, т.е. доступ к контейнеру обеспечивается по парольной фразе и аппаратному шифровальному ключу, при этом последний физически всегда находится при мне. Всё это делает несанкционированное использование ключа сертификации практически невозможным.

Я лично, опираясь на всю ту информацию, которая здесь когда-либо публиковалась, с предубеждением отношусь к аппаратным шифровальным ключам, но, может, чего-то важного просто не знаю. Может быть, SATtva теперь тоже считает, что gpg-remote на удалённой машине или в виртуалке даёт в совокупности не меньшую степень защиты.

Фраза «не хранится на подключённой к сети системе» тоже осмысленна лишь в том случае, если для работы с ключами используется физически отдельный «air gappped» компьютер, информация на который передаётся только через sneakernet[link2].* А если просто время от времени к компьютеру подключается носитель с определённой информацией, это концептуально уже не отличается от того случая, когда информация просто хранится локально.** Просто в случае gpg-remote нужно будет ломать сам сервис, ОС (удалённо) или гипервизор, а в случае аппаратной смарткарты — программный интерфейс к ней. Второй случай считается надёжней первого?


* Т.е., формально это всё равно компьютер, подключённый к сети ☺ — опыт stuxnet[link3] подтверждает.
** Грамотный руткит/троян сворует её в момент подключения внешнего носителя, а потом сольёт, когда будет доступ в сеть.
Гость (09/02/2015 11:19)   

Речь идет о токенах? шифрование Здесь[link4] нет такого определения.

Как быть с интернет-банкингом? Возить платежки нарочным?
— unknown (09/02/2015 11:36, исправлен 09/02/2015 11:42)   

Некоторые вопросы[link5], требующие серьёзных компромиссов с неидеальной суровой реальностью, к сожалению, никак по серьёзному не решаются. Т.е. ответ будет или такой же несерьёзный как и вопрос, в виде очередного упражнения в остроумии на уровне «хихи-хаха»; или какой-то жалкий компромисс; или предложение отказаться от безопасности в этом вопросе; или да — нечто неудобное: возить на бумажке, не пользоваться мобильным и т.д.

Гость (09/02/2015 11:54)   

Ну вопрос риторический и не требует ответа. Очевидно, что в некоторых вопросах требуется компромисс.
Любое средство передвижение несет в себе риск потери здоровья вплоть до летального, но мы же ими пользуемся. Жить вообще опасно.
Гость (09/02/2015 11:56)   
А как на счет аппаратного гипервизора, когда виртуальная мошина работает только на голом железе,
bare metal hipervisor. Ведь в этом случае гипервизор ставица на голое железо в качестве типа оси,
а далее он выполняет виртуальную систему, подобно vmware esx server. Тогда исключается прослойка в виде
так называемой HOST системы. А интернет да, надо отрубать. А при установки виртуальной машины
всегда можно отказаться от установки ее сетевых драйверов, тогда получается виртуальноясистема без сети вообще
( это верно для vmware, так как в virtualbox Тоже можно отказаться, но в сам виртуалбокс вшит NAT сервер).
Но введь NAT виртуалбокс можно прикрыть фаерволлом, Iptables без проблем, а под виндовс можно вообще
запускать с флешки, тогда машина запускается без сети и без USB, но нат все равно нодо крыть фаерволлом.
http://www.vbox.me/
Гость (09/02/2015 12:24)   

Чем вам, в таком случае, не нравится вариант с LiveCD?
Гость (09/02/2015 12:43)   
Чем вам, в таком случае, не нравится вариант с LiveCD?


Да, дествительно? Просто береш физически вынимаеш
из компа харддиск для пущей щизофрении, и выдергиваеш
сетевой шнур для большей параннойййи. И все просто ништяк.
Тот же самый херли буут сиди чем не вариант (HerensBootCD)
Гость (09/02/2015 12:46)   
Да, дествительно? Просто береш физически вынимаеш
из компа харддиск для пущей щизофрении, и выдергиваеш
сетевой шнур для большей параннойййи. И все просто ништяк.
Тот же самый херли буут сиди чем не вариант (HerensBootCD)


Да, господа, вы не забывайте что в самой BIOS
может крыться всякая пароноидальная шизофрения,
котороя может нехило пасти на аапаратном уровне,
ведь если в жесткие диски умудряются впихивать прошивки в промышленных масштабах,
то здесь как раз два три.
Гость (09/02/2015 12:57)   
Ну вот круг замкнулся на Биос.
100500-й раз обсуждение уходит/приходит к проблеме закладок в железе.

Единственный выход: Сделать свое железо и написать свой БИОС.
Гость (09/02/2015 13:01)   

А что с ним не так? У меня штучка, подобная этой[link6], лежит на полке, есть не просит.
Гость (09/02/2015 13:08)   
А что с ним не так? У меня штучка, подобная wwwэтой, лежит на полке, есть не просит.


А по подробнне можеш обьяснить как эта штучка работает,
че то все по англиски нам бы по русски
Гость (09/02/2015 13:16)   

А что с ним не так? У меня штучка, подобная wwwэтой, лежит на полке, есть не просит.


Типа это что, типа как в супермаркетах типа банковский терминал,
или как это правильно называется? Типа сунул карту и ввел пинкод и накассе все засчиталось?
Гость (09/02/2015 13:17)   
А что с ним не так? У меня штучка, подобная wwwэтой, лежит на полке, есть не просит.


А где такие щтучки продают?
А как их использовать, для них нужен какой то софт?
Соединение с интернетом ведь обязательно?
Гость (10/02/2015 04:21)   

Были[link7] комментарии на эту[link8] тему.


Универсальное название не знаю, у нас называется (банковскими) кардридерами. К банковским и магазинным терминалам это отношения не имеет.


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

Ранее, до перехода на кардридеры, использовались какие-то хардварные токены, подсоединяемые к компьютеру. Насколько я знаю, решение не особо стандартизированное и проприетарное, у каждого банка своё. Т.е. кардридер одного банка не заработает для другого (если вообще не заблокирует карту).

Как я понял, в России (а, по большому счёту, в большинстве стран/банков мира) решения с кардридером не используются.


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


Нет, ничего не нужно. Это полностью оффлайновый своего рода терминал.
Гость (10/02/2015 04:33)   

Нет[link9]. Кстати, есть[link10] тут ещё[link11] комментарии в тему.
Гость (10/02/2015 04:39)   

При отключении[link12] России от SWIFT[link13] эта тема надолго потеряет актуальность, им бы для начала надо будет хотя бы с обычным нечипованным пластиком разобраться.
Гость (10/02/2015 08:25)   
Нет, ничего не нужно. Это полностью оффлайновый своего рода терминал.


Звучит и выглядит привлекательно, тем более что связь с компом не требуется, вро де как безопасно.
Тоесть это устройство используется только для получения некой случайной информации, котороя
необходима для совершения денежной операции через интернет, правильно? Тоесть если что и может пойти не так,
то в этом сама такая приборина повинна не будет, надо уже пинять на сам компьютер и вирусняк и тд, то что тебя может
подломить от компа до банка, типа фишинг и тог далее?
— unknown (10/02/2015 09:45, исправлен 10/02/2015 09:51)   

RSA SecurID[link14] — это оно? В Вики по-русски[link15] тоже достаточно подробная статья.

Гость (10/02/2015 11:38)   

Да. Случайная информация, видимо, выводится из PIN-кода, времени, и, возможно, ещё какой-то информации, зашитой на чипе. Такая аутентификация может требоваться не только для денежных транзакций, а, в том числе, и для других операций, как то: зайти на страницу интернет-банкинга, сменить свой почтовый адрес в настройках, поменять иные настройки в интерфейсе и т.д.


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


Вряд ли. Может быть, есть что-то общее с ним, но не знаю. Корректную ссылку я уже дал[link16]. Нароете если больше, то нароете, я других деталей не знаю. К тому же, RSA SecurID, судя по фотографиям, не умеет читать банковские карты, и у него 6 цифр на токене, в то время как у кардридера, который я видел, 8. Потом, кардридеры в рамках банка инварианты по отношению к картам: с одинаковым успехом можно использовать кардридер как свой, так и соседский для подписи транзакций, если у соседа он от того же банка и типа карт. Конечно, сосед может в свой кардридер скимер подсунуть, чтобы узнать ваш PIN-код. :-)
— sentaus (10/02/2015 12:18)   
Вряд ли. Может быть, есть что-то общее с ним, но не знаю. Корректную ссылку я уже дал.

Та штука – это вроде картридер с собственной клавиатурой – чтобы защитить пин от перехвата в случае злонамеренности терминала. В общем, замысел тут в том, что у клиента есть устройство, которому он может доверять.
Гость (10/02/2015 12:24)   
Sentaus, у вас в Германии нет таких штук?

чтобы защитить пин от перехвата в случае злонамеренности терминала.

Какого ещё терминала? PIN не передаётся же никогда, только пароль (в интернет-банкинге).
Гость (10/02/2015 12:27)   
По этой схеме (с кардридером) также работают платежи на интернет-магазинах. При платёжке картой сначала приходится ввести её данные, а потом выхлоп с кардридера, на котором набивается PIN-код и цифры, выданные сайтом. Зато телефон ни на каком этапе не нужен.
— sentaus (11/02/2015 11:41)   
Какого ещё терминала? PIN не передаётся же никогда, только пароль (в интернет-банкинге).

Тогда пардон, я неверно понял, что это за устройство. Я думал, что это кардридер, который подключается, например, по USB и имеющий свою клавиатуру – чтобы кейлоггером было пароль не увести. "Терминал" тут в наиболее широком смысле.
— unknown (11/02/2015 12:02, исправлен 11/02/2015 12:04)   

Есть прямо в виде карточек[link17]. Где-то планировались проекты смарт-карт со встроенной номерной клавиатурой и экраном на электронных чернилах, которые потребляют очень мало энергии и способны годами работать от встроенной батарейки. Грубо говоря, это аппаратный хэш-KDF от встроенного ключа и часов для одноразовой парольной аутентификации. Клавиатура используется для подстройки часов, ввода PIN и доступа к простейшим функциям. На карточке есть экран для вывода краткосрочных пинов, которые надо перепечатать на клавиатуре компьютера, подключённого к интернет. Сама карточка в таком сценарии физически ни к чему не подключается. Для интернет-оплаты и банкинга было бы удобно.

Гость (11/02/2015 12:51)   

Не, не, там всё, как unknown описал. Это именно отдельное air gapped устройство, оно не подключается ни к чему и никогда, там и интерфейсов никаких для подключения нет. Это просто как калькулятор на столе.


Они тут просто пошли дальше: совместили кардридер (в этом[link16] смысле) и саму карту в единое устройство.


С кардридером оно ровно так и работает, просто его нужно с собой дополнительно всюду таскать. Они потом дальше разработали мобильный банкинг — это возможность делать интернет-покупки онлайн через смартфон, аутентифицируются они точно так же через кардридер. Однако, тенденции таковы, что им хочется пойти ещё дальше и нарушить безопасность в пользу удобства: сделать привязку платежей не к карте на чипе, а к параметрам чипа на самом смартфоне, т.е. объединить банковскую карточку, телефон и кардридер в одно устройство. Поскольку аутентификация транзакций будет привязана к секрету на чипе телефона, пока телефон не потерялся, посторонние не смогут сделать покупку. Параллельно для пущей безопасности это хотят привязать к position based cryptography. Конечно, основной метод фишинга при этом всё равно остаётся (взлома софта на смартфоне, при котором более нельзя доверять ничему, что написано на экране).
— unknown (11/02/2015 13:33)   

Мало того, что надо палить им свой телефон, так ещё и GPS-координаты?
Гость (11/02/2015 13:42)   
А вы как хотели? С другой стороны, если в разумных рамках, можно просто очертить ареал обитания, как и в случае с кредитными картами: например, принимать только те платёжки, какие совершены с телефона, находящегося в конкретном городе.

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

«Position based crypto», кажется, встречалось даже квантовое.

Ссылки
[link1] http://www.vladmiller.info/services/cert.html

[link2] https://en.wikipedia.org/wiki/Sneakernet

[link3] https://en.wikipedia.org/wiki/Stuxnet

[link4] https://ru.wikipedia.org/wiki/Аппаратное

[link5] https://www.pgpru.com/comment61545

[link6] https://en.wikipedia.org/wiki/Chip_Authentication_Program

[link7] https://www.pgpru.com/comment53329

[link8] https://www.pgpru.com/comment83504

[link9] https://www.pgpru.com/comment53332

[link10] https://www.pgpru.com/comment54045

[link11] https://www.pgpru.com/comment54069

[link12] http://inosmi.ru/russia/20140927/223278337.html

[link13] http://expert.ru/2015/01/26/dubinka-swift/

[link14] https://en.wikipedia.org/wiki/SecurID

[link15] https://ru.wikipedia.org/wiki/SecurID

[link16] https://www.pgpru.com/comment87777

[link17] http://www.tokenguard.com/RSA-SecurID-SID900.asp