Не знаю с чего, но большинство людей считают TOR чем-то бессмысленно-бесполезным в плане использования его для обеспечения анонимности. Но… Так для затравки… До сих пор нет еще ни одной новости о поимке хакера, использующего TOR. Прецедентов нет. Это может говорить о том что это либо невозможно, либо возможно, но не афишировалось. На данный момент я склоняюсь к варианту почти невозможно. И в этой статье я попытаюсь вас убедить согласиться со мной.
Самые наблюдательные из вас заметят, что даже в википедии описан способ с помощью которого можно вычислить пользователя… Но есть еще одно НО. Это единственная описанная возможная атака, которая работает лишь в лабораторных условиях. Но об этом дальше.
В интернете есть такая интересная штука: Спецификация протокола TOR. Там изложено довольно подробное описание самого протокола. Я думаю не стоит вдаваться в его описание в данной статье (тем кто очень любопытен – может изучить документ по ссылке выше), я лишь попытаюсь перевести на понятный язык и изобразить его в общих чертах.
Но для начала давайте разберем описанную в википедии атаку..."
Подробнее поссылке выше.
Теперь когда вы немногго в курсе, можно начать говорить о спецификациях.
По поводу разделения Tor-трафика по доменам (IsolateDestAddr).
Пусть противник Adversary контролирует веб-ресурс Site. Пусть также он контролирует n узлов сети Tor, среди которых относящиеся и к разным Exit, и к Middleman, и к Guard. Adversary также владеет d уникальными доменами. На Site он создаёт страницу, которая по возможности незаметно подгружает данные с веб-страниц d, например ссылки на однопиксельные картинки. Tor-клиент пользователя попытается построить d цепочек, которые пойдут через его Guard через d Exit'ов, т.е. клиент будет строить цепочки так, что все Exit'ы будут по возможности разными. Так на стороне Site Adversary будет выявлять факт использования разделения трафика по доменам (профилирование).
Пусть d — велико (сотни). Вероятно, клиент пользователя не сможет построить столько цепочек и не догрузит страницу (это лимитируется в т.ч. в самом клиенте). Однако, если в самом конце страницы Site использована какая-нибудь полоска прозрачных пикселов (один в высоту, сотни в ширину, назовём её d-метка), то её недогрузка не будет сильно заметна. Хотя браузер и будет показывать, что что-то грузится, хотя страница вроде как полностью загрузилась, но в Tor такие подвисания бывают часто и выглядят естественно. К тому же, d-метку можно вбрасывать пользователю не каждый раз. Кстати, для любого не https-site это может делать не только непосредственный владелец сайта, но и злонамеренный Exit и Exit - MiTM-er - Site. Т.е., Adversary может контролировать подставной веб-ресурс http-Site опосредовано, просто вклиниваясь в трафик с Exit.
Все d-соединения к одному ресурсу Site пойдут через множество цепочек, а не через одну как обычно. Это увеличивает возможность противника найти корреляцию Exit - Middleman - Guard и установить Guard пользователя. А если выпадет, что этот Guard (или отчасти, линк [пользовательский ISP] - Guard) окажется подконтрольным противнику, то ему не составит труда установить и IP-адрес пользователя.
Что интересно — в скрытых ресурсах (HS-onion) аналогичная опция используется по умолчанию: цепочка до каждого onion строится индивидуально. В принципе, можно и там заманить пользователя на компрометирующий onion (например, взломанный и/или подконтрольный), который будет гонять трафик пользователя по множеству цепочек, как внутри HS, так и наружу.
Что мы имеем в итоге: некая мультидоменная полоска пикселов или других элементов (d-метка) никак не мешает обычным пользователям Tor. Она может быть и составной: сначала она содержит несколько пикселов или элементов (мини-d-метка), а при выявления разделении трафика по доменам — вызывать вторую, уже полноценную d-метку.
Легко выявляются все пользователи с разделением трафика по доменам.
Пользователей с разделением трафика гоняют по множеству разных параллельных цепочек с точкой инициирования Site и точками выхода на подконтрольные противнику домены d, потенциально увеличивая вероятность нахождения деанонимизирующих корреляций в десятки и сотни раз по сравнению с обычным Tor-соединением (в зависимости от того, сколько цепочек может построить клиент).
Атака м.б. малоресурсозатратна. Расходы на домены d и подконтрольные узлы Tor n невелики, по сравнению с потенциальным эффектом усиления деанонимизации.
Атаку можно осуществлять в любом из трёх мест: Exit, MiTM, Site. В случае Exit и MiTM можно использовать существующие сайты в качестве подставных, используя модификацию HTTP-трафика, хотя это потенциально более заметно и такой Exit могут вывести из Tor-сети.
Грубо говоря, я так понял, Tor хотят научить грузить всё, что открыто в заданной вкладке браузера, через одну редко меняемую цепочку (15 минут или сколько оно там сейчас). А всё, что открыто в другой вкладке (в общем случае, другой домен) — через другую цепочку.
Я привык серфить инет через Torbrowser. Но иногда нужно посмотреть какое-то видео, а через Torbrowser это не рекомендуется - самые высокие настройки приватности запрещают audio/video.
На помощь приходит утилита youtube-dl, которую можно запускать через Tor. Устанавливать желательно самую свежую версию с сайта, т.к. она поддерживает гораздо больше разных сайтов. Устанавливаем:
sudo wget
https://yt-dl.org/downloads/2015.07.28/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
Кроме этого, в системе должен стоять пакет tor. Если tor не стоит:
sudo apt-get install tor
Использовать так:
torsocks youtube-dl [ссылка на страницу с видео]
В текущую папку скачается видео, которое можно посмотреть через VLC или любой другой плеер. В т.ч. поддерживаются сайты вроде 1tv.ru и redtube
Если пользуетесь Torbrowser (и не хотите лишний tor ставить), то можно качать и через него. Установите proxychains:
sudo apt-get install proxychains
В конце файла /etc/proxychains.conf измените последнюю строчку на socks4 127.0.0.1 9150
Качать так:
proxychains youtube-dl [ссылка на страницу с видео]
Ответы на вопросы, которые могут возникнуть после прочтения статьи:
А что насчёт шифрования данных на компе?
Программ для шифрования приличное количество, главные условия использования - открытый код и внимание разработчиков. Внимание стоит обратить на TrueCrypt и DiskCryptor для Windows; cryptsetup
что насчёт VPN?
Для самых маленьких: это штука, к которой ты подключаешся с домашнего компа, и теперь ты как-будто бы сидишь за компом где-нибудь в США. Следует понять одну важную вещь: VPN, в отличие от Tor’а, не пытается достичь анонимности пользователя, стремясь более к приватности и помогая обойти часть цензуры провайдера. По сему – целесообразность его использования в качестве анонимизатора кажется несколько сомниетльной.
2p или Tor (вечный вопрос, похоже)?
Если нужен простой ответ - Tor. Но лучше всего изучить вопрос самостоятельно - у каждого варианта есть свои особенности. Погуглите и почитайте, попробуйте и выберете.
Насколько безопасно использовать Skype\ICQ\Brosix и т.п. мессенджеры?
Совсем-совсем небезопасно. Хорошо, если они только саму переписку сольют, ибо эти адские машинки ещё и потырить или загрузить чего вполне в состоянии. Если очень надо, ICQ и многие другие протоколы можно использовать с помощью транспортов jabber (гуглите).
Если выходная нода снифает мой трафик, буут ли скомпрометированы данные для входа к этому сайту?
К .onion сайтам - нет. Они вообще не используют exit'ы и могут работать без их наличия. Для сайтов клирнета - если соединение нешифрованное (без https...), то да.
Какие сервисы для бекапов информации наиболее предпочтительны в плане безопасности?
Те, которые предоставляют доступ по SSH. По сути, подойдет любой простенький VPS, их можно приобрести за дешево и полностью анонимно. Остальные проприетарные решения по типу Dropbox не могут обеспечить надежное хранение данных, хотя могут быть более удобными и практичными.
Ещё как вариант mega.nz . Но если речь заходит о хранении действительно "личной" информации, то лучше всё таки VPS.
Какие существуют безопасные мессенджеры?
Наиболее безопасное ПО - с открытым кодом. Наиболее популярные мессенджеры с открытым кодом - Miranda (только для Windows), Psi+ и Pidgin (кросс-платформенные).
что такое OTR?
Off-the-record - алгоритм обмена шифрованными сообщениями в реальном времени, используется в различных Jabber-клиентах для безопасного общения.
Так почему же небезопасно использовать Windows?
Из-за закрытого кода. Неизвестно, что конкретно делает операционная система, какие конкретно данные передает при обновлении и работе с Интернетом вообще. Такое поведение очень схоже с вредоносными программами - вирусами, троянами и т.д.
Актуально ли использование Tor в связке с другим браузером?
На ПК - однозначно нет. Tor Browser Bundle является лучшим в плане безопасности выбором, не стоит заниматься самодеятельностью.
безопасные программы для передачи голоса.
Сложный вопрос, и однозначного ответа на него нет. Возможно когда-нибудь таковой станет программа Tox. Но для передачи действительно важной информации следует использовать традиционные решения передачи зашифрованного тексто.
Так же я часто пользуюсь Tails с флешки. Вот, может кому то пригодится.
1. Как установить Tails?
Лучше всего прожечь образ Tails на DVD-диск, загрузиться с него и через встроенный установщик сделать загрузочную флешку (емкостью от 8 гигабайт и выше):
Applications » Tails » Tails Installer » Clone & Install » [Внимательно выбираем устройство для установки] » Install Tails
Из-за специфики дистрибутива и возможных ошибок остальные варианты подойдут только продвинутым пользователям, которые точно знают, что делают.
2. Как включить возможность сохранять свои данные (файлы, программы, закладки и т.д.)? | Как активировать Persistent Volume (постоянное хранилище)?
Загрузиться с флешки с Tails (как это сделать правильно см. выше) и создать специальный зашифрованный раздел для хранения данных:
Applications » Tails » Configure persistent volume » [Отмечаем всё] » [Ждём]
Перезагружаемся, задав пароль и включив Persistent.
3. Как установить свои программы в Tails?
Устанавливать также как и в обычном Debian Linux, любым способом:
- в терминале от суперпользователя root
apt-get update
apt-get install [название пакета]
- через менеджер пакетов Synaptic
4. Как сделать, чтобы установленные программы сохранялись после перезапуска?
Открываем файл /live/persistence/TailsData_unlocked/live-additional-software.conf, вносим туда строки с названием пакетов по порядку в столбик. Или тоже самое командой из терминала:
echo [название пакета] >> /live/persistence/TailsData_unlocked/live-additional-software.conf
5. Как сохранять настройки программ? | Как сделать чтобы настройки программ сохранялись после перезапуска?
Путём переноса конфигов в папку /dotfiles, находящуюся на persistent-разделе
На примере FileZilla: настраиваем как надо, затем копируем /home/amnesia/.mozilla в /live/persistence/TailsData_unlocked/dotfiles
Поверьте, оно того стоит.
Теперь коснёмся не менее важнйо темы.
TrueCrypt - самая удобная программа для стойкого шифрования данных. Думаю, она достойна отдельной темы
Критика в ее сторону в основном идет относительно несвободной лицензии и закрытой разработки, не смотря на открытость самого кода программы. Мол, распространять ее в связи с лицензией проблематично, дорабатывать практически невозможно, а анализ самого кода затруднен из-за отсутствия changelog`ов. Так вот наткнулся я недавно на интересный документ, где (вроде бы) знающие люди и проанализировали поведение программы.
https://www.privacy-cd.org/downloads/truecrypt_7.0a-analysis-en.pdf Вывод из статьи: TrueCrypt - безопасная программа, делает то, что заявлено, однако не рекомендовано использование только ключевого файла. Т.е. использовать или пароль, или связку пароль+ключевой файл.
Этот вопрос долго меня мучал (можно ли поднять RAID на облачном хостинге+хдд?
Как себе я это представляю:
Монтируются хдд и облако, включается RAID.). Но я нашёл ответ.
Не, так нельзя по ряду причин:
1. RAID при запуске пробегается по всем данным всех накопителей, синхронизирует их, определяет нерабочие диски и т.д. В случае дистанционного монтирования 100 Гб, однократный запуск такого RAID 1 может занять от нескольких часов до нескольких дней.
2. RAID выстраивает метаданные (чексуммы) при записи новых данных. RAID 1 режет на куски и зеркалит данные с метаданными по всем накопителям. Как уже сказали выше -- это будет очень сильно лагать.
Однако, для удаленного и безопасного хранения уже давно используется набор довольно простых решений.
1. webdav + encfs. Можно поверх всяких яндекс-дисков включить прозрачное шифрование как данных, так и имён файлов/папок. Конфиг.xml с зашифрованным ключом можно хранить вне удаленного сервиса чтобы снизить существенно шансы на криптоанализ. Недостатки - отсутствие буферизации, надежности при записи, тормоза на мелких файлах и директориях с кучей файлов. Монтируется в linux одной командой:
ENCFS6_CONFIG=".ecnfs6.xml" encfs -S /mnt/webdav-encrypted /mnt/decrypted -- -o big_writes,nonempty
2. Расшаренное по сети сырое блочное устройство. Обычно берется удаленный сервак за бугром, с RAID'ом. Размечается раздел на его RAID'е и форматируется случайными числами (cat /dev/urandom > /dev/sda1). Параллельно этом же серваке поднимается openvpn server. Затем к серваку коннектятся с локалхоста, форматируют винч через cryptsetup, размечают разделы, запускают у себя виртуалку, которая юзает этот зашифрованный удаленный винч (спрашивает пароль при запуске). Так может работать файловый сервер для конторы на вполне сносной скорости. После некоторой оптимизации и допиливания, будет вообще всё летать. Естественно, пароль для монтирования знает лишь пара человек.
3. tahoe-lafs. Поднимается на множестве серваков. Вместо данных хранит однородную кашу. Все данные режутся, шифруются и перемешиваются _на_клиентах_. Из минусов -- низкая скорость работы на мелких файлах, есть кое-какие проблемы с монтированием под ряд задач, написана на python, сложна в эксплуатации, нельзя просто удалить уже загруженный файл (есть только разыменование объекта и отложенный малоуправляемый сборщик мусора для высвобождения места). Из плюсов -- всё надежно реплицируется (надежность хранения задается на клиентах), всё (папки, файлы, данные, etc) шифруется до уровня "какая-то однородная каша", все права доступа распределяются на клиентах иерархически через криптографичекие ключи доступа к соотв.файлам и папкам. Иными словами, серверы-хранилища вообще не знают, что на них хранят, не требуется RAID на них.