TrueCrypt + Internet
Насколько безопасна данная связка? Один мой знакомый принципиально не использует TC когда компьютер подключен к интернету под виндами (боится, что из сети узнают ключи или незащищенные данные для ускоренного подбора ключа позже)
Это параноя или в какой-то степени может быть оправдано? И если последнее, то вечный вопрос: где утечка и как защититься ?
Ссылки
[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
Кроме трояна, вариантов утечки не вижу.
Уж если на то пошло, то не надо подключать к интернету компьютер, на котором когда-либо вводилась какая-либо секретная информация (например, пароли), ибо троян-кейлоггер или иные "недокументированные функции ОС или железа" могли её запомнить что-бы передать "кому следует" при появлении сетевого подключения.
Если в виртуалке, то можно :)
Не совсем про это, но будет близко, если сказать, что при работе с секретной информацией доступа в интернет из текущей ОС (или из виртуалки, имеющей доступ к такой информации) по уму быть не должно. Если у вас есть возможность так настроить — это плюс. И той ОС-виртуалке, которая получает секретную информацию, совершенно нет необходимости иметь доступ ко всему массиву информации, хранящегося на диске. Итого, только для анонимного доступа нужны как минимум 2 виртуальных ОС: одна — для сохранения данных на диск, вторая — для работы с ними.
Всё, опять же, определяется разменой безопасности на удобство. Если данные критичны, то делаешь всё так, как ваш знакомый, всё верно:
Понимаете, дело же ещё вот в чём может быть: если у вас стоит минималистичный UNIX, в котором вы знаете дословно все запущенные процессы, хорошо понимаете как что работает, всё под контролем pf/iptables — это одно (достаточно закрыть доступ в сеть только для одного конкретного юзера и не пользоваться программами, которые пишут в /tmp и /var). Если же у вас очередной монстр типа винды, убунты или ещё чего, то крайне маловероятно, что вы знаете все детали того, как оно работает. Может быть, оно захочет под секретным юзером что-то профилактически обновить, синхронизироваться с чем-то или ещё что в голову прийдёт — гарантий никаких при работе под таким юзером. Часто проще не думать обо всём вышенаписанном, а просто выдёргивать провод, когда надо.
Скажу честно, что, например, под моей убунтой я сделал себе монитор всех залогиненных юзеров, чтобы видеть, кто в текущий момент в системе помимо меня. Периодически (не так-то редко) я вижу, что результат команды (это из конфига ~/.screenrc)
Вы не "вкурили". Троян-кейлоггер может записывать нажатия клавиш при вводе пароля и сохранять их вне виртуальной машины, а при последующем подключении к интернету сливать записанное ранее. Также он может записывать снимки экрана и оперативной памяти. А при получении пароля и расшифровывать содержимое диска напрямую.
Если мы считаем, что уязвимости в самой виртуалке (типа Xen) нет, то виртуальная машина в принципе не может ничего сохранять вне себя и той части диска, которая ей доступна (разве что в интернете). Всё, что может утечь злоумышленнику в таком случае — информация, которая проходила когда-либо через виртуалку, либо была ей доступна. Прямого доступа к железу у виртуалки нет. И виртуалка имеет доступ только к тому куску оперативной памяти, который ей был выделен хост-осью.
Откуда виртуальная машина по вашему берёт нажатия клавиш с реальной клавиатуры? Между ними стоит драйвер реальной системы, и вот за этот драйвер и можно цеплять троян, работающий в реальной системе.
Гипервизор виртуальных машин ей передает, а он берет от внешней (dom0) системы стандартным способом. Сейчас речь идёт про троян в виртуалке (гостевой ОС, domU), а не в host OS (dom0); и если уязвимости в самом гипервизоре нет, а dom0 не скомпрометирован, то троян в domU вам ничего не даст.
Я вёл речь о трояне снаружи.
Вот уже два условия, и чтобы надёжно обеспечить второе не надо ходить в интернет из реальной системы никогда. Много вы таких пользователей Windows видели?
И вообще, если у нас нигде нет уязвимостей, то и утечки информации не будет, и говорить не о чем :)
Имелось в виду несколько не это. В реальной системе может быть минимум софта, и софт этот может быть очень надёжным: никаких там браузеров, проигрывателей и прочего — только файерволл (например, только тот софт, который входит в базовую систему *BSD). В виртуалке же может быть всё, что угодно. Тогда залоумышленник, даже получивший права root'а в виртуалке, так и не узнает, на каком железе она запущена. Даже если злоумышленник знает, например, MAC-адрес вашей сетевой (железо когда-то было скомпрометировано полностью, а вся инфа слита вовне) и захочет проверить эту гипотезу из виртуалки, ему это не удастся. Я, собственно, только это и хотел сказать. Всё, что известно domU — только точная версия процессора, и всё.
Предположительное объяснение таково: когда заканчиваю работу под специальным юзером, проверяю, не остались ли от него какие-то процессы1. Для гарантии используется pkill -9 -U спецюзер. Эта команда убивает нужные процессы, но запись об этих процессах в файле /var/run/utmp, который как раз и читают команды who, w и users, остаётся2. Спустя какое-то время появляется новый процесс из-под основного пользователя, имеющий тот же pid, что и ранее умерший от специального пользователя3. В этом случае команды w, who и users начинают писать, что запущена такая-то программа от имени специального юзера, да ещё и указывая тот tty, который был у давно умершего процесса.
Видимо, ранее наблюдавшееся означает то, что появлялись короткоживущие процессы и потому их не удавалось засечь. Кроме того, я полагал, что они обозначат себя и в ps aux, но это не так: согласно ps владельцем процесса будет числиться именно основной пользователь, от которого этот процесс на самом деле и запущен. В конце концов, случился час X, приведший к появлению долгоживущего процесса, что и позволило изучить ситуацию более подробно.
Что касается выводов, есть суп из рекомендаций:
P.S.: Параноя до добра не доводит :)
1Обычно они остаются, даже если разлогиниться через интерфейс и закрыть все шеллы — всякие там gnome-session, что-то связанное со screen и т.д.
2Файл /var/run/utmp также содержит pid процесса, но дёшево его не узнать — только разбираться с бинарным форматом руками.
3Это ничему не противоречит, т.к. с точки зрения ОС pid уже свободен и никем не используется.
А в Debian ничего такого нет при тех же условиях, так что объяснение не работает, вопрос остаётся открытым.
Напомнило:
Я лично, опираясь на всю ту информацию, которая здесь когда-либо публиковалась, с предубеждением отношусь к аппаратным шифровальным ключам, но, может, чего-то важного просто не знаю. Может быть, SATtva теперь тоже считает, что gpg-remote на удалённой машине или в виртуалке даёт в совокупности не меньшую степень защиты.
Фраза «не хранится на подключённой к сети системе» тоже осмысленна лишь в том случае, если для работы с ключами используется физически отдельный «air gappped» компьютер, информация на который передаётся только через sneakernet[link2].* А если просто время от времени к компьютеру подключается носитель с определённой информацией, это концептуально уже не отличается от того случая, когда информация просто хранится локально.** Просто в случае gpg-remote нужно будет ломать сам сервис, ОС (удалённо) или гипервизор, а в случае аппаратной смарткарты — программный интерфейс к ней. Второй случай считается надёжней первого?
* Т.е., формально это всё равно компьютер, подключённый к сети ☺ — опыт stuxnet[link3] подтверждает.
** Грамотный руткит/троян сворует её в момент подключения внешнего носителя, а потом сольёт, когда будет доступ в сеть.
Речь идет о токенах? шифрование Здесь[link4] нет такого определения.
Как быть с интернет-банкингом? Возить платежки нарочным?
Некоторые вопросы[link5], требующие серьёзных компромиссов с неидеальной суровой реальностью, к сожалению, никак по серьёзному не решаются. Т.е. ответ будет или такой же несерьёзный как и вопрос, в виде очередного упражнения в остроумии на уровне «хихи-хаха»; или какой-то жалкий компромисс; или предложение отказаться от безопасности в этом вопросе; или да — нечто неудобное: возить на бумажке, не пользоваться мобильным и т.д.
Ну вопрос риторический и не требует ответа. Очевидно, что в некоторых вопросах требуется компромисс.
Любое средство передвижение несет в себе риск потери здоровья вплоть до летального, но мы же ими пользуемся. Жить вообще опасно.
А как на счет аппаратного гипервизора, когда виртуальная мошина работает только на голом железе,
bare metal hipervisor. Ведь в этом случае гипервизор ставица на голое железо в качестве типа оси,
а далее он выполняет виртуальную систему, подобно vmware esx server. Тогда исключается прослойка в виде
так называемой HOST системы. А интернет да, надо отрубать. А при установки виртуальной машины
всегда можно отказаться от установки ее сетевых драйверов, тогда получается виртуальноясистема без сети вообще
( это верно для vmware, так как в virtualbox Тоже можно отказаться, но в сам виртуалбокс вшит NAT сервер).
Но введь NAT виртуалбокс можно прикрыть фаерволлом, Iptables без проблем, а под виндовс можно вообще
запускать с флешки, тогда машина запускается без сети и без USB, но нат все равно нодо крыть фаерволлом.
http://www.vbox.me/
Чем вам, в таком случае, не нравится вариант с LiveCD?
Да, дествительно? Просто береш физически вынимаеш
из компа харддиск для пущей щизофрении, и выдергиваеш
сетевой шнур для большей параннойййи. И все просто ништяк.
Тот же самый херли буут сиди чем не вариант (HerensBootCD)
Да, господа, вы не забывайте что в самой BIOS
может крыться всякая пароноидальная шизофрения,
котороя может нехило пасти на аапаратном уровне,
ведь если в жесткие диски умудряются впихивать прошивки в промышленных масштабах,
то здесь как раз два три.
Ну вот круг замкнулся на Биос.
100500-й раз обсуждение уходит/приходит к проблеме закладок в железе.
Единственный выход: Сделать свое железо и написать свой БИОС.
А что с ним не так? У меня штучка, подобная этой[link6], лежит на полке, есть не просит.
А по подробнне можеш обьяснить как эта штучка работает,
че то все по англиски нам бы по русски
Типа это что, типа как в супермаркетах типа банковский терминал,
или как это правильно называется? Типа сунул карту и ввел пинкод и накассе все засчиталось?
А где такие щтучки продают?
А как их использовать, для них нужен какой то софт?
Соединение с интернетом ведь обязательно?
Были[link7] комментарии на эту[link8] тему.
Универсальное название не знаю, у нас называется (банковскими) кардридерами. К банковским и магазинным терминалам это отношения не имеет.
Нет, это просто оффлайновая штука типа калькулятора, которая может автономно взаимодействовать с чипом карты. В самом чипе хранится PIN-код в обфусцированном виде. В кардридер вставляется карточка, потом вводится PIN-код. Кардридер проверяет соответствие введённого с клавиатуры PIN-кода тому, который зашит в чипе. Если они совпали, то можно подписать транзакцию или авторизацию. Для авторизации в интернет-банкинге по сети требуется как ввести свои данные с паролем, так и случайные цифры, выдаваемые кардридером в ответ на PIN-код (каждый раз они разные; наверно, зависят от времени). Для осуществления транзакции также требуется ввести PIN-код и часть цифр счёта, в ответ выдаётся последовательность случайных цифр, авторизующая транзакцию. В общем-то любая операция по изменению настроек в интернет-банкинге требует этих случайных цифр, для получения которых нужно иметь как карту с кардридером, так и знать PIN-код. Если три раза подряд ввести неправильный код, кардридер заблокирует карту, как и банкомат.
Ранее, до перехода на кардридеры, использовались какие-то хардварные токены, подсоединяемые к компьютеру. Насколько я знаю, решение не особо стандартизированное и проприетарное, у каждого банка своё. Т.е. кардридер одного банка не заработает для другого (если вообще не заблокирует карту).
Как я понял, в России (а, по большому счёту, в большинстве стран/банков мира) решения с кардридером не используются.
Нигде, разве что на чёрном рынке. Их выдаёт конкретный банк
за особые заслугисвоим резидентам бесплатно. Плата включается в ежегодную стоимость обслуживания карты. Если пользоваться не часто, одного кардридера хватает на несколько лет, там батарейка внутри.Нет, ничего не нужно. Это полностью оффлайновый своего рода терминал.
Нет[link9]. Кстати, есть[link10] тут ещё[link11] комментарии в тему.
При отключении[link12] России от SWIFT[link13] эта тема надолго потеряет актуальность, им бы для начала надо будет хотя бы с обычным нечипованным пластиком разобраться.
Звучит и выглядит привлекательно, тем более что связь с компом не требуется, вро де как безопасно.
Тоесть это устройство используется только для получения некой случайной информации, котороя
необходима для совершения денежной операции через интернет, правильно? Тоесть если что и может пойти не так,
то в этом сама такая приборина повинна не будет, надо уже пинять на сам компьютер и вирусняк и тд, то что тебя может
подломить от компа до банка, типа фишинг и тог далее?
RSA SecurID[link14] — это оно? В Вики по-русски[link15] тоже достаточно подробная статья.
Да. Случайная информация, видимо, выводится из PIN-кода, времени, и, возможно, ещё какой-то информации, зашитой на чипе. Такая аутентификация может требоваться не только для денежных транзакций, а, в том числе, и для других операций, как то: зайти на страницу интернет-банкинга, сменить свой почтовый адрес в настройках, поменять иные настройки в интерфейсе и т.д.
Что может пойти не так... Классичесский сценарий: вас спамеры просят что-то подписать кардридером, вы подписываете, деньги уходят. Но это примитивно. Есть изощрённый сценарий: троян отображает в документах и на сайте банка не те цифры счёта, какие должны быть, а свои, фишинговые. Если достоверных результатов нет на бумаге, а пользователь доверяет экрану компьютера, то внешне подстава незаметна. Он подпишет кардридером не ту сумму и цифры не того счёта, но с точки зрения банка всё будет аутентифицировано должным образом. Атака может быть приурочена к моменту какой-то легитимной транзакции. SMS-ка с подтверждением тоже может оказаться бесполезной. Пока есть среди звеньев человек, любая технология будет ломаться.
Вряд ли. Может быть, есть что-то общее с ним, но не знаю. Корректную ссылку я уже дал[link16]. Нароете если больше, то нароете, я других деталей не знаю. К тому же, RSA SecurID, судя по фотографиям, не умеет читать банковские карты, и у него 6 цифр на токене, в то время как у кардридера, который я видел, 8. Потом, кардридеры в рамках банка инварианты по отношению к картам: с одинаковым успехом можно использовать кардридер как свой, так и соседский для подписи транзакций, если у соседа он от того же банка и типа карт. Конечно, сосед может в свой кардридер скимер подсунуть, чтобы узнать ваш PIN-код. :-)
Та штука – это вроде картридер с собственной клавиатурой – чтобы защитить пин от перехвата в случае злонамеренности терминала. В общем, замысел тут в том, что у клиента есть устройство, которому он может доверять.
Sentaus, у вас в Германии нет таких штук?
Какого ещё терминала? PIN не передаётся же никогда, только пароль (в интернет-банкинге).
По этой схеме (с кардридером) также работают платежи на интернет-магазинах. При платёжке картой сначала приходится ввести её данные, а потом выхлоп с кардридера, на котором набивается PIN-код и цифры, выданные сайтом. Зато телефон ни на каком этапе не нужен.
Тогда пардон, я неверно понял, что это за устройство. Я думал, что это кардридер, который подключается, например, по USB и имеющий свою клавиатуру – чтобы кейлоггером было пароль не увести. "Терминал" тут в наиболее широком смысле.
Есть прямо в виде карточек[link17]. Где-то планировались проекты смарт-карт со встроенной номерной клавиатурой и экраном на электронных чернилах, которые потребляют очень мало энергии и способны годами работать от встроенной батарейки. Грубо говоря, это аппаратный хэш-KDF от встроенного ключа и часов для одноразовой парольной аутентификации. Клавиатура используется для подстройки часов, ввода PIN и доступа к простейшим функциям. На карточке есть экран для вывода краткосрочных пинов, которые надо перепечатать на клавиатуре компьютера, подключённого к интернет. Сама карточка в таком сценарии физически ни к чему не подключается. Для интернет-оплаты и банкинга было бы удобно.
Не, не, там всё, как unknown описал. Это именно отдельное air gapped устройство, оно не подключается ни к чему и никогда, там и интерфейсов никаких для подключения нет. Это просто как калькулятор на столе.
Они тут просто пошли дальше: совместили кардридер (в этом[link16] смысле) и саму карту в единое устройство.
С кардридером оно ровно так и работает, просто его нужно с собой дополнительно всюду таскать. Они потом дальше разработали мобильный банкинг — это возможность делать интернет-покупки онлайн через смартфон, аутентифицируются они точно так же через кардридер. Однако, тенденции таковы, что им хочется пойти ещё дальше и нарушить безопасность в пользу удобства: сделать привязку платежей не к карте на чипе, а к параметрам чипа на самом смартфоне, т.е. объединить банковскую карточку, телефон и кардридер в одно устройство. Поскольку аутентификация транзакций будет привязана к секрету на чипе телефона, пока телефон не потерялся, посторонние не смогут сделать покупку. Параллельно для пущей безопасности это хотят привязать к position based cryptography. Конечно, основной метод фишинга при этом всё равно остаётся (взлома софта на смартфоне, при котором более нельзя доверять ничему, что написано на экране).
Мало того, что надо палить им свой телефон, так ещё и GPS-координаты?
А вы как хотели? С другой стороны, если в разумных рамках, можно просто очертить ареал обитания, как и в случае с кредитными картами: например, принимать только те платёжки, какие совершены с телефона, находящегося в конкретном городе.
Там были какие-то ещё тонкости, но я уже забыл их. Например, можно сделать так, что если вы переводите на другой счёт кому-то, то потребовать, чтобы этот другой находился с вами в географической близости — это в некотором смысле имитирует требования для передачи наличности из рук в руки, когда вы с кем-то вместе и хотите за него покупки оплатить.
«Position based crypto», кажется, встречалось даже квантовое.