Безопасность SIP-телефонии и, в частности, Ekiga
Насколько безопасно использование SIP-телефонии и, в частности, Ekiga, с точки зрения защиты от СОРМ?
Вопрос связан с тем, что я, будучи хроническим виндовозником, много лет юзар скайп (за который здесь принято кидаться тапками в юзеров оного).
То, что отечественные спецслужбы не могут (или не могли) отследить разговоры по скайп, я убедился на собственном опыте в конец 2007 года, когда Контора для заказчика не смогла выловить человека по скайпу. (В итоге его "приняли", но вычислили совершенно другим способом и на это ушло достаточно длительное время).
Мигрируя на Линукс, я решил следовать заветом оупнсосников и отказаться на линукс системе от скайпа.
Какая может быть ему альтернатива в указанном смысле безопасности?!
Если я звоню по SIP без шифрования – СОРМ меня пишет? Или у них есть свое шифрование, встроенное в ту же Ekig"y?
Ведь со всякими zfone на городские и мобильные телефоны не позвонишь!!!
P.S. Понятно, что при звонках на городские и мобильные телефоны контролировать могут их, но не факт + есть задача не раскрывать место нахождения, откуда производится звонок.
Ссылки
[link1] https://www.pgpru.com/biblioteka/slovarj/analiztrafika
[link2] http://www1.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf
[link3] http://siper.ru/art-sip_vs_skype-1-protokol_marshrutizatsia.html
[link4] https://www.pgpru.com/chernowiki/statji/bezopasnostj/kompjjuterkaknepristupnajakrepostj
[link5] https://www.pgpru.com/comment25761
Ekiga реализует протокол SIP, позволяя вести разговор с абонентом, использующим как Ekiga, так и любую другую программу-клиент SIP протокола. Ширования разговоров не происходит. Для реализации шифрования необходимо использовать zfone или иные способы.
При желании под Linux так же можно использовать Skype.
СОРМ реализует как анализ трафика[link1], так и полную запись переговоров целевых абонентов. Шифрование способно защитить от записи, но никак не от анализа трафика.
Да, если Ваши разговоры представляют интерес.
С любой телефонной связью (включая VoIP) это практически нереально.
При параноидальной модели угрозы это не лучшее решение.
Только не от записи, а от полезного содержимого переданных данных/разговоров. Метаданные и сам факт передачи естественно остаются в логах, что и позволяет производить анализ.
Если хороший канал связи, есть workaround: поднимается vpn-туннель до удалённого хоста, по которому гонится покрывающий трафик с его нормализацией. Впрочем, от атак типа (пре/пере) сечения трафика этот способ ессно не спасёт :) При должной настройке ОС и окружения Skype безопасен, и максимум будет выдавать IP vpn-сервера. Впрочем, всё это очень громоздко для типичного юзера-неспециалиста.
С городскими телефонами зашифрованную связь не установить вообще никак. У обоих сторон должны быть средства для шифрования/расшифрования, в обычных городских телефонах они не предусмотрены.
VPN over phone-modem?
Подключаетесь к некскольким интернет-провайдерам (в том числе и через соседей и спутники) и поднимаете несколько vpn-туннелей.
Есть всякие скремблеры, на трубку надеваются. Можно и модем с ноутбуком попробовать :)
Когда идет звонок по скайп, они, ясен пень, видят трафик.
А в каком виде? В частности, скайп-имена – они в зашифрованном виде передаются, или как?
И когда поступает звонок на городской/мобильный телефон в России, какие данные о том, откуда исходит вызов, видит СОРМ? И может ли он сопоставить с тем, что такой-то абонент скайп в это время куда-то передает пакеты, и значит с той или иной точностью – это звонит он?
И еще. ЧТо касается невозможности шифрования звонков на городские телефоны. Разве скайп не шифрует передаваемые данные не зависимо от того, куда идет звонок? Т.е. понятно, что записать звонок как входящий, поступивший на гор. или моб тел. – это возможно. А можно ли также легко через средства контроля инета получить данные о том, что говорит вызывающий абонент скайпа?
P. S. Я вот не могу понять, как ОНИ два года назад не смогли выловить человека, неужели нельзя было, если СОРМ не позволяет по другому, тупо создать абонента скайп и набрать этому челу? Разве ip-адрес не видет абоненту-корреспонеднту? Просто с помощью wireshark или tcpdump получить этот айпи, и дальше – ясен пень, все просто, приехать за ним туда, откуда он выходит на связь. Это техслужбы просаботировали поручение следствия, или действительно технически невозможно и абонент не видит ip того, с кем говорит? Вроде бы называется "pear-to-pear"...
Думаю, шифруются.
Ну у скайпа есть своя аппаратура, наверное, в куче стран. С неё и исходит. Какой уж там они номер проставляют – не знаю.
В принципе, потенциально – может. Однако, скорее всего, с вероятностью в 99%, автоматизированного решения для этого нет (хотя законы природы и не запрещают его создание). Скорей всего прийдётся обработать гигантскую массу логов, напрячь кучу людей, и вряд ли вычислить удастся за один сеанс, т.к. нужно много данных для поиска корреляций. В общем, скорее относится к разряду гипотетических атак.
Skype шифрует ровно от говорящего и до оконечного узла. Далее оконечный узел "заземляет" звонок, передавая его в обычную телефонную и мобильрную сеть. Поскольку стандартный телефон в принципе не поддерживает никаких средств для работы с шифрованным GSM-сигналом, то, ессно, от данные между оконечным skype-узлом и абонентом в обычной сети не шифруются. А значит, прослушать такой разговор – не более сложно чем самый обычный, достаточно лишь прослушивать не того, КТО звонит, а того, КОМУ звонят. Естественно, прослушать можно разговор полностью, т.е. то что говорят оба абонента.
Да (см. выше).
Когда вы спрашиваете что-то на этом сайте, вам отвечают не на вопрос "могут ли люди из ведомства N сделать то-то или то-то", а на вопрос "можно ли в принципе сделать то-то и то-то, и если да, то как много ресурсов это потребует". Почувствуйте разницу. Именно поэтому, то, что кого-то не нашли ничему не противоречит. Если дело будет госважности – рано или поздно найдут. Тратить миллионы средств и тысячи человекочасов на поиск Васи Пупкина никто не будет. Например, с учётом овтета на вопрос "можно ли в принципе", могу заметить: все логи, кто откуда звонил и куда, почти точно сохраняются на серверах Skype. Если вдруг у Skype'а возникнет желание с госведомствами посотрудничать – вас здадут моментально, т.е. ваша защита – нуль и фуфел, с точки зрения академической науки. А на парктике... сами понимаете.
В Skype'е нельзя напрямую узнать IP с которым идёт общение, внешне это выглядит как общение с абонентом через прокси. Есть другие атаки на соединение, позволяющие узнать, но они трудозатратны и не всегда эффективны, часто требуют длительного наблюдения за абонентом.
У всех служб ресурсы ограниченны, даже у таких мощных организаций как NSA. В частности, сети наподобие Tor как раз и играют на их ограниченности, т.е. в принципе разрушить анонимность можно, чисто концептуально, но слишком трудозатратно. Впрочем, думаю, над этим тоже ведётся работа :)
А вообще, юз гугл с фразой "протокол Skype". Сразу снимает массу вопросов. Вот[link2] какая-то официальная статья-исследование на тему. Здесь[link3] описание для обычных обывателей. Тема не раз уже обсуждалась, но лично мне лень было разбираться с протоколом. Данные ссылки + общие познания того, как работают компьютерные сети => ответ на 99% всех ваших вопросов :)
Хорошо сформулированное замечание. Если допустить, что какая-то система (СОРМ) не может проанализировать сейчас какой-то протокол, просто потому что он ей (её разработчикам) непонятен, это не значит, что такую поддержку нельзя прикрутить завтра (или, к примеру, сегодня вечером), если принципиальных ограничений нет. А уж как это на деле внедряется и как оперативно с этим справляются конкретные люди/организации – впринципе неинтересный вопрос.
К тому же ничто не мешает отфильтровать из трафика непонятные пакеты и расковырять их позже, экспериментальными средствами, проводить различные исследования и моделирования, а уже позже, на основании полученного опыта, поставить поддержку новой формы перехвата на поток.
Получается, при всем плювании оупнсосников на скайп, ничего лучшего для звонки на обычные (гор. и моб. телефоны) из инета на данный момент нет?!
Есть, но оно кому-то не так удобно в использовании, оплате и настройке, + там может отсутствовать шифрование связи в отличие от скайпа. Если запускать скайп от отдельного пользователя под отдельными иксами – это одно, но 99.99% его пускают под обычным доверенным юзером, позволяя этому трояну красть почти любую конфиденциальную информацию из домашнего каталога. Firefox и Opera вроде не такие трояны, но смысл предостережения тот же ;)
1. Принципиально важно шифрование, чтобы абонента, устанавливающего вызов, не могли "пропасти" отечественные менты и спецслужбы. ФСБ два года назад не могло установить местонахождения абонента скайп, которого оно разыскивало (я представлял стороны заказчика :)), и они были заинтересованы выловить нашего "клиента").
2. А кто нибудь снифил, что они (скайп, мозилла и опера) конкретно крадут?! Или они крадут все подряд?!
P. S. Интересно, кто потом все это анализирует и использует и в каких целях?
3. Из-под специального юзера – это понятно. Соответственно, как я понимаю, этот юзер должен иметь доступ только к своим файлам и тем паче его не стоит прописывать в sudoers :)) А что значит – "под отдельными иксами" и как это осуществить?! А можно ли запустить его прямо из консоли?
P. S. Тут еще писали, что его следует запускать в безопасном режиме. Какую команду для этого надо прописать в терминале?
Всё, что могли, вам уже ответили, мы же не операторы оборудования СОРМ и не из дата-центров ФСБ вам пишем :) На уровне потенциальной технологии ответ есть "можно", но технически это, возможно, ещё не реализовано.
Имелось в виду, что опера – большой сложный комбайн, и вдруг туда всунут троян кто-нибудь? Разработчики не подписывают её дистриб его своими ключами (да и самих ключей у них, видимо, нет), или вдруг кто-то вам подсунет модернизированную версию оперы при обновлении – насколько надёжно ваша система отсекёт такие случаи? Много тонких вопросов. Кроме того, поскольку браузер – очень большая программа, разработчики которой (так уж сложилось) меньше всего пекутся о безопасности, и больше всего – о поддержке фич, очень вероятны ошибки. Более того, ошибок там много, они постоянно (ежедневно почти) фиксятся и ежедневно появляются новые. Злоумышленные сайты или ISP или эксит-ноды тора могут поспособствовать эксплуатации означенных уязвимостей, что потенциально легко может привести к выполнению произвольного кода от имени пользователя, от которого запущен браузер. Это имелось в виду.
Да. Но т.к. в полной мере осуществить это нельзя (любая иксовая программа из чрута вылезет) то хотя бы ограничьте такого юзера в доступе к каталогам с конфиденциальной информацией (к ~/).
Ну можно запустить несколько графических систем, т.е. несколько иксов (Xorg), на разных консолях. Например, одни иксы могут висеть на F8 а другие на F9, тогда переключение между ними будет как ctrl+alt+F8 и ctrl+alt+F9. Как технически сделать – описано в мануалах по вашей ОС. Обычно что-то типа действий:
1. Узнать текущий дисплей:
2. Сменить переменную на другую, на единицу больше (не помню, толи :0.1, толи :1.0):
3. Запустить иксы:
(или xinit). Перед шагом 3 в файле ~/.xsession или в ~/.xinitrc должно быть прописано что-то типа
для случай если вы – SATtva, или
если вы – spinore. Если хотите чтобы несколько иксов были доступны всегда, а не лочили консоль, откуда они были запущенны, то настройте xdm на старт сразу на 2х консолях (там надо отредактировать несколько конфигов которые читает xdm, и добавить xdm в автостарт системы – читайте мануалы или ищите хауту в гугле).
Прям из консоли – нельзя, скайп не умеет работать без иксов, хотя мог бы. Была бы это консольная программа – не было бы проблем.
Имелось в виду, из-под отдельного юзера, который не имеет права на чтение ваших личных файлов (создайте ещё одного обычного юзера и запускайте из-под него скайп). При стремлении к совершенству и обострении паранойи можно добиться запрета для этого юзера читать на какой ОС он запущен (подсовывать липу), читать сетевые настройки, и вообще левые каталоги которые ему не нужны, но это уже всё очень сложно и слишком ОС-специфично (кроме Linux'а бывают другие UNIX'ы).
А не в курсе, скайп какие-нибудь уникальные идентификаторы клиентов в свои проги внедряет, например с тем, чтобы потом можно было определить, что именно этот клиент заходил на такие и такие аккаунты?
А можно как-то чтобы соответствующим образом не чмодить все файлы, к которым не хочешь допускать пользователя, из-под которого будет работать скайп, задать запрет доступа самому этому юзеру? Или все-таки придется задавать каждому из этих файлов настройки командой chmod xx0?
Предпочтительнее в таких случаях использовать средства мандатного контроля доступа.[link4]
Чмод сам по себе не поможет, нужно и chown сделать ещё, иначе пользоваель из-под которого надо запустить, сам сможет сделать обратно chmod a+rwx {} :)
Мандатный контроль доступа – конечно, штука хорошая, но я еще не настолько продвинутый пользователь Линукс :)
Зачем менять владельца файлов, если я запускаю скайп из-под отдельного пользователя, а файлы принадлежат другим пользователям? Как пользователь, в котором запускается скайп, сможет в этом случае изменить мой настройки chmod 700?
И как мне защитить другие файлы от чтения, те же /var /proc и /tmp? Боюсь что для разных файлов необходимы разные значения chmod, и что если задать им chmod 700 это приведет к некорректной работе системы, если не хуже.
Я сказал на случай, когда запускаете из-под своего же пользователя, а не отдельного.
Поидее на такой случай есть chroot, но любая иксовая программа из чрута вылезет[link5], так что всё равно не поможет. Ещё есть restricted shell, и запрет на исполнение посторонних бинарей кому попало, монтирование разделов с nosuid, noexec... в общем, это очень длинный вопрос. Городить огород можно, но стандартных решений (к стыду Linux) до сих пор нет. Можно ещё порыться по слову sandbox. Можно заюзать отдельную виртуальную машину под Skype. Я изначально говорил о минимуме: о запрете ему читать ~/ основного пользователя – это достигается легко. Запретить читать сетевые настройки и вообще информацию об ОС – уже намного труднее... тут уж кто во что горазд.
Да, настраивать при исследовании надо так, чтобы влияло только на Skype. Тогда от силы Skype не будет работать, но не более того.
1. Возможно ли шифрование при звонках на гор. телефоны от говорящего и до оконечного узла в оупносоурсовых ресурсах телефонии, как в скайп? Т.е. чтобы прослушать могли только на гор. или моб. телефоне.
Если нет, почему не разрабатывают?
2. Есть ли оупносоурсные средства it-телефонии, в которых также как в Skype'е нельзя напрямую узнать IP с которым идёт общение, чтобы это выглядело как общение с абонентом через прокси?
Если отдельные иксы, из под которых запускать skype, запускать из-под открытых иксов через Xnest, насколько это снизит безопасность в описанной схеме решения?
P. S. Смысл в том, чтобы видеть скайп на том же дисплее, без необходимости переключаться между виртаульными дисплеями комадной Alt-Ctl-Fn
Кстати и не иксовая тоже. Эндрю Мортон где-то в рассылке говорил, что чрут предназначен для разработки (сборки дистров, кросскомпиляции), а не для безопасности, и "укреплённые" версии чрута никуда включаться не будут.
Оказалось, что gdmflexiserver у меня запускает вторые, третьи и т.д. иксы из-под пользователя – я всегда это делал из-под рута, а тут случайно запустил, и запустилось.
При этом, все процессы Xorg принадлежат руту. Это как раз тот случай, когда "любая иксовая программа из чрута вылезет"?!
И чем это может быть опасно? Следует ли мне изменить настройки, чтобы gdmflexiserver запускался только из-под рута?
В принципе невозможно. Для шифрования канала нужна соответствующая поддержка на обоих концах, а потому по умолчанию со стандартными телефонами это работать не будет. При большом желании можно изготовить хардварный плагин к телефону, который бы это делал. Однако, в этом нет особого смысла: раз всё равно надо что-то менять, то проще настроить шифрование через сеть.
Можно самому собрать подобную схему типа VPN+SIP. Если же выхотите готовго централизованного решения, да ещё и с заземлением – то да, этого нет. Единственный вариант – захламлять тор голосовым трафиком, но я не уверен что это в принципе будет работать, ибо пропускная способность низкая и не стабильная. В данном случае предпочтительнее будет общаться с абонентом через jabber+tor+gnupg.
Мне сдаётся, что существенно. Потенциально, раз вы из-под своего пользователя можете получить доступ к, то и злоумышленная программа запущенная под вашим юзером сможет.
Мне готовых решений не известно. Может быть, более опытные участники подскажут. Такое решение должно работать так: есть привелегированный юзер, из-под которого всё запускается. Однако, каждая программа должна быть изолирована в своей песочнице и выполняться с правами отдельного непривелегированного юзера. Не должно быть никакой интеркоммуникации между программами с правами юзеров, использовавшихся для их запуска. И лишь привелегированный пользователь может иметь право передавать между ними файлы, содержимое буфера и т.д.
Нет. Здесь это происходит "легитимно" через механизмы типа "суидности"/sudo (юз гугл чтоб узнать это).
В случае конкретных программ про которые вы спрашиваете ничего подсказать не могу, т.к. никогда с ними работал. Общаяже схема такова:
Запускать из-под другого юзера на свои иксы?
Как лучше защитить данные, запуская скайп под отдельным юзером, но желая иметь доступ к его файлам из-под другого юзера (рабочего)?
Включить последнего юзера группу скайп-юзера и разрешить чтение и запись файлов группе, или включить скай-юзера в группу рабочего юзера, также разрешив запись и чтение группе?
Необходимо, чтобы скайп-юзер не мог получить доступ к файлам обычного юзера.
adhoc – перекидывать файлы под рутом от одного юзера к другому.
Иначе – да, через группы. Например, создаётся группа extra, которая и назначается всем файлам (не знаю как это настроить автоматически, видимо через vipw, прописав дефолтной группу extra юзеру, и umask), создаваемым skype-пользователем. Далее обычный рабочий юзер делается членом группы extra через редактирование /etc/groups.
Вот это точно ни к чему делать.
А чем хуже может быть включить дополнительно позьзователя mainuser также в группу skypeuser, а не создавать отдельную группу для обоих пользователей? (Причем файлы-то под mainuser создаются как принадлежащие пользователю mainuser и группе mainuser, и со значением umask 077 к тому же).
Я имел в виду следующее: создание юзера стандартными средствами (useradd) обычно(?) не подразумевает создания одноименной группы. Для обычных юзеров группой по умолчанию является users, для кого-то – wheel, если было указано явно, для остальных – ещё какие-то служебные. Ну а так, здесь можно много чего неаворотить – вы и сами не хуже разбираетесь. Лично меня интуитивно смутило добавление небезопасного пользователя в группу безопасного: мало ли.. где и что можно произойти, так что лучше гайки закручить сразу :)
Опять скайп. Мне сообщили (пока это непроверенная инфа), что в рамках некоего уголовного дела по экономике фигурируют результаты прослушки скайпа.
Таким образом, проблема безопасной VoIP-телефонии, не подконтрольной говногосударствам, в очередной должна быть признана архиактуальной.
ОБС?
Ну мало ли способов это сделать? Например, установить жучки в комнате, откуда звонят.
У Шнайера был обзор расследований ФБР по прослушиванию шифрованных телефонных звонков. Около ста штук за год. Это было ещё до распространения скайпа. ФБР ни разу не столкнулось с трудностями. Содержимое всех звонков было записано. Подробности следственных мероприятий не помню, можете в его блоге поискать, но в большинстве случаев всё легко решили именно жучками, возможно ещё использовались трояны.
Ну жучками в широком смысле слова. А то есть ещё всякие побочные каналы, например вибрация отражённого от оконного стекла лазерного луча.