Русский
Русский
English
Статистика
Реклама

Анонимность

Картирование цифровых прав, часть III. Право на анонимность

03.09.2020 14:17:53 | Автор: admin

TL;DR: Эксперты делятся видением проблем в России, связанными с цифровым правом на анонимность.

12 и 13 сентября Теплица социальных технологий и РосКомСвобода проводят хакатон по цифровому гражданству и цифровым правам demhack.ru. В преддверии мероприятия организаторы публикуют вторую статью, посвященную картированию проблемного поля для того, чтобы смогли найти для себя интересный вызов. Предыдущие статьи: по праву на публикацию цифровых произведений можно найти здесь (часть 1) и на доступ к информации здесь (часть 2).

Право на анонимность

Анонимность состояние невозможности определения личности человека. Право на анонимность, т.е. возможность совершать действия в Сети не будучи определенным, чрезвычайно важно для следующих конституционного права на свободу мысли и слова (статья 29).

Основы архитектуры Интернета создавались в другое время и в других условиях. Были сомнения, что кто-то, кроме академиков (или, кхм, людей в одинаковой одежде) будет сидеть перед черными терминалами. Сомнения были и про то, будут ли пользоваться персональными компьютерами. Всемирную сеть Тим Бернерс-Ли для того, чтобы не надо было приводить к одному стандарту ЦЕРНовские документы. Вряд ли кто-то мог предполагать, что Интернет достигнет такой важности в нашей жизни, какой он достиг сейчас.

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

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

Писатель и исследователь шифрования Саймон Сингх описывает появление интереса к анонимности через шифрование в современную эпоху с изобретением телеграфа в XIX веке. Тогда, в первую очередь, заволновался бизнес. Каждый, кто хотел бы передать сообщение оператору телеграфной линии, должен был бы передать содержание своего сообщения. Операторы имели доступ ко всем передающимся сообщениям, а следовательно существовал риск, что кто-то может подкупить оператора связи, чтобы получить доступ к коммуникациям конкурента.

В XX веке, к чисто практическим соображениям по защите технолого-опосредованных массовых коммуникаций, добавились и поведенческие опасения. Мишель Фуко наглядно описал эффект Паноптикума, согласно которому сам факт наблюдения и ассиметрии информации между наблюдателем и наблюдаемым является основой дисциплинарной власти, которая осуществляется, в том числе, через изменение поведения наблюдаемого. Резюмируя Фуко, мы по-другому танцуем, когда никогда никто не смотрит.

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

Тема, одним словом, нешутошная. В рамках круглого стола мы пригласили экспертов, с которыми постарались выделить основные проблемы с осуществлением наших прав на анонимность. Некоторые из обсуждавшихся тем:

  1. Анонимное использование Сети (включая поиск информации);

  2. Анонимная публикация материалов, создание и распространение произведений;

Сюжет 1. Анонимное использование Сети (включая поиск информации)

 Телеграфный приемник. Фото: Rauantiques // Wikipedia (CC BY-SA 4.0) Телеграфный приемник. Фото: Rauantiques // Wikipedia (CC BY-SA 4.0)

Проблема 1.1.: Твердо закрепленный стереотип о ненужности анонимности, утверждение Мне нечего скрывать. Люди не понимают, для чего нужна анонимность и не понимают, зачем ее использовать. Из-за DPI возможность анонимности уменьшается, но как именно DPI снижает возможности анонимности, мало кто знает. Нет понимания, как работают некоторые механизмы и что может пойти не так, как данные могут использоваться против пользователя.

Вариант решения на хакатоне: Доносить до людей, какие следы и когда они оставляют, зачем нужна анонимность и почему право на анонимность должно быть соблюдено. Создание инфопродуктов и сервисов;

Вариант решения в долгосрочной перспективе: Сделать анонимность правилом игры и стандартом в сервисах, по примеру end-to-end шифрования.

Проблема 1.2.: Фингерпринтинг браузеров деанонимизирует. Фингерпринт или отпечаток браузера информация, собранная об удалённом устройстве для дальнейшей идентификации, фингерпринтинг сбор этой информации. Отпечатки могут быть использованы полностью или частично для идентификации, даже когда cookie выключены. Mozilla подменяет информацию и блокирует фингерпринтинг, а другие браузеры нет.

Вариант решения на хакатоне: Включить блокировку фингерпринтинга в другие браузеры. Например, можно предложить доработки в ядро Chromium.

Проблема 1.3.: Сервисы требуют СИМ-карты для большинства мессенджеров.

Варианты решений на хакатоне:

  1. Сервис по регистриции симок. Сеть взаимопомощи тех, кто готов на себя регистрировать симки (эксперты, правда, отмечают много рисков с таким решением).

  2. Механизм, который позволяет не использовать новые сим-карты. Если такой механизм появится, то должна быть общественная кампания, чтобы использовать только его (как добавить в мессенджер своих друзей без их номера телефона, без контактных листов).

Проблема 1.4.: внутренний функционал некоторых мессенджеров и сервисов, позволяет де-анонимизировать пользователя (например, приложение GetContact), но пользователь этого не понимает.

Варианты решений на хакатоне:

  1. Просветительский проект о сервисах, их возможностях, как функции тех или иных сервисов могут де-анонимизировать человека;

  2. Свод правил для широкого круга пользователей (чек-лист?), по которому можно определить признаки, что используя тот или иной сервис пользователя можно идентифицировать;

  3. Просветительская игра, которая подскажет признаки идентификации пользователя в сети.

Проблема 1.5.: Анонимное использование интернета детьми все сервисы нацелены на то, чтобы дети оставляли свои реальные данные. Анонимность детей защита, в том числе от родителей, злоупотребляющих приватностью своих детей.

Сюжет 2. Анонимная публикация материалов

Грустный чувак в капюшоне на фоне сурового мегаполиса куда ж нам без него, если мы пишем об анонимности вольная интерпретация стоковой фотографии. Фото: Daniel Monteiro // Unsplash (CC BY-SA 4.0)Грустный чувак в капюшоне на фоне сурового мегаполиса куда ж нам без него, если мы пишем об анонимности вольная интерпретация стоковой фотографии. Фото: Daniel Monteiro // Unsplash (CC BY-SA 4.0)

Проблема 2.1.: Проблема стилистического анализа для выявления личности по анонимной публикации.

Вариант решения на хакатоне: обфускация стиля письма с помощью нейронок.

Проблема 2.2.: Проблема утечек через метаданные документов (изображений, вордовских документов).

Варианты решений на хакатоне:

  1. Сервис-очиститель от метаданных с автоматическим удалением метаданных из документов и удалением истории правок из документов;

  2. Размещение материала через несколько ресурсов в автоматическом режиме, чтобы затруднить расположение первоначального источника;

  3. Автоматические маски для лиц на изображениях, которые усложняют идентификацию человека.

  4. Создание сайтов и публикаций в Darknet

Проблема 2.3.: Проблема определяемости фотографий от whistleblowerов.

Варианты решений на хакатоне:

  1. Фото-обфускатор. Сервис, который обрабатывает фото так, что соцсети потом не могут matchить человека.

  2. Нейросеть определяющая, по каким признакам выкладываемую фотографию можно идентифицировать извне (например, через обратный поиск изображений).

Проблема 2.4.: Проблема Плохого OSINTа вигиланты нападают на активистов используя методы OSINT.

Вариант решения на хакатоне: нужны механизмы очистки публикуемых данных и затруднения аутинга и доксинга.

Проблема 2.4.: Проблема нетехнической уязвимости Black-boxов (устройств для анонимного слива информации, например, SecureDrop). Существующие решения уязвимы. Журналисты, принимающие утечки, иногда халтурно относятся к анонимности источников.

Варианты решений на хакатоне:

  1. Инструкция для журналистов по работе с источниками для максимизации анонимности источников;

  2. Упрощение установки ПО типа black-box (сейчас они слишком сложны в установке);

  3. Black Box с возможностью вычищения мета-данных с моментальной обработкой нейросетями с факультативным функционалом (хотите ли замазать лицо, или убрать одного из персонажей?);

  4. Анализатор документа на предмет утечки метаданных передавать результаты человеку на проверку и принятия решения: что обнаружили, и что можно убрать, что дойдёт до публикации.

Организаторы хакатона надеются, что выявленные вызовы послужат благодатной почвой для решений на хакатоне (да и вообще).

PS: Помимо хакатона, 4-го сентября в 12:30 (по Москве) на онлайн-конференции Сетевой Сентябрь, тренер по компьютерной безопасности Сергей Смирнов, со-основатель РосКомСвободы Саркис Дарбинян и другие обсудят вопросы анонимности в дискуссии Анонимность: право, а не причуда. Дискуссию можно посмотреть онлайн.

Теплица социальных технологий и РосКомСвобода благодарят всех экспертов, принявших участие в круглом столе. Зарегистрироваться на хакатон цифрового гражданства и цифровых прав demhack.ru можно до 8-го сентября 2020 г.

Подробнее..

Из песочницы Значение VPN для анонимности в эпоху тотальной слежки

02.10.2020 18:16:15 | Автор: admin

Существует ли всё ещё такая вещь, как настоящая анонимность?


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

image

Но как именно мы можем оградиться от архитектуры угнетения, если она насаждается вокруг нас, нами и для нас же самих?


В оригинальном Манифесте Шифропанка от 1993 года Эрик Хьюз писал, что Открытому обществу в электронном веке необходима конфиденциальность. здесь он затрагивает концепции, которые помогут нам сформулировать ответ на вопрос Что делает VPN?, или, скорее, Что должен делать VPN?.
Эрик Хьюз Люди веками защищали частную жизнь при помощи шёпота, темноты, конвертов, закрытых дверей, тайных рукопожатий и курьеров. Технологии прошлого не позволяли обеспечить строгую конфиденциальность, но теперь это позволяют электронные технологии. Эрик Хьюз.
Прошли десятилетия, но эти электронные технологии не принесли спасение, на которое надеялся Хьюз. Технологии будущего, похоже, забрали большую часть нашей конфиденциальности, вместо того чтобы укрепить её. Интернет становится всё менее свободным, с увеличением вмешательства в онлайн-выборы и усилением государственного надзора, который распространяется на социальные сети.

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

Непрерывная и постоянная лента нашей жизни навсегда вписана в историю Интернета. Ваша жизнь теперь в буквальном смысле открытая книга.

На каждом ресурсе или сервисе, на котором мы регистрируемся, нас обязывают оставить личную информацию, либо просто отгораживают нас от системы. Без особой на то необходимости мы жертвуем всё большим количеством деталей о себе, чтобы в итоге компании могли манипулировать нами, заставляя покупать больше вещей.

Подпольная торговля нашими личными данными превратилась в коммерцию и, как и все ценные товары, теперь превращено в оружие. В докладе Свобода сети за 2019 год отмечается, что 89% интернет-пользователей (почти 3 млрд чел.) из 40 исследованных стран подвергаются действию программ мониторинга социальных сетей.

Это и Facebook, установивший рекламные правила, которые позволяют политикам распространять ложь, и Amazon, укрепляющий связи с полицейскими участками и использующий свои умные дверные звонки Ring, а также связанные с ними продукты социальных сетей, для наблюдения за населёнными пунктами.

Восток встречается с Западом


Система социального кредита" в Китае это реально существующий эксперимент, показывающий, как наши персональные данные могут быть обращены против нас. Каждому гражданину присваивается индивидуальный номер, события непрерывно записываются в базу, которая далее влияет на все аспекты жизни, давая оценку поведению гражданина и его благонадёжности. Будучи пойманным на переходе в неположенном месте, не оплатив госпошлину, включив слишком громко музыку в поезде вы можете лишиться определённых прав, например, бронирования авиабилета или билета на поезд.

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

Однако на Западе повсеместный мониторинг онлайн-поведения (во имя национальной безопасности) означает, что государственные органы и интернет-провайдеры могут легально отслеживать деятельность пользователей в интернете. Пока эволюционируют технологии, всё ещё не существует никаких правил, в которых речь заходит о распознавании лиц, а полиция уже запускает экспериментальные программы для слежки в режиме реального времени, прежде чем закон успеет догнать этику всего этого.

По мере того как мир становится цифровым, оказывается всё важнее, чтобы наши данные, конфиденциальность и свободы оставались под нашим контролем.

Конфиденциальность это элементарное человеческое право, а наша цифровая конфиденциальность является его продолжением. Мы неразрывно связаны с нашей сетевой идентичностью просто спросите кого-нибудь, чья жизнь была разрушена кражей личных данных.

Независимо от того, сколько информации мы оставляем в интернете добровольно, конфиденциальность должна быть стержнем и фундаментом сильной и открытой интернет-среды.



Анонимность


image
Я не знаю, почему люди так стремятся публично раскрывать подробности своей частной жизни; они забывают, что таинственность это сверхсила.
Бэнкси.

Текст на стене: Если повторять ложь достаточно часто, она станет правдой политикой

Принципиальная разница между конфиденциальностью и анонимностью


Между конфиденциальностью и анонимностью следует проводить важное различие.

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

image

Анонимность это почти такая же концепция, только наоборот. Быть анонимным это значит, что ваша личность скрыта, но можно увидеть ваши действия. Кто-то может понять, что вы делаете, но не зная, кто это делает. Блокчейны зачастую являются псевдоанонимными, то есть вы можете просматривать каждую транзакцию, которая производится, но не должны иметь возможность идентифицировать личность отправителя или получателя.

Анонимность, как правило, очерняется, поскольку анонимное поведение часто ассоциируется с нелегальной деятельностью. В какой-то момент сформировался даркнет онлайн-обитель чёрных рынков, таких как Silk Road (Шёлковый Путь), создатель которой отбывает пожизненное заключение.



imageSilk Road должен был дать людям свободу делать собственный выбор, гнаться за собственным счастьем, каким бы они его себе лично ни представляли. Это оказалось наивной и дорогостоящей идеей, о которой я глубоко сожалею. Росс Ульбрихт в письме к своему судье.



Но так исторически сложилось, что анонимные деятели внесли большой вклад в жизнь общества художники, писатели, журналисты, политические и правозащитные активисты. Даже супергерои анонимны, чтобы защитить себя от негодяев и назойливых бывших подруг. Визуальные послания Бэнкси громче и проникновеннее, так как он не позволяет своей личности повлиять на повествование.

image


imageЧеловек меньше всего является собой,
когда говорит от своего лица.
Дайте ему маску, и он скажет вам правду.
Оскар Уайльд.
Анонимность и обеспечивает ту самую свободу слова и самовыражения. Это значит, что вы можете высказывать своё мнение, не опасаясь возмездия. Это значит, что вы можете разоблачать коррупцию, раскрывать её в самых тайных уголках. Это означает наличие свободы прессы, при которой газеты могут проводить свои расследования и публиковать статьи, не опасаясь преследований.

С другой стороны, это значит, что разжигание ненависти и кибербуллинг будет сложнее контролировать, но это обоюдоострый меч, который мы должны принять в продолжающейся битве за свободную и открытую дискуссию в обществе.



Идея может стать самой влиятельной вещью в мире


Для многих людей из регионов, наиболее подверженных цензуре, быть анонимным значит быть свободным. Cтатья 19 Всеобщей декларации прав человека гласит о праве на свободу выражения убеждений, а также свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ.

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



Несмотря на всеобщую поддержку прав человека в онлайн-среде, по всей видимости, принципы это не панацея. Во всём мире более четверти (27%) интернет-пользователей живут в таких местах, где их могут арестовать за публикации, репосты или даже лайки, оставленные в соцсетях. Аресты, связанные с политическими, социальными или религиозными высказываниями в соцсетях, были произведены в 47 странах. При настоящей анонимности слова могут использоваться для освобождения людей, а не против них. Вы не можете посадить идею в тюрьму.

Исследование, проведённое объединением Article-19, показывает, что анонимность является жизненно важным компонентом защиты свободы слова, а также права на конфиденциальность. Она позволяет людям выражать своё мнение, не опасаясь репрессий, и особенно важна в тех странах, где свобода выражения мнений подвергается жёсткой цензуре.

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

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

Закрашивание камеры краской из баллончика



Эпоха слежки


Но цензура и слежка это не просто реалии диктатуры. Правительства повсюду регулярно пытаются предотвратить использование инструментов шифрования и анонимности в любой форме. Это нацелено якобы на то, чтобы препятствовать незаконной деятельности, такой как терроризм и незаконный оборот наркотиков. За последнее десятилетие Управлением по борьбе с наркотиками США конфисковано более 4 миллиардов долларов у граждан на основании одного только подозрения в преступной деятельности. Тем не менее, более 81% этих арестов никогда не приводили к предъявлению официальных обвинений.

Во многих случаях правительство США может законно запрашивать без ордера цифровые данные, которыми владеют компании. Законопроект EARN IT в настоящее время обсуждается на конгрессе, и если он будет принят, он может приковать компании наручниками к сложному для изменения набору процедур. Одним из пунктов в том чек-листе может оказаться устранение сквозного шифрования в мессенджерах, лишающее мир безопасного средства связи.

Несколько лет назад президент Дональд Трамп принял закон, позволяющий интернет-провайдерам собирать и делиться личными данными своих клиентов без их согласия, например, вашей веб-историей и тем, какие приложения вы используете. hightech.fm/2018/01/31/mass-digital-surveillance
Британский Разведывательный Устав предоставляет правительству право легально контролировать использование интернета своими гражданами. Общий посыл заключается в том, что если вы законопослушный гражданин, то вам не о чем беспокоиться.
image
Утверждать, что вам наплевать на право конфиденциальности, потому что вам нечего скрывать это всё равно что утверждать, что вам наплевать на свободу слова, потому что вам нечего сказать. Эдвард Сноуден.



image
Вопрос только в том, почему правительство хочет заполучить ваши персональные данные, когда у вас есть право на конфиденциальность?

Используйте свою цифровую свободу, чтобы дать отпор


В утопическом цифровом мире анонимность, конфиденциальность, безопасность и антицензура слились бы в одно целое для формирования идеального интернета.

Но как нам сделать интернет безопасным, а конфиденциальность настройкой по умолчанию? Законы, которые регулируют нашу частную жизнь и помогают нам свободно высказывать своё мнение, приносят пользу в основном корпорациям, государствам и их органам. Мы не можем полагаться на изменение законов или ждать, когда интернет-провайдеры начнут служить нашим интересам. Децентрализованная VPN (dVPN) это один из способов вернуть себе контроль.

Более четверти пользователей интернета в мире уже используют VPN. Основные мотивы для его использования: получить доступ к соцсетям и новостным службам (34%), сохранить анонимность при выходе в интернет (31%), скрыть от властей информацию о посещении сайтов (18%) и получить доступ к сети Tor (17%). Однако в странах, где граждане больше всего нуждаются в VPN Венесуэле, Китае, России, Турции, Иране, ОАЭ его, разумеется, стремятся запретить и заблокировать.

Для спасения жертв от цензуры и слежки был разработан dVPN. Обычный VPN соединяет вас с дата-центрами, которые управляемы компаниями, что делает их уязвимыми к обнаружению правительствами и интернет-провайдерами. Эти сервисы также часто медлительны, имеют различные ограничения, и что самое неприятное, могут централизованно хранить журналы онлайн-активности всех своих пользователей. Исследование 62 коммерческих провайдеров показало, что у многих из них (возможно, и не преднамеренно) происходит утечка пользовательского трафика различными путями.

В случае с dVPN сервис обслуживается такими же, как вы, интернет-пользователями. Вы выбираете из глобального меню домашних IP-адресов, поэтому этот сервис практически не подвержен отслеживанию и блокировке властями. dVPN это технологическое лекарство против антиконфиденциальности и антианонимности. Если вы живёте в стране, которая пользуется свободой интернета, в данной P2P-сети вы можете сдавать в аренду свой IP-адрес другим пользователям, а взамен зарабатывать криптовалюту. Благодаря распределённой инфраструктуре ваши данные нигде централизованно не сохраняются, а весь трафик, проходящий через эти персональные узлы, усиленно шифруется.

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

Собственная сеть Mysterium первая в мире dVPN. В ней используются многоуровневые протоколы защиты, чтобы любой желающий мог анонимно выходить в интернет. При установленном подключении реальный IP-адрес и идентификационные данные скрываются от владельцев веб-сайтов, а ваш провайдер не может узнать, какие сайты вы посещаете, таким образом любой пользователь может избежать бесцеремонной слежки за ним. Здесь можно попробовать dVPN для Android.

Также можно присоединиться к сети узлов, чтобы помочь сохранить анонимность самовыражения в интернете, защитив личные данные журналистов, активистов, жертв цензуры и слежки по всему миру.

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

Вперёд.
Подробнее..

Администратор узла сети I2P. Полный курс

31.03.2021 22:18:24 | Автор: admin

I2P (Invisible Internet Project, Проект невидимого интернета) одноранговая сеть с открытым исходным кодом, где анонимность участников главная повестка всех архитектурных решений.

В I2P присутствует две основные сущности: роутер и конечная точка. Роутером называется программный клиент, который необходимо установить для использования I2P. По умолчанию роутер публикует реальные IP-адреса и активно взаимодействует с другими подобными участниками, выступая в роли транзитного узла и расширяя собственный рисунок сети, т.е. накапливает информацию о других доступных роутерах для их дальнейшего использования в своих туннелях. Конечная точка это осмысленная сущность сети, ведущая скрытую активность. Например, скрытый сайт, или выходной прокси обычного пользователя. Фактор анонимности I2P заключается в секретности месторасположений конечных точек: выявить роутер, являющийся родителем конечной точки, крайне сложно, а при должном подходе администратора невозможно.

Этот мануал посвящен администрированию роутера, т.е. пониманию конфигурации рядового узла, обеспечивающего функционирование скрытой сети.

Установка

I2Pd (Invisible Internet Protocol Daemon) роутер от преимущественно русскоговорящего сообщества PurpleI2P. Разрабатывается с 2013 года. Реализован на языке программирования C++, использует библиотеки OpenSSL и Boost. I2Pd является кроссплатформенным, готовые бинарники распространяются для платформ Windows, Linux, MacOS и Android. Очевидна возможность ручной компиляции, в том числе под операционные системы, не перечисленные выше. I2Pd имеется в стандартных репозиториях некоторых дистрибутивов Linux, однако для использования актуальной версии рекомендуется репозиторий сообщества. Основным местом распространения исходных кодов и бинарных файлов является репозиторий GitHub.

К счастью, администрирование I2P-роутера на всех платформах фактически идентично: веб-консоль на локальном адресе главный источник информации о текущей активности роутера. Адрес веб-консоли по умолчанию: http://127.0.0.1:7070.

Webconsole: Main page

Разберем всё по порядку:

Uptime Показывает прошедшее время с момента запуска.

Network status Сообщает сетевой статус роутера. В версиях выше 2.37.0 присутствует Network status 6 для отдельного отображения состояния сети на интерфейсах IPv6. Принимает значения:

  • Testing: Тестирование сетевых возможностей роутера.

  • OK: Всё в норме. Означает, что роутер работает в штатном режиме и доступен для соединений извне по протоколу TCP и UDP. Как правило, статус ОК появляется, когда порт I2Pd в операционной системе открыт, а IP-адрес доступен глобально, т.е. является выделенным, или белым (либо через NAT прокинут порт для I2Pd).

  • Firewalled: Является индикатором недоступности порта TCP извне. Может быть сигналом о блокировке рабочего порта I2Pd файерволом операционной системы. В большинстве случаев статус Firewalled видят пользователи за NAT-сервером, не имеющие выделенного IP-адреса: главным образом пользователи сотовых операторов.

  • Proxy: Работа роутера через прокси. Подразумевает работу только по протоколу NTCP2 (криптоаналог TCP), так как SSU (криптоаналог UDP) через прокси не ходит. Настраивается вручную через конфиг.

  • Mesh: Работа роутера в меш-сети. На момент написания статьи поддерживается работа в Yggdrasil Network. Статус Mesh подразумевает работу роутера исключительно через меш-сеть, минуя обычный интернет. В случае использования режима Mesh вместе с прокси, или непосредственной работой через интернет, статус Mesh не выводится.

  • Unknown: Отсутствует трафик SSU, при этом конфигурация роутера не соответствует индикаторам Proxy или Mesh.

Tunnel creation success rate Процент успешно построенных туннелей, т.е. процент успешно созданных туннелей от числа инициированных роутером. В среднем варьируется от 20 до 50%.

Received и Sent Объем полученной и отправленной информации с момента запуска роутера. В скобках указывается скорость передачи в настоящий момент.

Transit Объем транзитного трафика и актуальная скорость его потока.

Data path Рабочая директория роутера, где хранятся ключи и локальная база сети.

I2Pd поддерживает портабельный режим работы, когда все необходимые файлы приложения хранятся в одной директории рядом с исполняемым файлом. I2Pd автоматически начинает работать в портабельном режиме, если рядом с исполняемым файлом находится конфигурационный файл i2pd.conf.

Hidden content. Press on text to see Спойлер с чувствительной информацией о роутере. По умолчанию скрыт. Здесь отображаются IP-адреса с указанием протокола: SSU, SSUv6, NTCP2 и NTCP2v6 (приставка v6 обозначает работу по IPv6), а также криптографическое имя роутера (Router Ident), образуемое от публичного ключа router.keys. Этим ключом шифруется информация, адресуемая нашему роутеру.

В секции Our external address отображаются внешние IP-адреса роутера с указанием рабочего порта, на который роутер принимает внешние обращения. Случайный порт генерируется при первом запуске и сохраняется в файле router.info. Также есть возможность указать случайный рабочий порт вручную при запуске или в конфигурационном файле. Если в веб-консоли вы видите локальный адрес или нули, это сигнал о том, что рабочий порт роутера закрыт файерволом, либо ваш IP-адрес недоступен извне (т.е. не является выделенным). В случае протокола SSU при работе за NAT-сервером (например, через USB-модем), в списке внешних адресов роутера появится адрес NAT-сервера провайдера и порт, который в настоящее время закреплен за вами (Hole punch).

Особый интерес вызывает графа Router Caps по-русски: флаги роутера. Это специальные маркеры, публикуемые роутером, по которым другие участники сети получают представление о возможностях нашего роутера. Вы можете встретить следующие флаги:

  • f: Floodfill роутер является флудфилом.

  • H: Hidden роутер не публикует свои IP-адреса.

  • K: Канал для транзитного трафика до 12КБ/сек.

  • L: Канал для транзитного трафика до 48 КБ/сек (по умолчанию).

  • M: Канал для транзитного трафика до 64 КБ/сек.

  • N: Канал для транзитного трафика до 128 КБ/сек.

  • O: Канал для транзитного трафика до 256 КБ/сек.

  • P: Канал для транзитного трафика до 2000 КБ/сек.

  • X: Канал для транзитного трафика 2000 КБ/сек и выше (значение по умолчанию для флудфила).

  • R: Reachable роутер доступен для обращений извне, имеет выделенный адрес и открытый порт.

  • U: Unreachable роутер недоступен для внешних обращений.

Флаги роутера R и U в I2Pd указываются для корректной работы морально устаревшего Java-роутера. I2Pd эти флаги игнорирует и использует аналогичные флаги из Router Info (RI). Логично, что для каждого адреса флаги доступности могут различаться (например, для IPv4 за NAT и выделенного IPv6). В RI флаги указываются для каждого IP-адреса отдельно.

Router Info информация, публикуемая роутером о себе, которая включает ключи, флаги и IP-адреса. Файл router.info генерируется после каждого изменения состояния роутера и находится в рабочей директории Data path.

Помимо перечисленных флагов R и U, к адресам в Router Info опционально добавляются следующие:

  • 4: Скрытый адрес IPv4.

  • 6: Скрытый адрес IPv6.

  • B: Означает, что SSU-адрес обрабатывает пиртесты, т.е. может быть привлечен для проверки доступности роутера извне.

  • С: Означает, что адрес может быть интродьюсером (introducer) сущностью, выступающей в роли связующего звена для обращения к узлу со скрытым IP-адресом. Информация об использовании конечным узлом IPv4 или IPv6 необходима для совместимости на уровне транспорта после ответа связующего звена (флаги 4 и 6). Интродьюсер весьма емкая тема, которая будет подробно рассмотрена в отдельной статье.

Routers Отображает актуальное количество известных роутеров сети в локальной базе.

Floodfills Отображает актуальное количество роутеров в локальной базе, являющихся флудфилами досками объявлений, где информацию о себе публикую серверные конечные точки. Обращение к флудфилам происходит для получения входных данных (ключи и туннели) для любого ресурса в I2P, к которому мы обращаемся.

LeaseSets Количество актуальных локальных лизсетов пакетов информации для подключения к скрытым ресурсам сети. Свои лизсеты скрытые конечные точки публикуют самостоятельно. Параметр актуален только для роутеров, являющихся флудфилами и имеющими хороший сетевой статус ОК, т.е. доступных для обращения извне с целью публикации лизсета.

Client Tunnels Количество построенных и используемых туннелей нашим локальным роутером в настоящий момент времени. Отображаются только успешно построенные туннели: как серверные, т.е. принимающие соединение, так и клиентские, через которые мы подключаемся к другим скрытым ресурсам сети.

Transit Tunnels Количество транзитных туннелей, частью которых является роутер в настоящий момент времени.

В нижней части страницы, под заголовком Services обозначено состояние служб (активна или нет):

  • HTTP Proxy HTTP-прокси пользователя для выхода в скрытую сеть. По умолчанию доступен на адресе 127.0.0.1:4444.

  • SOCKS Proxy Пользовательский SOCKS-прокси для выхода в скрытую сеть. По умолчанию доступен на адресе 127.0.0.1:4447.

  • BOB (Basic Open Bridge) Является интерфейсом для прикладных программ, работающих через I2P. Основная задача заключается в создании динамических туннелей. В Java-роутере считается устаревшим из-за подписи DSA, ненадежной из-за успешной практики взлома хеша SHA1, используемого в этой подписи. В I2Pd BOB активно поддерживается, использует актуальные алгоритмы подписи, а также имеет расширения протокола, вовсе отсутствующие в Java-роутере. В общем, является актуальным инструментом.

  • SAM (Simple Anonymous Messaging) Является интерфейсом для прикладных программ, работающих через I2P. Основная задача также заключается в создании динамических туннелей. В I2Pd SAM является равноценной альтернативой BOB, а в Java-роутере единственным протоколом в своем роде.

    Сходство BOB и SAM обусловлено изначальной разработкой разными людьми со схожими целями: BOB для торрент-клиента Robert, SAM для iMule. В итоге и Robert и iMule ушли на задний план, а протоколы взаимодействия приложений с I2P-роутером остались.

  • I2CP (I2P Control Protocol) протокол взаимодействия внешних программ с роутером, строго разделяющий I2P-роутер с программой, обращающейся в скрытую сеть. Концепция заключается в том, что работой с данными должно заниматься некое внешнее по отношению к маршрутизатору приложение. На практике это означает, что внешнее приложение должно содержать ~2/3 кода I2P-роутера, чтобы делать что-то осмысленное. В Java-роутере абсолютно весь трафик проходит через протокол I2CP, что сильно влияет на падение гибкости: стримы (сессии TCP фактически вся активность пользователя) не могут контролировать доступ к туннелям и лизсетам.

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

    В I2Pd протокол I2CP существует, как инструмент совместимости с приложениями, написанными в парадигме Java-роутера. Из рабочей логики I2Pd этот протокол убран, а все клиентские данные обрабатываются в рамках внутренних библиотек libi2pd и libi2pd_client, что позволяет прикладным программам полностью контролировать свою активность в скрытой сети.

  • I2PControl протокол, позволяющий получить информацию о работе роутера в виде запросов и ответов в формате JSON. Является альтернативой веб-консоли и используется редко, поэтому в рамках статьи рассмотрен не будет.

Webconsole: Router commands

На этой странице представлено несколько интуитивно понятных команд, не изменяющих конфигурационный файл и действующих до рестарта роутера:

  • Run peer test запустить проверку доступности роутера. Может понадобиться, если при запуске роутера рабочий порт был закрыт и статус сети отображается, как Firewalled. Роутер автоматически проверяет свою доступность примерно раз в час, но есть возможность ускорить процесс вручную.

  • Decline transit tunnels отклонять новые транзитные туннели (жизненный цикл уже созданных транзитных туннелей прерван не будет). Узлы, предлагающие нам стать частью туннелей, будут получать отказ. Команда может пригодиться при изучении сетевой активности сервера, чтобы убрать все мусорные подключения, при этом сохранив работоспособность скрытых сервисов I2P, в том числе сессию SSH.

  • Start graceful shutdown запустить корректную остановку роутера. После запуска в течение 10 минут роутер продолжит обычную работу, не принимая новые транзитные подключения. Так как все туннели живут 10 минут, этого достаточно, чтобы выключить роутер, не оборвав туннели других участников сети.

  • Force shutdown незамедлительная остановка I2P-роутера.

  • Logging level (none, error, warn, info, debug) смена режима логирования. Может пригодиться при неожиданно возникшей потребности в дебаге. Логи продолжат писаться в стандартный файл (/var/log/i2pd/i2pd.log).

  • Transit tunnels limit позволяет сменить лимит количества транзитных туннелей. По умолчанию 2500.

Webconsole: Local Destinations

Здесь представлен список конечных точек, расположенных на роутере. Каждый адрес образуется уникальным ключом, однако на одном ключе может располагаться несколько туннелей, поэтому в большинстве случаев удобно пользоваться пунктом I2P tunnels, чтобы анализировать туннели в отдельности (сравнимо с доменным именем в обычной сети и отдельными службами, работающими на домене на разных портах). Увидеть детальную информацию о конечной точке можно кликнув на ее имя.

Base64 полный адрес конечной точки, закодированный в base64. Включает в себя публичный ключ шифрования, публичный ключ подписи и прочую служебную информацию. Обычно этот массив составляет 391 байт. Кстати, хеш SHA256 в кодировке base32 от этого массива Base64 образует привычный адрес *.b32.i2p.

Address registration line позволяет получить строку для регистрации домена на ресурсах reg.i2p (поддерживается сообществом разработчиков i2pd) и stats.i2p (поддерживается командой Java-роутера). Домен будет привязан к актуальному ключу, для которого открыта строка регистрации.

Регистрация коротких доменов будет подробно рассмотрена в следующей.

LeaseSets количество опубликованных лизсетов (их публикуют только серверные туннели, чтобы к ним могли обратиться другие участники сети).

Inbound tunnels и Outbound tunnels входящие и исходящие туннели конечной точки, размещенной на локальном роутере. Суть обозначений входящего туннеля приведена на иллюстрации, для исходящих туннелей всё аналогично.

Количество туннелей (входящих или исходящих) не может превышать 16. По умолчанию серверные конечные точки создают по пять входящих и исходящих туннелей, а клиентские по три. Наличие нескольких туннелей, проложенных через разные узлы, но ведущих к одной конечной точке, затрудняют анализ трафика и являются решающим фактором доступности: при обрыве одного туннеля, трафик начинает идти по другому, не нарушая сессию передачи информации.

Tags список адресов, при взаимодействии с которыми локальная конечная точка использовала одноразовые криптографические ключи, называемые тегами. Amount это количество тегов. Минимальное число генерируемых тегов, как видно на скриншоте, равняется четырем. Нулевое количество означает израсходование ранее сгенерированных тегов. Применяется при использовании алгоритма ElGamal (внутреннее обозначение типа шифрования 0).

ElGamal считается очень ресурсоемким и устаревшим алгоритмом. На смену ему приходит тип шифрования 4 новый быстрый протокол сквозного шифрования ECIES-X25519-AEAD-Ratchet. Теги здесь тоже присутствуют, но в другом виде.

При этом алгоритме ключи не передаются по сети: каждый абонент выводит их математическим путем локально. Параметр Incoming Tags обозначает количество выведенных тегов на будущее, а Tags sessions отображает количество сессий и адреса, с которыми они установлены. Status говорит о состоянии сессии, где 4 означает Established, а всё, что меньше сессия по каким-то причинам зависла. Больше 4 тоже норма.

Streams стримы (TCP-сессии передачи информации), активные подключения внешнего приложения к I2P через локальный роутер. Соответствуют клиентским соединениям TCP/IP. Stream ID номер туннеля. Необходим для возможности различать разные потоки, сравним с номером порта. Пиктограмма с крестиком позволяет закрыть, т.е. прервать стрим. Destination адрес конечной точки на другом конце провода. Sent и Received объем отправленной и полученной информации в байтах.

RTT время в миллисекундах от отправки пакета до подтверждения его получения. Window текущий размер окна для отправки, измеряется в пакетах. Buf количество неотправленных байт, ожидающих места в окне. Out количество пакетов, находящихся в окне без подтверждения. In количество полученных пакетов, которые клиентское приложение еще не приняло. Status состояние стрима, где 1 означает открытое соединение.

Размеры пакетов: 1730 байт для ElGamal и 1812 байт для ECIES-X25519-AEAD-Ratchet.


Чтобы было проще понять сетевую архитектуру I2P, которая включает в себя целый стек протоколов с криптотранспортами, туннелями и тонной шифрования, а также найти в этой связке место для клиентского приложения, приведена специальная иллюстрация. В своем роде это модель OSI сети I2P.

Основываясь на этой общей модели, можно сказать, что транзитные туннели работают на втором уровне (на самом его низу, если разобраться), задействуя минимум логических ресурсов роутера. Благодаря этому стандартные 2500 транзитных туннелей не перегружают роутер даже на одноплатных компьютерах. Работа флудфила несколько накладнее по ресурсам, т.к. задействует сквозное шифрование, поэтому флудфил-одноплатник со слабым процессором может начать сбоить.

Webconsole: LeaseSets

Пункт, актуальный для роутеров, являющихся флудфилами. Содержит список лизсетов, опубликованных у нас скрытыми ресурсами, т.е. анонимными конечными точками сети. Имя лизсета является доменом *.b32.i2p без обозначения этого окончания. Лизсет содержит информацию о входном туннеле целевого ресурса и срок годности (в среднем 10 минут). Также существуют зашифрованные лизсеты, не поддающиеся очевидному анализу. Подробно тема лизсетов будет рассмотрена в следующей статье.

Webconsole: Tunnels / Transit tunnels

Во вкладке Tunnels можно увидеть все входящие и исходящие туннели роутера, инициированные самим роутером. Туннели с пометкой exploratory являются зондирующими они строятся автоматически через небольшой промежуток времени, имеют низкое движение трафика и служат для исследования сети: получение трех случайных роутеров от случайного флудфила. Также через них иногда ходят служебные запросы роутера и публикация своего Router Info.

Transit tunnels отображает только транзитные туннели. Информация тут более, чем скудная, так как все туннели в I2P являются однонаправленными и транзитный роутер знает лишь откуда принимать и куда передавать чужие пакеты информации (с соответствующей манипуляцией с симметричным ключом шифрования, который был выдан его при создании транзитного туннеля).

Стрелки демонстрируют место в туннеле, а последнее число показывает объем переданных байт. В теории сюда же можно вывести дополнительную информацию о статусе туннеля, адреса соседних роутеров, но, возможно, это не случится, т.к. мониторить транзитные туннели не джентельменское дело.

Webconsole: Transports

Страница с отображением прямого взаимодействия с другими роутерами с указанием количества соединений по каждому протоколу (NTCP2, NTCP2v6, SSU, SSUv6). В квадратных скобках указывается количество [отправленных : полученных] байт. Стрелки демонстрируют статус соединения: входящее или исходящее.

Webconsole: I2P Tunnels

Страница схожа с Local destinations, но удобнее в практическом применении, т.к. позволяет анализировать каждый туннель в отдельности, даже если несколько туннелей используют один ключ (один адрес). Название туннеля берется из его конфигурационного файла.

Отображается три типа туннелей: клиентские, серверные и Server Forwards. Туннели типа Forwards являются UDP-туннелями: могут быть как серверными, так и клиентскими.

Webconsole: SAM sessions

Страница со списком сессий внешних приложений с роутером по протоколу SAM. Имя сессии задается приложением. Кликнув по сессии, можно увидеть внешний I2P-адрес сессии и список локальных подключений к роутеру в рамках SAM-сессии. Протокол BOB может иметь подобный интерфейс, но в силу малой популярности страница в веб-консоли отсутствует (но теоретически может быть добавлена в будущем). Короче, если будете писать приложения для I2P, лучше ориентироваться на API в виде протокола SAM, чтобы бедные пользователи Java-роутера тоже могли пользоваться вашим продуктом.

Подключение к веб-консоли удаленного роутера

Веб-консоль I2Pd поддерживает конфигурацию с доступом по внешнему адресу и позволяет включить авторизацию пользователя по логину и паролю. Пример такой конфигурации приведен на иллюстрации (показано два вида синтаксиса, поддерживаемых конфигом I2Pd).

Такой подход чреват уязвимостью в случае, когда подключение к веб-консоли осуществляется через обычный интернет без использования дополнительного шифрования трафика (https). Одним из самых практичных и безопасных способов является подключение к веб-консоли через SSH с прокинутым портом. Протокол SSH не нуждается в дополнительной защите, так как имеет встроенное шифрование, и отлично подходит для повседневного использования в силу простоты и распространенности. Локальный порт прокидывается на удаленную машину через флаг -D: ssh -D 8888 user@<server ip> -p <ssh port>.

Приведенная команда позволит подключиться в браузере на SOCKS-прокси по адресу 127.0.0.1:8888 и выходить в глобальную сеть с IP-адреса сервера, а также иметь доступ к локальным ресурсам удаленной машины, словно браузер запущен на ней. В том числе получится подключиться по локальному адресу 127.0.0.1:7070 к веб-консоли I2P-роутера, развернутого на сервере.

Конфигурационный файл

Несмотря на способность роутера работать с передаваемыми значениями (параметры при запуске), распространенной практикой является использование конфигурационного файла. На Debian при установке из пакета конфиг i2pd.conf находится в директории /etc/i2pd/. При запуске бинарника без установки (например, после ручной компиляции роутера), конфигурационный файл читается из директории ~./i2pd/. На Android все рабочие файлы роутера (в том числе конфиг) лежат в одной папке, чаще всего это /sdcard/i2pd/. На Windows стандартной рабочей директорией является %AppData%\i2pd.

Конфигурационные файлы на разных операционных системах принимают одинаковые значения с небольшими исключениями, с которыми можно ознакомиться в официальной документации. Стандартный конфиг с комментариями можно найти в исходниках, в папке contrib (при установке из пакета в системе появляется именно он).

Конфигурационный файл поддерживает два вида синтаксиса:

  1. Указание конфигурируемой секции в квадратных скобках с перечислением параметров этой секции ниже до следующих квадратных скобок;

  2. Указание параметра через точку после имени секции.

Параметры по умолчанию (в том числе при запуске без конфигурационного файла):

  • Веб-консоль включена, доступна по адресу http://127.0.0.1:7070

  • HTTP-прокси включен, доступен по адресу 127.0.0.1:4444

  • SOCKS-прокси включен, доступен по адресу 127.0.0.1:4447

  • SAM включен, доступен по адресу 127.0.0.1:7656

  • Активен фоновый режим работы роутера (демон)

  • Логирование на уровне warn (от warning внимание!)

  • IPv4 включен, IPv6 отключен

    Неупомянутые параметры по умолчанию неактивны.

Очевидно, что описывать здесь весь конфиг, без этого имеющий комментарии, излишне. Поэтому остановимся только пунктах, которые часто вызывают вопросы, или являются граблями для начинающих пользователей.

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


[reseed] Параметры получения стартового пакета (ресида) с несколькими роутерами для начала взаимодействия с сетью I2P. В первую очередь, ресид важен при первом запуске, когда локальная база сети пуста (папка netDb).

verify Проверка подписи полученного ресида. По умолчанию параметр является отключенным. Однако, в стандартном конфиге в состоянии true. Подразумевается, что экземпляр конфигурационного файла имеется после установки из пакета, в который входят сертификаты стартовых узлов (папка certificates). Если верификацию включить, не имея сертификатов, роутер не сможет стартовать.

urls веб-адреса, с которых будет скачен ресид (например, https://example.ru/).

yggurls адрес IPv6 Yggdrasil, с которого будет скачен ресид.

file путь до локального .su3-файла, или прямая ссылка https.

zipfile путь до локального zip-архива базы роутера, или прямая ссылка https.

proxy прокси, используемый при обращении к ресиду.

threshold минимальное количество известных роутеров, при достижении которого произойдет обращение к одному из ресидов. По умолчанию 25.


[persist] Секция, отвечающая за сохранение на диск некоторой динамической информации.

profiles отвечает за сохранение профайлов роутеров на диск, что делает их доступными при следующем запуске. Профайлы представляют из себя текстовые файлы с информацией о качестве взаимодействия с роутером. Например, роутеры, которые не позволяют строить через них транзитные туннели, удаляются из локальной базы.

addressbook отвечает за сохранение полных адресов. При отключении уменьшает нагрузку на диск.

Послесловие

В этой статье опущены некоторые технические вопросы, касающиеся настройки операционной системы, т.к. главная тема не системное администрирование для новичков, а управление I2P-роутером. Не забывайте про функцию --help, встроенную в роутер, а также про официальную документацию. Эти инструменты помогут вам при практической конфигурации.

Продолжение следует: в статье Администратор скрытого ресурса в I2P: Практический курс рассмотрим конфигурацию туннелей, безопасное хранение ключей, мультихоуминг и регистрацию коротких доменов в зоне .i2p.

Подробнее..

Разбор атаки на пользователя I2P

23.04.2021 22:09:05 | Автор: admin

История сети I2P берет свое начало в 2003 году, в связи с чем обросла слухами, домыслами и статьями об уязвимостях, часть из которых уже неактуальна. Перед началом основного повествования обозначим решенные проблемы, упоминание которых вы можете встретить до сих пор. Пусть они вас не смущают.

Распространенные заблуждения

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

F - флудфилыF - флудфилы

На самом деле количество флудфилов растет вместе с сетью, а для обращения к определенному скрытому сервису все флудфилы вовсе не требуются. Каждый скрытый сервис публикует свой полный адрес (называемый лизсетом) на двух флудфилах, ближайших по DHT. В свою очередь координаты DHT меняются каждые сутки практически случайным образом.
При получении публикуемого лизсета, каждый из двух флудфилов дублирует информацию трем другим флудфилам, являющимся наиболее близкими в логическом смысле. Итого лизсет публикуется не менее, чем на четырех практически случайных роутерах, к которым и происходит обращение при поиске адреса конкретного сайта или другого скрытого ресурса. Короче говоря: сеть является распределенной и ресурсы для обработки лизсетов растут вместе с общим количеством узлов. Со времен зарождения байки о плохой масштабируемости I2P, сеть многократно выросла и до сих пор остается функциональной без каких-либо намеков на перегрузку флудфилов. Также стоит добавить, что осуществляется переход на новое шифрование, призванное снизить нагрузку на флудфилы.

Байка номер два: роутер, на котором располагается конкретный скрытый сервис, можно определить по ключу шифрования роутера в лизсете скрытого ресурса. Модель строится на том, что луковичное шифрование, используемое в туннелях, не является достаточным, и в первую очередь к сообщению применяется сквозное шифрование ключом роутера, который должен расшифровать сообщение и передать его локальной конечной точке.

Подразумевается, что ключи у скрытых сервисов уникальные, а у роутера - один единственный и, имея идентификатор этого ключа, можно отслеживать другие туннели пользователя. На самом деле эта угроза была ликвидирована на ранних стадиях разработки I2P. Современный лизсет содержит ключ шифрования, никак не связанный с роутером. Для каждого скрытого сервиса используется уникальный ключ, поэтому сопоставление ключей от лизсетов различных скрытых сервисов одного администратора не дает почвы для предположений, что они находятся на одном роутере.

Байка номер три: туннели I2P можно перехватить. Под перехватом подразумевается не дешифровка трафика, а выявление хозяина туннеля. Для атаки требуется максимально возможное количество роутеров с хорошим аптаймом для постоянного их участия в транзитных туннелях. Суть атаки заключается в ожидании момента, когда туннель жертвы будет в большей части (или целиком) состоять из злонамеренных роутеров. Транзитные узлы ничего не знают об общем количестве роутеров в цепочке, однако длина туннелей по умолчанию составляет три хопа. Если допустить, что три роутера подконтрольных злоумышленнику сообщаются между собой в рамках одного туннеля, он может с большой вероятностью предположить, что конечное звено известной цепочки является хозяином туннеля.

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

Ресид

Самым простым способом борьбы с I2P является блокировка ресид-серверов, к одному из которых происходит обращение за начальным рисунком сети при первом запуске роутера. Ресид представляет из себя архив с некоторым количеством файлов routerInfo, по сути - пакет с информацией о случайных роутерах, через которые строятся первые пользовательские туннели и начинается автоматическое расширение локальной базы сети. Все ресид-серверы держат энтузиасты, а сами адреса ресидов имеются в общем доступе. Обращение к ним происходит по доменным именам и на известные IP-адреса, поэтому собрать всё в список и централизованно заблокировать - задача не из сложных. Однако, затруднить первый запуск вовсе не означает заблокировать работу сети I2P! На случай блокировки поддерживается использование прокси при обращении к ресиду, что с легкостью позволяет обойти ограничения локального провайдера. Помимо этого любой роутер может быть запущен с уже имеющейся базой сети, например, взятой с другого I2P-роутера. Новым шагом в борьбе с возможной блокировкой является использование дополнительных зашифрованных каналов связи. В настоящее время таким инструментом является Yggdrasil Network, который служит не только для обращения к ресиду, но и для полноценного использования сети I2P. Для стороннего наблюдателя активность Yggdrasil сравнима с подключением через VPN. На момент выхода статьи работа I2P через Yggdrsail и прокси реализованы только в i2pd, что является дополнительным аргументом против морально устаревшего роутера на Java.

Второй сценарий манипуляций с ресидом - попытка перехвата архива с роутерами по пути до пользователя, чтобы повредить, или подменить. От этого защищает протокол HTTPS, а также криптографическая подпись. Сертификаты держателей ресид-серверов, т.е. их криптографические удостоверения, распространяются в комплекте с I2P-роутером. После получения стартового пакета роутер проверяет его подпись. Если подпись соответствует сертификату, можно быть уверенным, что ресид не был подменен.

Держатели ресидеров - обычные пользователи, энтузиасты. Они не проходят какую-либо проверку и чаще всего остаются инкогнито. Актуальность ресид-серверов регулярно проверяется сообществом и, в случае нарушения работоспособности, в ближайшем релизе I2P-роутера сервер убирается из списка.

Атака Сивиллы и Затмение

Атака Сивиллы (Sybil) и атака Затмение (Eclipse) имеют схожую реализацию. Их смысл заключается в наводнении сети узлами, подконтрольными злоумышленнику, которые будут работать ради одной цели: держать пользователя в песочнице. Изолирующие роутеры не сообщают информацию об обычных узлах, чтобы пользователь не вышел из блокады. Это позволяет мониторить список ресурсов, которые атакуемый пользователь размещает на своем роутере, а также список тех, которые он посещает. Чтобы получить информацию о входных туннелях скрытого ресурса, необходимо получить его лизсет от ближайшего флудфила, равно также как опубликовать лизсет своего ресурса, чтобы его могли найти.

В случае успешной атаки, все туннели пользователя состоят из узлов, подконтрольных злоумышленнику, также как и доступные флудфилы. Основное отличие атаки Сивиллы от Затмения заключается в том, что модель Сивиллы не направлена на заранее известного пользователя, а Затмение наоборот подразумевает изоляцию изначально известной цели. В любом случае названные модели атак подразумевают использование модифицированных I2P-роутеров и высокую грамотность атакующего. Отойдя от обобщенной теории, разберем возможность осуществления этих угроз.

Атаку Затмение на практике можно считать не реализуемой. Это связано с системой ресидов, которые защищены от перехвата. В случае, когда роутер производит первый старт со скопированной базой сети, т.е. по сути дела со стартовым пакетом не от общеизвестного ресида, а от другого I2P-роутера, будем полагать, что источник априори надежный. Логично заключим, что стартовый пакет из недоверенного источника использовать неследует. Если допустить, что злоумышленник выступит в роли энтузиаста и разместит общеизвестный ресид-сервер, надо особо отметить, что в I2P-роутере используется несколько независимых ресидеров, один из которых выбирается случайным образом. Это делает вероятность таргетированной атаки крайне малой из-за чего теряется смысл попытки ее осуществления.

Атака Сивиллы, нацеленная на мониторинг сети в общем, кажется более подходящей для только что описанной модели со злонамеренным ресидом. Но при подробном рассмотрении окажется, что профит фальшивого ресида не окупит средства, затраченные на его организацию. Во-первых, необходимо иметь большие мощности, чтобы ввести в сеть максимально возможное количество подконтрольных узлов. Во-вторвых, нужно разработать программное обеспечение, которое будет гибко объединять в одну базу данных информацию, собираемую с подконтрольных узлов. В-третьих, атака, направленная на анализ, подразумевает большую длительность, которой не получится, т.к. злонамеренный ресид будет скоро выявлен сообществом. Самый очевидный признак такой атаки - не увеличивающееся, или слишком малое количество известных роутеров, которое отображается в веб-консоли. В параноидальном случае следует удалить всю локальную базу роутера, которая хранится в папке netDb и перезапустить роутер, что спровоцирует новое обращение к случайному ресиду. Если у вас достаточно оснований полагать, что какой-то ресид скомпрометирован, обязательно сообщите об этом сообществу разработчиков. На момент выхода статьи не было зарегистрировано ни одной попытки подобной атаки.

Java router destination attack

Последняя модель атаки весьма сложная, но критически опасная в случае успешного исполнения. Проблема обнародована ведущим разработчиком I2Pd и в роутере на C++ отсутствует, однако в Java-роутере долгое время не исправляется. Модель позволяет определить факт нахождения двух и более конечных точек на одном роутере, т.е. фактически определить, что несколько анонимных сущностей физически расположены на одном компьютере. Возможность атаки заключается в том, что все лизсеты в Java-роутере хранятся в одном месте.

В рамках атаки осуществляется полноценное обращение к некоторой конечной точке (в англоязычной терминологии - destination), которая отвечает и сохраняет лизсет атакующего. Затем происходит обращение к другой конечной точке, однако лизсет для ответа не сообщается, и ответа по логике быть не должно. Если ответ приходит, атакующий с уверенностью заключает, что ответившая конечная точка, которой не был отправлен лизсет для ответа, находится на том же роутере, где и первый ресурс, которому был дан лизсет.

В I2Pd проблема решена просто и изящно: для каждой конечной точки создается отдельное хранилище лизсетов, к которому не могут обратиться другие скрытые сервисы, расположенные на роутере.


При детальном рассмотрении часто упоминаемых угроз оказалось, что уязвимостей в I2P гораздо меньше, чем об этом любят говорить псевдо-эксперты. Поддерживайте свободные проекты, сообщайте о багах и недочетах. Свободное ПО - это когда без финансирования и чаще всего без рекламы, но на совесть. Не забывайте, что СМС при регистрации - это не норма!

Материал составлен по тексту и иллюстрациям из видео. Оригинальная статья размещена в блоге дата-центра ITSOFT.

Подробнее..

Владельца Bitcoin Fog выдал анализ блокчейна от 2011 года

10.05.2021 18:20:09 | Автор: admin


Как известно, Bitcoin не совсем анонимная система. Здесь все транзакции сохраняются и отслеживаются от начала и до конца. Поэтому для реального скрытия денег используются специальные анонимайзеры или миксеры. Они смешивают входящие транзакции на одном адресе, так что на выходе не видно, откуда пришли конкретные монеты.

Bitcoin Fog один из ведущих миксеров. Он работал десять лет. И всё-таки в конце концов предположительного админа сервиса идентифицировали и задержали.

Это история показывает, насколько сложно сохранить анонимность в онлайне. И способ деанонимизации в данном случае особенно показателен.

Предположительным админом оказался 32-летний Роман Стерлингов, гражданин России и Швеции. Что его выдало? След собственных цифровых транзакций десятилетней давности.

Романа задержали 27 апреля 2021 года в Лос-Анджелесе. Согласно судебным документам, его обвиняют его в отмывании более 1,2 миллиона биткоинов на сумму 336 миллионов долларов на момент платежей за десять лет, которые он предположительно управлял Bitcoin Fog.

Комиссия сервиса составляла 22,5%. Исходя из этой цифры и будет определяться выгода, которую якобы извлёк Стерлингов от того, что власти называют отмыванием денег. Примерно 78 миллионов транзакций сервиса исходила из сервисов даркнета по продаже запрещённых наркотиков, оружия и т. д.

Чтобы доказать злые намерения Романа, агенты Налоговой службы США в 2019 году отправили биткоины в сервис, предварительно уведомив админа, что это доходы от продажи экстази. Но транзакция в Bitcoin Fog всё равно успешно прошла. Вот такое доказательство.

В общей сложности, по подсчётам IRS, Стерлингов якобы заработал около 8 миллионов долларов. Это ещё по старому курсу биткоина.

Вычислить админа помогли криптотранзакции 2011 года, которые Стерлингов использовал для регистрации хостинга Bitcoin Fog: Это ещё один пример того, как следователи с правильными инструментами могут использовать прозрачность криптовалюты для отслеживания потока незаконных средств, говорит Джонатан Левин, соучредитель компании по анализу блокчейна Chainalysis.

В материалах уголовного дела рассказывается история, как его деанонимизировали. Началось с того, что он запустил сайт в конце 2011 года, продвигая его под псевдонимом Akemashite Omedetou (с японского С Новым годом) на биткоин-форуме BitcoinTalk.



Стерлингова выследили через тот же анализ блокчейна, от которого он защищал своих пользователей. В 2011 году он заплатил за хостинг сервера Bitcoin Fog, используя ныне несуществующую цифровую валюту Liberty Reserve. В блокчейне Bitcoin сохранилась эти транзакции по покупке Liberty Reserve: сначала он обменял евро на биткоины на известной ранее криптобирже Mt. Gox, затем перевёл эти биткоины через несколько адресов и, наконец, обменял их на другой валютной бирже на монеты Liberty Reserve, которые использовал для создания домена Bitcoin Fog.

Исходя из всей этой цепочки транзакций Налоговое управление идентифицировало аккаунт Mt. Gox, где указан домашний адрес и номер телефона Стерлингова, и даже аккаунт Google, включая русскоязычный документ на Google Диске с инструкциями, как скрывать биткоин-транзакции. В этом документе точно описывались шаги, которые Стерлингов предпринял, чтобы купить монеты Liberty Reserve.

Вот такая история деанонимизации. Bitcoin когда-то считался анонимной криптовалютой, но теперь именно блокчейн Bitcoin со всеми историческими транзакциями с момента создания системы является главным инструментом следователей. Все ваши действия десятилетней давности и сейчас как на ладони.

Интересно, что Bitcoin Fog продолжил работу по адресу http://foggedd3mc4dr2o2.onion и после задержания предположительного админа.




Подробнее..

Можно ли анонимно оплачивать через Apple Pay?

18.05.2021 12:12:57 | Автор: admin

Конечно, нельзя называть Apple Pay анонимным в принципе, хотя бы потому что к ней привязана наша банковская карта. Однако, в момент оплаты что о нас узнаёт продавец? Какие наши персональные данные получает продавец от Apple Pay? Можно ли избежать передачи данных и, тем самым, сделать оплату анонимной в глазах продавца?

Когда мы полагаем, что оплачиваем через Apple Pay, то можем заблуждаться. В зависимости от того что мы приобретаем, используется один из двух механизмов Apple. При покупке любой материальной услуги действительно применяется Apple Pay. Однако, когда мы приобретаем цифровой контент в экосистеме Apple, применяется In-App Purchase. Заказываете Uber через Apple Pay? Верно, это Apple Pay. Оформляете подписку в Apple Music? Это уже In-App Purchase.

Ниже мы рассказываем, какие данные утекают продавцу при оплате внутри приложений. Мы не стали разбирать ситуацию, когда товар оплачивается через POS-терминал, так как она требует отдельного внимания.

Визуально оба механизма очень похожи, но под капотом все иначе. Визуально оба механизма очень похожи, но под капотом все иначе.

In-App Purchase

Как уже было сказано выше, данный механизм оплаты используется только для цифрового контента. Электронные книги в Amazon Kindle, дополнительное пространство в Dropbox, скины в PUBG - это всё примеры цифрового контента.

При анализе In-App Purchase выяснилось, что мы анонимны перед продавцом. Некоторая информация о нас все же передается продавцу, но в обезличенном виде. Если мы купим неприличную книгу в LitRes, то разработчики приложения не узнают, что именно мы её приобрели. При условии, что мы не поделились с приложением личной информацией иным путем.

Какие данные передаются продавцу

Ниже представлена таблица, где мы видим какие данные In-App Purchase передает продавцу.

In-App Purchase

Как предотвратить передачу?

Дата первой установки приложения

Никак

Список всех сделанных покупок

Никак

Биллинговая ошибка на стороне клиента (не хватает денег, карта неактивна)

Никак

Дата первой установки приложения

Можно определить, когда мы первый раз скачали приложение, даже если удалим сейчас, но скачаем заново через пол года.

Список всех сделанных покупок

По сути, только дата покупки и что за продукт был приобретен.

Биллинговая ошибка на стороне клиента

Если мы оформим автовозобновляемую подписку, а потом на карте закончатся деньги или карта будет неактивной, то разработчик узнает об этом.

Технические подробности

Спойлер
  1. Приложение предлагает пользователю какой-то контент.

  2. Пользователь инициирует процесс покупки.

  3. Приложение показывает ему окно для совершения транзакции.

  4. После подтверждения приложение какое-то время думает.

  5. Контент предоставлен.

В это время в приложении происходит целая череда событий. Большая часть из них скрыта внутри самой операционной системы, а именно системной библиотеки StoreKit. В результате покупки разработчик получит специальную строку receipt.

Пример receipt

MIITuAYJKoZIhvcNAQcCoIITqTCCE6UCAQExCzAJBgUrDgMCGgUAMIIDWQYJKoZIhvcNAQcBoIIDSgSCA0YxggNCMAoCAQgCAQEEAhYAMAoCARQCAQEEAgwAMAsCAQECAQEEAwIBADALAgEDAgEBBAMMATMwCwIBCwIBAQQDAgEAMAsCAQ4CAQEEAwIBWjALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMA0CAQ0CAQEEBQIDAYfPMA0CARMCAQEEBQwDMS4wMA4CAQkCAQEEBgIEUDI1MDAYAgEEAgECBBA04jSbC9Zi5OwSemv9EK8kMBsCAQACAQEEEwwRUHJvZHVjdGlvblNhbmRib3gwHAIBAgIBAQQUDBJjb20uYmVsaXZlLmFwcC5pb3MwHAIBBQIBAQQUJzhO1BR1kxOVGrCEqQLkwvUuZP8wHgIBDAIBAQQWFhQyMDE4LTExLTEzVDE2OjQ2OjMxWjAeAgESAgEBBBYWFDIwMTMtMDgtMDFUMDc6MDA6MDBaMD0CAQcCAQEENedAPSDSwFz7IoNyAPZTI59czwFA1wkme6h1P/iicVNxpR8niuvFpKYx1pqnKR34cdDeJIzMMFECAQYCAQEESfQpXyBVFno5UWwqDFaMQ/jvbkZCDvz3/6RVKPU80KMCSp4onID0/AWet6BjZgagzrXtsEEdVLzfZ1ocoMuCNTOMyiWYS8uJj0YwggFKAgERAgEBBIIBQDGCATwwCwICBqwCAQEEAhYAMAsCAgatAgEBBAIMADALAgIGsAIBAQQCFgAwCwICBrICAQEEAgwAMAsCAgazAgEBBAIMADALAgIGtAIBAQQCDAAwCwICBrUCAQEEAgwAMAsCAga2AgEBBAIMADAMAgIGpQIBAQQDAgEBMAwCAgarAgEBBAMCAQEwDAICBq4CAQEEAwIBADAMAgIGrwIBAQQDAgEAMAwCAgaxAgEBBAMCAQAwEAICBqYCAQEEBwwFdGVzdDIwGwICBqcCAQEEEgwQMTAwMDAwMDQ3MjEwNjA4MjAbAgIGqQIBAQQSDBAxMDAwMDAwNDcyMTA2MDgyMB8CAgaoAgEBBBYWFDIwMTgtMTEtMTNUMTY6NDY6MzFaMB8CAgaqAgEBBBYWFDIwMTgtMTEtMTNUMTY6NDY6MzFaoIIOZTCCBXwwggRkoAMCAQICCA7rV4fnngmNMA0GCSqGSIb3DQEBBQUAMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUgSW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MTExMzAyMTUwOVoXDTIzMDIwNzIxNDg0N1owgYkxNzA1BgNVBAMMLk1hYyBBcHAgU3RvcmUgYW5kIGlUdW5lcyBTdG9yZSBSZWNlaXB0IFNpZ25pbmcxLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXPgf0looFb1oftI9ozHI7iI8ClxCbLPcaf7EoNVYb/pALXl8o5VG19f7JUGJ3ELFJxjmR7gs6JuknWCOW0iHHPP1tGLsbEHbgDqViiBD4heNXbt9COEo2DTFsqaDeTwvK9HsTSoQxKWFKrEuPt3R+YFZA1LcLMEsqNSIH3WHhUa+iMMTYfSgYMR1TzN5C4spKJfV+khUrhwJzguqS7gpdj9CuTwf0+b8rB9Typj1IawCUKdg7e/pn+/8Jr9VterHNRSQhWicxDkMyOgQLQoJe2XLGhaWmHkBBoJiY5uB0Qc7AKXcVz0N92O9gt2Yge4+wHz+KO0NP6JlWB7+IDSSMCAwEAAaOCAdcwggHTMD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMDQwHQYDVR0OBBYEFJGknPzEdrefoIr0TfWPNl3tKwSFMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEeBgNVHSAEggEVMIIBETCCAQ0GCiqGSIb3Y2QFBgEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5LzAOBgNVHQ8BAf8EBAMCB4AwEAYKKoZIhvdjZAYLAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAA2mG9MuPeNbKwduQpZs0+iMQzCCX+Bc0Y2+vQ+9GvwlktuMhcOAWd/j4tcuBRSsDdu2uP78NS58y60Xa45/H+R3ubFnlbQTXqYZhnb4WiCV52OMD3P86O3GH66Z+GVIXKDgKDrAEDctuaAEOR9zucgF/fLefxoqKm4rAfygIFzZ630npjP49ZjgvkTbsUxn/G4KT8niBqjSl/OnjmtRolqEdWXRFgRi48Ff9Qipz2jZkgDJwYyz+I0AZLpYYMB8r491ymm5WyrWHWhumEL1TKc3GZvMOxx6GUPzo22/SGAGDDaSK+zeGLUR2i0j0I78oGmcFxuegHs5R0UwYS/HE6gwggQiMIIDCqADAgECAggB3rzEOW2gEDANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTMwMjA3MjE0ODQ3WhcNMjMwMjA3MjE0ODQ3WjCBljELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMo4VKbLVqrIJDlI6Yzu7F+4fyaRvDRTes58Y4Bhd2RepQcjtjn+UC0VVlhwLX7EbsFKhT4v8N6EGqFXya97GP9q+hUSSRUIGayq2yoy7ZZjaFIVPYyK7L9rGJXgA6wBfZcFZ84OhZU3au0Jtq5nzVFkn8Zc0bxXbmc1gHY2pIeBbjiP2CsVTnsl2Fq/ToPBjdKT1RpxtWCcnTNOVfkSWAyGuBYNweV3RY1QSLorLeSUheHoxJ3GaKWwo/xnfnC6AllLd0KRObn1zeFM78A7SIym5SFd/Wpqu6cWNWDS5q3zRinJ6MOL6XnAamFnFbLw/eVovGJfbs+Z3e8bY/6SZasCAwEAAaOBpjCBozAdBgNVHQ4EFgQUiCcXCam2GGCL7Ou69kdZxVJUo7cwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vY3JsLmFwcGxlLmNvbS9yb290LmNybDAOBgNVHQ8BAf8EBAMCAYYwEAYKKoZIhvdjZAYCAQQCBQAwDQYJKoZIhvcNAQEFBQADggEBAE/P71m+LPWybC+P7hOHMugFNahui33JaQy52Re8dyzUZ+L9mm06WVzfgwG9sq4qYXKxr83DRTCPo4MNzh1HtPGTiqN0m6TDmHKHOz6vRQuSVLkyu5AYU2sKThC22R1QbCGAColOV4xrWzw9pv3e9w0jHQtKJoc/upGSTKQZEhltV/V6WId7aIrkhoxK6+JJFKql3VUAqa67SzCu4aCxvCmA5gl35b40ogHKf9ziCuY7uLvsumKV8wVjQYLNDzsdTJWk26v5yZXpT+RN5yaZgem8+bQp0gF6ZuEujPYhisX4eOGBrr/TkJ2prfOv/TgalmcwHFGlXOxxioK0bA8MFR8wggS7MIIDo6ADAgECAgECMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTAeFw0wNjA0MjUyMTQwMzZaFw0zNTAyMDkyMTQwMzZaMGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSRqQkfkdseR1DrBe1eeYQt6zaiV0xV7IsZid75S2z1B6siMALoGD74UAnTf0GomPnRymacJGsR0KO75Bsqwx+VnnoMpEeLW9QWNzPLxA9NzhRp0ckZcvVdDtV/X5vyJQO6VY9NXQ3xZDUjFUsVWR2zlPf2nJ7PULrBWFBnjwi0IPfLrCwgb3C2PwEwjLdDzw+dPfMrSSgayP7OtbkO2V4c1ss9tTqt9A8OAJILsSEWLnTVPA3bYharo3GSR1NVwa8vQbP4++NwzeajTEV+H0xrUJZBicR0YgsQg0GHM4qBsTBY7FoEMoxos48d3mVz/2deZbxJ2HafMxRloXeUyS0CAwEAAaOCAXowggF2MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjCCAREGA1UdIASCAQgwggEEMIIBAAYJKoZIhvdjZAUBMIHyMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5hcHBsZS5jb20vYXBwbGVjYS8wgcMGCCsGAQUFBwICMIG2GoGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wDQYJKoZIhvcNAQEFBQADggEBAFw2mUwteLftjJvc83eb8nbSdzBPwR+Fg4UbmT1HN/Kpm0COLNSxkBLYvvRzm+7SZA/LeU802KI++Xj/a8gH7H05g4tTINM4xLG/mk8Ka/8r/FmnBQl8F0BWER5007eLIztHo9VvJOLr0bdw3w9F4SfK8W147ee1Fxeo3H4iNcol1dkP1mvUoiQjEfehrI9zgWDGG1sJL5Ky+ERI8GA4nhX1PSZnIIozavcNgs/e66Mv+VNqW2TAYzN39zoHLFbr2g8hDtq6cxlPtdk2f8GHVdmnmbkyQvvY1XGefqFStxu9k0IkEirHDx22TZxeY8hLgBdQqorV2uT80AkHN7B1dSExggHLMIIBxwIBATCBozCBljELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkFwcGxlIEluYy4xLDAqBgNVBAsMI0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zMUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIIDutXh+eeCY0wCQYFKw4DAhoFADANBgkqhkiG9w0BAQEFAASCAQCJ9ctD+7Yi9JWvl6G+1HOcDO++mhY6rc6japAgogVF4xmIdh275IKRwZKpQbhoJmxXwElbMjkIsXks/48/EzuaHDQBNIVowq8qQaSUb3msvfAZfi7RGnhaJGzkXf7azr9NLMxX29R2jTiw2oaz2ri49piggmrGfXsLjWs9zTHWHHNRN1fLTPtcWb95JbQNAiQqlecG5a95/+KZ7+joh8fQwbthe8oWs5Tla0DDwrEoIbc5yjFT18Dln5bndTvWQJZcsbI4xa7BAEhjg/nfwPhaL17tHZeW8mOcCtG9UcuAgXXC6usVAOSocenhmKUR8W+D6F/jhBn0k9ahApPDmpZh

receipt нужен для того, чтобы приложение смогло проверить, действительно ли пользователь совершил эту покупку. Обычно приложение передает эту строку на свой бекенд, а тот - в Apple, чтобы проверить покупку. Apple в ответ на запрос пришлет JSON. Он то нам и нужен:

{    "receipt": {        "receipt_type": "ProductionSandbox",        "adam_id": 0,        "app_item_id": 0,        "bundle_id": "com.belive.app.ios",        "application_version": "3",        "download_id": 0,        "version_external_identifier": 0,        "receipt_creation_date": "2018-11-13 16:46:31 Etc/GMT",        "receipt_creation_date_ms": "1542127591000",        "receipt_creation_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",        "request_date": "2018-11-13 17:10:31 Etc/GMT",        "request_date_ms": "1542129031280",        "request_date_pst": "2018-11-13 09:10:31 America/Los_Angeles",        "original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",        "original_purchase_date_ms": "1375340400000",        "original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",        "original_application_version": "1.0",        "in_app": [{            "quantity": "1",            "product_id": "test2",            "transaction_id": "1000000472106082",            "original_transaction_id": "1000000472106082",            "purchase_date": "2018-11-13 16:46:31 Etc/GMT",            "purchase_date_ms": "1542127591000",            "purchase_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",            "original_purchase_date": "2018-11-13 16:46:31 Etc/GMT",            "original_purchase_date_ms": "1542127591000",            "original_purchase_date_pst": "2018-11-13 08:46:31 America/Los_Angeles",            "is_trial_period": "false"        }]    },    "status": 0,    "environment": "Sandbox"}

Оба примера взяты со StackOverflow.

Чтобы определить дату первой установки, в JSON необходимо найти поле original_purchase_date. Это просто дата, когда приложение было скачано тем самым iTunes аккаунтом, через который совершается покупка.

Поле in_app даст информацию о почти всех покупках, совершенных с этого iTunes аккаунта. Почти, потому что в нем не хранится информация о всех consumable покупках, только о текущей (как в примере выше). Consumable покупки - это покупки, которые можно совершать любое число раз, например, наборы монеток или кристаллов, за которые в приложении можно купить что-то. Все остальные покупки будут всегда храниться в этом поле. Причем, что интересно, если мы сделаем возврат покупки через Apple, то это действие также отобразится в этом массиве. То есть, когда мы в следующий раз придем покупать или восстанавливать покупку, разработчик может узнать не только как часто мы покупаем, но и как часто отменяем покупку.

О нехватке баланса на карте можно будет узнать только в случае продления автовозобновляемой подписки. Эту информацию можно получить через App Store Server Notifications. Это система нотификаций от App Store, на которую подписывается бекенд и может обрабатывать разного рода сообщения. В конкретном случае нас интересует событие DID_FAIL_TO_RENEW

Apple Pay

Просто напомню, что Apple Pay предназначен для материальных товаров и услуг. Примерами могут быть: доставка еды в UberEATS, аренда дома в Airbnb, авиабилеты в Skyscanner.

Исследование Apple Pay показало нам, что продавец однозначно понимает, кто у него покупает товар/услугу. Мы полностью открыты в глазах продавца. Можно ограничить доступ к некоторой информации о себе, но кардинально ситуацию не изменить.

Какие данные передаются продавцу

Ниже представлена таблица, где мы видим какие данные Apple Pay передает продавцу.

До подтверждения оплаты

В момент, когда у нас выскакивает шторка с просьбой подтвердить оплату, продавец уже получает о нас информацию.

Поле

Значение

Как предотвратить передачу?

Тип карты

Дебетовая/Кредитная

Никак

Примерный адрес доставки пользователя

Страна, область, город, почтовый индекс

Исказить или убрать в iOS. Настройки iOS Wallet и Apple Pay Параметры оплаты по умолчанию

Примерный платежный адрес пользователя (если не запрошен адрес доставки)

Страна, область, город, почтовый индекс

Исказить или убрать в iOS. Приложение Wallet Карта Настройки Адрес плательщика[1]

Информация о банке эмитенте карты (при наличии договоренности между разработчиком и банком)

Название банка

Никак

После подтверждения оплаты

Как только мы подтверждаем оплату с помощью Face ID, Touch ID или пароля, продавец получает новую порцию данных.

Поле

Значение

Как предотвратить передачу?

Платежная система

Mastercard

Никак

Название карты с последними символами реальной карты

MasterCard 2780

Никак

Точный адрес доставки пользователя

Страна, область, город, почтовый индекс, улица, дом, квартира

До подтверждения оплаты исказить текст в самой шторке

Точный платежный адрес пользователя

Страна, область, город, почтовый индекс, улица, дом, квартира

Исказить или убрать в iOS. Приложение Wallet Карта Настройки Адрес плательщика[1]

Имя Фамилия

Иван Иванов

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

Номер телефона

+77990001122

1. Либо до подтверждения оплаты исказить текст в самой шторке

2. Либо исказить/убрать в iOS. Настройки Wallet и Apple Pay Параметры оплаты по умолчанию[2]

Email

Ivan@gmail.com

От банка-эквайера

После успешной оплаты продавец может запросить дополнительную информацию о нас. Информация запрашивается у того, кто непосредственно обрабатывает нашу оплату (эквайер).

Поле

Значение

Как предотвратить передачу?

IP покупателя

81.18.144.51

Никак

Страна банка эмитента

Россия

Никак

Имя держателя карты

IVAN IVANOV

Никак

Срок истечения действия карты

202109

Никак

Маскированный номер карты, использованной для оплаты (указывается не реальный номер карты, а токен, который был привязан к устройству)

520424**0010

Никак

Как выглядит подтверждение оплаты

Шторка с подтверждением оплаты может выглядеть по-разному. Все зависит от того, какую информацию о нас запрашивает продавец. Любая запрошенная информация обязательна к заполнению.

Технические подробности

Спойлер

Обратимся к официальной документации и к тестовому приложению и попробуем сделать в нем платеж. Как только приложение показывает окно с суммой и просьбой подтвердить покупку, вызывается метод:

func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectPaymentMethod paymentMethod: PKPaymentMethod, handler completion: @escaping (PKPaymentRequestPaymentMethodUpdate) -> Void)

Eсли при формировании let paymentRequest = PKPaymentRequest() еще запросить requiredShippingContactFields, то вызывается следующее:

func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectShippingContact contact: PKContact, handler completion: @escaping (PKPaymentRequestShippingContactUpdate) -> Void)

Целью этих методов является предоставление разработчикам возможности посчитать стоимость доставки, налогов или сделать скидку пользователям определенных карт. Они то и являются источником данных о типе карты, частичном адресе и информации о банке эмитенте. Если пользователь будет выбирать разные карты или адреса доставки, то эти методы будут вызываться при каждом изменении.

По умолчанию адрес возвращаться не будет, но его можно запросить при показе окна с подтверждением. Сделать это можно, передав в соответствующие поля requiredShippingContactFields и requiredBillingContactFields те данные о пользователе, которые мы хотим получить.

let paymentRequest = PKPaymentRequest()paymentRequest.requiredShippingContactFields = [  .postalAddress,   .name,  .phoneNumber,  .emailAddress]paymentRequest.requiredBillingContactFields = [  .postalAddress,  .name,  .phoneNumber,  .emailAddress]

Стоит отметить, что если запрашивать requiredBillingContactFields вместе с requiredShippingContactFields, то billingAddress не будет возвращаться до подтверждения покупки.

Если запросить только requiredBillingContactFields, то при выборе карты вызовется метод:

func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController, didSelectPaymentMethod paymentMethod: PKPaymentMethod, handler completion: @escaping (PKPaymentRequestPaymentMethodUpdate) -> Void)

Из объекта paymentMethod: PKPaymentMethod мы получим:

payment.token.paymentMethod.billingAddress givenName nilpayment.token.paymentMethod.billingAddress middleName nilpayment.token.paymentMethod.billingAddress familyName nilpayment.token.paymentMethod.billingAddress                              street=,                             subLocality=,                             city=Москва,                             subAdministrativeArea=,                             state=Москва,                             postalCode=125009,                             country=Россия,                             countryCode=RUpayment.token.paymentMethod.type 2

А если запросим requiredShippingContactFields, то из метода didSelectShippingContact мы получим:

payment.shippingContact email nilpayment.shippingContact name                          namePrefix:                          givenName:                          middleName:                          familyName:                          nameSuffix:                          nickname:                          phoneticRepresentation:                         givenName:                          middleName:                          familyName:   payment.shippingContact postalAddress                         street=,                         subLocality=,                         city=Москва,                         subAdministrativeArea=,                         state=Москва,                         postalCode=125009,                         country=Россия,                         countryCode=RUpayment.shippingContact phoneNumber nil

Пользователь узнает требуются ли эти данные только после того, как окно платежа уже покажется, а данные - уйдут.

Но если пользователь подтвердит покупку - мы получим еще больше:

payment.billingContact          street=Тверская улица 1 123,         subLocality=,         city=Москва,         subAdministrativeArea=,         state=Москва,         postalCode=125009,         country=Россия,         countryCode=RU

Кроме адреса можно запросить еще ФИО, email и номер телефона. Они будут получены после подтверждения оплаты:

payment.shippingContact email ivan@ivanov.rupayment.shippingContact name                         namePrefix:                          givenName: Иван                         middleName:                          familyName: Иванов                         nameSuffix:                          nickname:                          phoneticRepresentation:                           givenName: Ivan                           middleName:                            familyName: Ivanovpayment.shippingContact phoneNumber stringValue=+77990001122

Но email и номер телефона можно получить только в случае запроса адреса доставки. При запросе адреса платежа такая информация не возвращается:

payment.billingContact email nilpayment.billingContact name                        namePrefix:                         givenName: Иван                        middleName:                         familyName: Иванов                        nameSuffix:                         nickname:                         phoneticRepresentation:                           givenName: Ivan                           middleName:                            familyName: Ivanov  payment.billingContact phoneNumber nil

Также после подтверждения платежа мы получим последние 4 цифры карты, ее платежную систему и название. Ниже пример такой информации для одной из тестовых карт Apple:

paymentMethod.displayName Discover 2780payment.token.paymentMethod.network PKPaymentNetwork(_rawValue: Discover)

Чтобы разобраться с тем, что можно получить от эквайера, обратимся к документации Сбербанка

Там много разной информации, но самыми интересными выглядят следующие параметры:

  • ip - IP покупателя

  • bankInfo - наименование страны банка-эмитента, если доступно

  • cardAuthInfo - данные карты, привязанной к устройству

    • expiration - срок истечения действия карты

    • pan - маскированный номер карты

      • номер, привязанный к мобильному устройству покупателя и выполняющий функции номера платёжной карты в системе Apple Pay

    • cardholderName - имя держателя карты латиницей, если доступно

Примечания

  1. Если адрес не выбран явно, то будет подтягиваться тот, что указан в адресе доставки.

  2. В этих настройках данные могут быть заданы напрямую, либо подтягиваться из карточки контакта из телефонной книги. Если данные были заданы здесь, то в телефонной книге их нельзя будет найти. Если же данные были введены в телефонной книге, то здесь они будут видны, но удалить их можно только через телефонную книгу. Это будет заметно по подписи под email или телефоном (домашний, рабочий и тд) и по тому, что не будет возможности удалить его.

Подробнее..

Свой криптографический протокол опасная идея

01.06.2021 12:20:22 | Автор: admin

Разработка своей криптографии в чём-то сравнима с созданием собственного авиадвигателя, говорит эксперт по безопасности Руна Сандвик. Фото: Виталий Кузьмин

Предположим, заказчик требует разработать собственный сетевой протокол. Например, для передачи данных между сервером и мобильным приложением, для связи между микросервисами, модулями программной системы, поверх UDP или поверх TCP. С шифрованием.

Казалось бы, почему не использовать открытые стандарты типа WebSocket и JSON, зачем собственный закрытый протокол? На это обычно приводят ряд причин. Во-первых, для безопасности, чтобы его было сложнее отреверсить и никто не понял, какие данные вы передаёте. Во-вторых, для эффективности. У нас ведь уникальный случай использования, поэтому стандартные решения не самые оптимальные. Наш собственный протокол будет работать с меньшими задержками, потреблять меньше трафика и меньше расходовать батарею (на мобильных устройствах). И третья причина функции. В своём протоколе специально для нашего приложения мы реализуем уникальные возможности, каких нет ни в открытом стандарте, ни у конкурентов.

Это распространённые причины, из-за которых разрабатывают проприетарные протоколы.

Безопасность


Поговорим о безопасности.

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

На Хабре частенько упоминают реверс-инжиниринг протоколов в различных устройствах: автомобили, тракторы, даже машины для производства мороженого. Производители этой техники стараются скрыть технические данные ради безопасности. Чтобы глупые пользователи не совали шаловливые ручки внутрь.

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

Доходит до того, что некоторые интеграторы вообще пишут уникальный софт для конкретного клиента и отправляют собственного сотрудника в штат компании-клиента. Потому что он единственный, кто умеет работать с этой программой.

В общем, проприетарный протокол кажется очень выгодным для фирмы.

Но жизнь иногда показывает обратное. А именно:

  1. Принцип безопасность через неясность не работает. Любой протокол можно отреверсить.
  2. Проприетарная реализация шифрования это очень рискованно.
  3. Никто не поможет закрыть критические дыры в закрытом софте.

Принцип безопасность через неясность не работает в криптографии


Принцип безопасность через неясность (security through obscurity) заключается в том, чтобы скрыть внутреннее устройство системы или реализацию для обеспечения безопасности.

Но в любой системе есть недостатки. В данном случае разработчик системы хочет спрятать эти недостатки, чтобы злоумышленник ими не воспользовался.

Сравните с опенсорсными системами, где разработчик специально открывает код, чтобы независимые сторонние эксперты помогли выявить и исправить эти недостатки.

В итоге получается, что собственный проприетарный протокол, максимально закрытый от посторонних глаз и обфусцированный, вовсе не увеличивает безопасность системы, а уменьшает её!


В криптографии одно из базовых правил использовать только открытые, публичные алгоритмы и протоколы. В такой системе есть лишь один секрет приватный ключ. Больше ничего. Это принцип Керкгоффса, который широко применяется в криптографии и считается практически неоспоримым.

Голландский криптограф Огюст Керкгоффс изложил правила проектирования военных шифров в книге Военная криптография (1883). Основная идея была в том, что попадание системы в руки врага не должно причинять неудобств. Поэтому ничего, кроме ключа, не должно быть секретным.

Собственная криптография


Вопрос Почему не разработать собственную криптографию? чем-то похож на вопрос Почему не спроектировать авиадвигатель?, говорит Руна Сандвик, исследователь по безопасности. Конечно, теоретически мы можем это сделать. Но это чрезвычайно сложно. Гораздо более простой и надёжный вариант выбрать готовое решение, проверенные и надёжные протоколы и алгоритмы.

Поэтому в сообществе информационной безопасности вызывает большое подозрение, если какая-то компания реализует собственный проприетарный протокол. Например, проприетарный протокол MTProto в Telegram поначалу вызвал массу критических отзывов. Взлом MTProto1.0 стал одной из самых популярных статей на Хабре в 2013 году: Безопасен ли Telegram? Или как я искал закладку в MTProto (спойлер: глупые ошибки в проприетарной криптографии).

Хотя баг быстро исправили, это наглядный пример, почему не нужно разрабатывать собственные авиадвигатели криптографические алгоритмы. Вы можете допустить ошибку а риски огромные. Люди полагаются на безопасное шифрование, от этого зависит их свобода, а иногда жизнь.

К тому же, в мессенджере запрещена анонимная регистрация без номера телефона вероятно, так удобнее коммерческой компании, чтобы блокировать спам и продвигать приложение по адресным книгам. Кто будет думать об анонимности, когда на кону миллиарды долларов прибыли? При этом Telegram изначально позиционировали именно как безопасный мессенджер (многие пользователи купились на такую рекламу).

В реальности для обеспечения анонимности нужно регистрироваться по анонимной сим-карте, но не все это понимают. См. также советы Как защитить свой аккаунт в Telegram и Практическое руководство по анонимности в онлайне.

Привязка к телефонному номеру делает пользователя уязвимым, потому что операторы сотовой связи внутри страны удобный объект для работы спецслужб.

Конечно, в опенсорсе есть свои специфические риски. Например, проблемы с сотнями зависимостей, которые вы не контролируете. Например, 20% багов в проектах на GitHub явно внесены в проекты специально, со злым умыслом. То есть вредоносными контрибуторами, которые действовали умышленно. Ещё не забыта история c мейнтейнером ESLint, который 12 июля 2018 года опубликовал вредоносные версии пакетов eslint-scope и eslint-config-eslint в репозитории npm.

Такое может случиться с каждым опенсорсным проектом, потому что мейнтейнеры работают бесплатно, на износ:


Поэтому иногда соглашаются продать свой проект (такая же история с расширениями для браузеров). А этот проект уже внедрён в качестве зависимости в тысячи других.

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

Кстати, в 2013 году проприетарный софт впервые обогнал опенсорсные проекты по среднему количеству багов на 1000 строк кода.


Источник: Coverity Scan Open Source Report

В прошлом веке считалось, что проприетарный софт пишут профессионалы, а Open Source любители. Сегодня же профессиональный уровень опенсорсных программ вовсе не уступает проприетарным. Может, даже превосходит их.

Возвращаясь к примеру Telegram. 5 декабря 2020 года двое итальянских математиков Марино Микулан и Никола Витоколонна опубликовали на сайте препринтов arXiv.org исследование Автоматическая символическая проверка протокола MTProto 2.0 в Telegram (вторая версия опубликована 30 апреля 2021 года, arXiv:2012.03141v1). Оно подтверждает безопасность обновлённой версии фирменного протокола MTProto 2.0.


Набор протоколов MTProto 2.0 (в голубой рамке) и область покрытия данной научной работы (светло-зелёным цветом). Схема из научной статьи Марино Микулана и Никола Витоколонны, arXiv:2012.03141v1

Статья содержит полностью автоматизированное доказательство надёжности аутентификации MTProto 2.0, обычного чата, зашифрованного end-to-end чата и механизмов повторного ввода ключей в отношении нескольких свойств безопасности, включая аутентификацию, целостность, конфиденциальность и совершенную прямую секретность, а также доказывает формальную корректность MTProto 2.0.


Протокол аутентификации MTProto 2.0. Здесь $\{m\}_{pk}$ означает асимметричное шифрование $m$ открытым ключом $pk$. В свою очередь, $\{m\}_{(k,iv)}$ означает симметричное шифрование общим ключом $k$ с вектором инициализации $iv$. Схема из научной статьи


Слегка упрощённая версия протокола MTProto 2.0 для секретных чатов. Все сообщения перенаправляются через сервер $S$: каждое сообщение между $X \in \{A, B \}$ и $S$ шифруется с использованием ключа авторизации $X$ (здесь не показан). Обратите внимание, что $g_{ab}$, $k$ и $iv$ не известны серверу $S$. Схема из научной статьи



Эта математическая работа чуть ослабила озабоченность экспертов по поводу проприетарного протокола MTProto2.0. Редкий случай, когда собственная нестандартная криптографическая система (пока) работает надёжно. В ней ещё не нашли таких фатальных уязвимостей, как в MTProto 1.0.

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



На правах рекламы


Наша компания предлагает серверы с Linux или Windows. Не экономим на железе только современное оборудование и одни из лучших дата-центров в России и ЕС. Поспешите проверить!

Присоединяйтесь к нашему чату в Telegram.

Подробнее..

Наша анонимность утрачена?

04.06.2021 22:07:07 | Автор: admin

IT-технологии развиваются с каждым годом. Многие корпорации полным ходом развивают технологические подходы в области сбора и обработки полученной информации. Одним из таких подходов является использование баз данных цифровых отпечатков пользователей сети Интернет.

Отпечатки цифровых устройств или цифровые портреты применяются третьими лицами, не только для генерации рекламы, но и для мошенничества и кражи личности. Пользователи сети сами того не подозревая отдают персональные и корпоративные данные, не только без согласия, но и без необходимого контроля. А Вы защищаете свой цифровой портрет?

1. Ip-адрес. Провайдеры годами хранят статистику на каком ip-адресе работал их пользователь. Зная ip-адрес можно легко вычислить расположение пользователя.

2. DNS-запросы. Каждый раз, когда Ваш браузер хочет получить доступ к определенной службе, например Google, обратившись к www.google.com, Ваш браузер запросит службу DNS, чтобы найти IP-адреса веб-серверов Google. Таким образом, интернет-провайдер DNS-записей сможет рассказать обо всем, что Вы делали в сети, просто просмотрев те журналы, которые, в свою очередь, могут быть предоставлены злоумышленнику.

3. NFC-платежи через устройства. Данная технология используется для выполнения бесконтактных платежей. По сути это радиочастотная идентификация. Вы заходите в магазин и на рамке происходит сканирование любых RFID-чипов, которые есть у вас: бесконтактные карты, транспортные карты, рабочие карты доступа, ключи от машины. Эти данные можно собирать и использовать для поиска людей.

4. Устройства Wi-Fi и Bluetooth вокруг Вас. Производители смартфонов заложили функции поиска Вашего местонахождения без использования GPS-функций. Достаточно сканировать Wi-Fi сети вокруг устройства. Данные о Вашем местоположении отправляются на сервера третьих компаний.

5. Использование Wi-Fi на смартфоне. Чтобы получить Ваши данные хакеры могут использовать специальные устройства, которые будут мешать работе wi-fi точек доступа и вынуждать Ваш смартфон подключиться к их устройству вместо публичной wi-fi точки доступа. В этом случае все Ваши данные становятся доступными для злоумышленника. В данном случае используются технологии MITM (Man-In-The-Middle) или человек посередине.

6. Использование Tor/VPN. За прошедшие годы было разработано и изучено множество передовых методов деанонимизации зашифрованного трафика Tor. Атака по корреляционным отпечаткам пальцев: эта атака будет отпечатывать ваш зашифрованный трафик (например, веб-сайты, которые вы посещали) только на основе анализа вашего зашифрованного трафика (без его расшифровки). Он может сделать это с колоссальным успехом в 96%. Такие отпечатки пальцев могут использоваться злоумышленником, имеющим доступ к вашей исходной сети (например, Ваш интернет-провайдер), для выяснения некоторых ваших зашифрованных действий (например, какие веб-сайты вы посещали).

7. Современные смартфоны на Android, IOS.
После выключения такого устройства оно будет продолжать передавать идентификационную информацию на близлежащие устройства даже в автономном режиме с использованием Bluetooth Low-Energy. Это дает способ найти Вас даже если Ваш телефон выключен, но имеет подключенный аккумулятор.

8. IMEI идентификатор Вашего оборудования. IMEI привязан непосредственно к телефону, который вы используете. Этот номер известен и отслеживается операторами мобильной связи, а также известен производителями. Каждый раз, когда ваш телефон подключается к мобильной сети, он регистрирует IMEI в сети. Он также используется многими приложениями (например, банковскими приложениями, злоупотребляющими разрешением телефона на Android) и операционными системами смартфонов (Android/IOS) для идентификации устройства. Сегодня предоставление вашего реального номера телефона в основном то же самое или лучше, чем предоставление вашего паспорта. Журналы антенн оператора мобильной связи также хранят некоторые данные о подключении. Они знают и регистрируют, например, что телефон с IMEI, подключен к набору мобильных антенн, и насколько мощный сигнал каждой из этих антенн. Это позволяет легко выполнять триангуляцию/геолокацию сигнала. Они также знают, какие другие телефоны (например, ваш настоящий) подключены в одно и то же время к тем же антеннам с тем же сигналом, что позволит точно знать, что этот телефон всегда был подключен в том же месте и в то же время, что и этот другой телефон, который появляется каждый раз, когда используется записывающий телефон. Эта информация может использоваться различными третьими сторонами для точного определения вашего местоположения/отслеживания.

9. Ваш браузер. При посещении любых сайтов ваш браузер получает уникальные cookie-данные с каждого сайта. Ваши данные в браузере становятся уникальными, а это значит, что веб-порталы знают кто зашел через браузер. На смену cookies приходят supercookies и Ваша анонимность сводится практически к нулю.

10. Покупки через карты. Банк собирает информацию о ваших покупках. Банк знает сколько, на что и где вы тратите деньги. Банк видит ваши предпочтения, может предсказать Ваши последующие действия проанализировав предыдущий период, в нужный момент предложить финансовые услуги. Этими данными банк может поделиться с третьими организациями.

11. Google-сервисы. Данные сервисы анализируют ваше географическое положение, звуки вокруг устройства. Эти данные могут использоваться компанией в рекламных целях или быть переданными третьим лицам.

12. Использование антивируса. Антивирус кроме основных своих целей по поиску и обезвреживанию вирусов анализирует вашу сетевую активность, данные браузеров. Эти данные могут быть переданы третьим лицам.

При повышении количества собранных данных формируется цифровой профиль человека, которые содержат в себе:

  • пол;

  • возраст;

  • семейное положение;

  • политические, религиозные взгляды;

  • финансовое состояние;

  • интересы;

  • привычки;

  • и многие другие.

Согласно результатам исследования EFF (Electronic Frontier Foundation), уникальность отпечатка браузера очень высока и он содержит в себе ниже описанные данные:

  • User-agent (включая не только браузер, но и версию ОС, тип устройства, языковые настройки, панели инструментов и т.п.);

  • Часовой пояс;

  • Разрешение экрана и глубину цвета;

  • Supercookies;

  • Настройки куки;

  • Системные шрифты;

  • Плагины к браузеру и их версии;

  • Журнал посещений;

  • И другие данные.

Если говорить о статистике, то только раз на 286777 случаев случается полное совпадение отпечатков браузеров двух разных пользователей.

Согласно исследованию Browser Fingerprinting via OS and Hardware Level Features, точность идентификации пользователя при помощи отпечатка браузера составляет 99,24%.

Как же сохранить анонимность сегодня? Возможно только если уехать в лес и не пользоваться никакими техническими благами цивилизации или же ждать разработок, которые решат эти проблемы.

Статья написана в соавторстве:
1. Меньшиков Ярослав
2. Беляев Дмитрий

Подробнее..

Текущее положение дел по распознаванию лиц и камерам наблюдений в Москве и мире

20.04.2021 22:19:53 | Автор: admin
image

Количество камер наблюдения в столицах и ключевых городах мира. Слева направо, сверху вниз: Москва 193 000, Лондон 627 707, Нью-Йорк 31 490, Пекин 1 150 000, Париж 26 834, Шэньчжэнь 400 000.

Как развивались события и росла (нейро)сеть камер наблюдения в Москве.

2016 год


Февраль 2016 года. NtechLab выпустила в открытый доступ FindFace: пользователи могли находить людей во ВКонтакте по фотографии на улице или в транспорте.

20 апреля 2016 года пользователи Двача деанонимизировали российских порноактрис с помощью FindFace.

7 июля 2016 года Даниил Туровский рассказал о приложении FindFace и технологиях тотальной слежки

2017


28 сентября 2017 года власти Москвы начали подключать к городской системе видеонаблюдения технологию распознавания лиц российской компании NTechLab. За два месяца работы системы в тестовом режиме с её помощью удалось задержать шестерых преступников, которые находились в федеральном розыске.

2018 год


FindFace Security от NtechLab позволила задержать более 180 правонарушителей на ЧМ-2018, часть задержанных находилась в федеральном розыске.

2019 год


27 июня 2019 года. МВД раскрыло результаты тестового внедрения систем распознавания лиц в метро и на улицах Москвы. С помощью 1000 камер снаружи подъездов жилых домов сотрудники правоохранительных органов задержали 90 человек.

В ноябре 2019 года мэрия заказала 258 серверов, 105 компьютеров и систему хранения данных общей емкостью 9 петабайт на 1,2 млрд руб.

2020 год


В январе 2020 года был объявлен конкурс на 1,9 млрд руб. на поставку оборудования для системы распознавания лиц на транспорте.

С 1 сентября 2020 года в московском метрополитене заработала система видеонаблюдения. Она охватывает все станции метро. Теперь планируется развивать эту систему в направлении пассажирских сервисов. Одним из них станет FacePay, который позволяет оплачивать проезд по скану лица.

15 ноября 2020 года Департамент правительства Москвы по конкурентной политике выделил 252,6 млн руб. для расширения системы хранения данных интеллектуальной системы видеонаблюдения (ИСВН) в метро. Соответствующий тендер опубликован на портале госзакупок. Подрядчик должен будет установить не менее 2220 жестких дисков объемом не менее 4 Тбайт. Общая вместимость хранилища записей с камер наблюдения увеличится минимум на 8880 Тбайт. (Источник)

Национальный институт стандартов и технологий США (NIST) провёл исследование и подтвердил, что системы не справляются с масками. Но уже спустя полгода компании решили эту проблему в исследовании NIST от декабря 2020 года все три компании из России попали в список тех, кто совершает меньше всего ошибок.

2021


2 марта 2021 года. Более 900 преступников задержали благодаря системе распознавания лиц в Московском метрополитене за полгода.

Мэрия Москвы до 2025 года потратит 2,917 млрд руб. на систему видеонаблюдения с функцией распознавания лиц в Новой Москве.

Затраты Москвы на модернизацию систем умного видеонаблюдения и анализа информации о гражданах постоянно растут. Если в 2019 году ДИТ потратил на эти цели 60,8 млрд руб., в 2020-м около 68 млрд руб., то по итогам 2021 года расходы ожидаются на уровне 70,8 млрд руб., следует из информации на сайте Мосгордумы.

image

Центр видеонаблюдения, куда стекаются данные ДИТ. Фото Антона Тушина для ТАСС

Мировая статистика по камерам слежения


Отчет Surfshark.

  • Ченнаи в Индии город с самой высокой плотностью камер видеонаблюдения: 657,28 на км2.
  • В Лондоне, Англия, больше всего камер видеонаблюдения на кв. км за пределами Азии: 399,27/ км2.
  • Нью-Йорк город США с самой высокой плотностью камер видеонаблюдения: 25,97/км2.
  • В Пекине в Китае больше всего камер (1,15 млн), но он занимает 10-е место по плотности (277,51/км2).
  • Шесть из 10 городов с наибольшей плотностью камер видеонаблюдения находятся в Китае, три Индии.


image


Топ-9 городов по количеству установленных камер. С 4 по 22 места Индия и Китай. Москва на 23 месте.

image


Топ-9 городов по концентрации на кв км. Париж 12 место, Багдад 16 место, Гвадалахара 17 место, Сингапур 23 место, Буэнос-Айрес 29 место, Москва 30 место, Санкт-Петербург 46 место

Не только камеры, не только лицо


image

2 февраля 2021 года. Министерство внутренних дел России намерено при помощи искусственного интеллекта определять преступников по голосу. Тендер на соответствующую программу и оборудование был размещен на официальном сайте.

А разработки MIT позволяют видеть сквозь стены:

image

Статья на Хабре: Машинное (радио)зрение видит сквозь стены



Выводы


Москвичи стали материалом для обучения и развития нейронных сетей системы. Благодаря тому, что люди пользуемся системами идентификации, гос. услугами, заходят в метро, система понимает о людях и лицах всё больше и больше.

Понятие приватности нужно оставить в XX веке. В XXI оно не применимо. Все будут знать про вас всё, это лишь вопрос времени. И вы от этого только выиграете.
Александр Минин, гендиректор NtechLab


Источники


Подробнее..

Прощай Google! 15 Альтернативных поисковиков, которые не шпионят, а сажают деревья и раздают воду

21.06.2020 12:22:54 | Автор: admin
Аве Кодер!

В этой статье речь пойдет о крутых инди поисковиках, которые могут составить конкуренцию поисковым гигантам, а также удовлетворить вкусы как утонченного мусье, так и идейного борца за личную жизнь.


CC Search


ccsearch.creativecommons.org

CC Search заточен под то, чтобы искать материал не обремененный авторскими правами. Так что если ты контент мейкер, особенно начинающий и денег на платные подписки пока нет, а годноты таки хочется, то этот поисковик то, что надо.

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

Работает CC Search довольно прямолинейно: он извлекает результаты с таких платформ, как Soundcloud, Wikimedia и Flickr и отображает результаты, помеченные как материал Creative Commons.

В панели слева можно выбрать тип лицензии по которой будет фильтроваться контент, ну и прочие стандартные фильтры тип файла, размер, также можно фильтровать по источникам добычи.

SwissCows


swisscows.ch

Швейцарские коровы это уникальный поисковик с милым швейцарским дизайном и запахом сыра. Oн позиционирует себя как семантическую поисковую систему для семейного пользования и использует искусственный интеллект для определения контекста пользовательского запроса.

Они так же гордятся тем, что уважают частную жизнь пользователей, никогда не собирая, не сохраняя и не отслеживая данные. Что ж, надеюсь их защита имеет меньше дыр, чем их сыр.

DuckDuckGo


duckduckgo.com

Поисковик УткаУткаИди не собирает и не хранит твои личные данные, по крайней мере так они говорят (кря).
Это означает, что ты можешь спокойно выполнять поиск, не беспокоясь о том, что твой личный ФСБшник узнает, что ты все еще ищешь адрес того деда мороза, которому рассказывал стишок когда тебе было 9 и почему поиск продолжает выдавать адрес мордовской колонии номер 17.

В любом случае, DuckDuckGo идеальный выбор для тех, кто хочет сохранить свои привычки просмотра и личную информацию конфиденциальной, если ты понимаешь о чем я.

StartPage


www.startpage.com

StartPage предоставляет ответы от Google, что делает его идеальным выбором для тех, кто предпочитает результаты поиска Google, но не хочет, чтобы их история поиска отслеживалась и сохранялась.

Он также включает в себя генератор URL, прокси-сервис и поддержку HTTPS.
Генератор URL особенно полезен, потому что он устраняет необходимость собирать куки.
Вместо этого он запоминает настройки таким образом, чтобы обеспечить конфиденциальность.

SearchEncrypt


www.searchencrypt.com/home

SearchEncrypt это поисковая система, которая использует локальное шифрование для обеспечения конфиденциальности запросов.

Информация для реальных ценителей поисковик использует комбинацию методов шифрования, которые включают шифрование Secure Sockets Layer и шифрование AES-256.

Когда ты вводишь запрос, Search Encrypt извлекает результаты из своей сети партнеров по поиску и передает запрашиваемую информацию.

Интересная особенность Search Encrypt заключается в том, что после 30 минут бездействия, твои поисковые запросы и настройки обнуляются, поэтому никто не узнает что ты там искал, печатая одной рукой.

Search Encrypt Выбор настоящего параноика.

Gibiru


gibiru.com

Календарь Мая предсказывал столкновение Земли с планетой Нибиру, но в итоге Земля столкнулась с Gibiru.

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

Все их доходы генерируются через сбор комиссии, когда пользователи покупают или продают через их поисковик. Также имеется мобильный аналог приложение Wormhole и ExpressVPN, видимо, от их друганов.

OneSearch


www.onesearch.com

В январе 2020 года Verizon Media, так называется подразделение Verizon Communications, то есть Bell Corporation, после того, как ее раскололи и перекрасили запустила поисковую систему OneSearch, ориентированную на конфиденциальность.

Они заявляют что в их поисковике:
Нет отслеживания файлов cookie, ретаргетинга или личного профилирования.
Нет обмена персональными данными с рекламодателями.
Нет хранения истории поиска пользователей.

Но есть:
Беспристрастные, нефильтрованные и зашифрованные результаты поиска.

По сути, это еще один поисковик, пытающийся позиционировать себя не похожим на Google, тот в свою очередь не скрывает что проводит сбор данных, однако, что твориться в OneSearch на самом деле неизвестно.

Wiki.com


wiki.com

Это поисковой агрегатор, выуживающий информацию с википедии и с тысяч различных wiki по всему интернету.

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

Boardreader


boardreader.com

Если посреди ночи ты не можешь уснуть оттого, что наконец придумал, что бы ты ответил тому засранцу на форуме по арктическим пингвинам 5 лет назад, то этот поисковик поможет тебе разыскать нужную ветку, ведь ищет он как раз по различным форумам, бордам и ответам мейл.ру.

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

giveWater


www.givewater.com

Пока Джеф Безос наслаждается званием человека, собравшего больше всех нулей на своем банковском счету, два хипана из Нью Йорка сделали дайВоду поисковик, который они сами описывают как социально значимый.

Итак, как он работает:
Ты используешь giveWater, для поиска, к примеру, материала для своего диплома.
Платные поисковые объявления генерируют доход для giveWater.
giveWater распределяет прибыль от этих объявлений между своими партнерами благотворительными фондами
Фонды используют пожертвованные средства для обеспечения чистой водой.

Ecosia


www.ecosia.org

Поисковик из Германии, который отдает 80% своих доходов на посадку деревьев и работающий по схожему с giveWater принципу, ставя социально значимые проекты на первое место перед прибылью для акционеров и инвесторов.

Когда в 2019 PornHub пообещал начать сажать деревья за просмотры видео, пользователи незамедлительно предложили открывать PornHub в Ecosia, дабы озеленить планету с еще большей скоростью. Как говорится: ствол за ствол.

Ekoru


www.ekoru.org

Еще один озеленительный проект, который утверждает, что их сервера также работают на зеленой энергии.

Ekoru использует доходы для очистки океана, предотвращения гибели лесов и изменения климата в худшую сторону. А также дает прохладу, влажность и, скорее всего, силу земли.

Slideshare


www.slideshare.net

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

Wayback Machine


archive.org

Он же интернет архив. Хочешь узнать, не был ли сегодняшний божий одуванчик в прошлом злым бармалеем, пытающимся замести следы, или просто ностальгируешь по тому, что любимый сайт выглядел раньше не то, что сейчас?

Тогда тебе сюда. Этот поисковик делает снимки интернет ресурсов в определенный момент времени, в которое ты и можешь отправиться.

У Ясеня


уясеня.рф

Как известно, настоящие мужики не пользуются гуглом, они спрашивают у ясеня. Но поскольку неспешные беседы с деревом могут перерасти в поездку в тихое место с мягкими стенами, артель, по всей видимости, православных разработчиков создала былинный поисковик уясеня.рф

К сожалению Ясень в основном качает головой и не выдает реальные результаты, дерево все-таки.

Здесь также можно найти некий яснослов, который позволяет яснословить. А именно складывать новые великолепные слова на основе существующих.

Например, можно спросить у Ясеня имя своего будущего чада и сказочный пилматериал съяснословит что-то вроде Енотия.

Судя по дизайну, пилили его пока у авторов не выветрилась брага.

Но мы желаем авторам плодотворного труда, дабы порадовать люд православный новыми поделками скоморошными, например, подсчет годочков бытия с помощью кукушки.



Пиши в комментариях свои личные предпочтения или если я упустил кого-то достойного внимания. Аве!
Подробнее..

Абсолютная приватность сервиса в I2P зашифрованый лизсет

03.05.2021 22:12:52 | Автор: admin

Принцип анонимности I2P заключается в неизвестном месторасположении скрытого сервиса. Каждый скрытый сервис (например, сайт или пользователь, который его посещает) взаимодействует с другими ресурсами исключительно через анонимизирующие туннели. Туннели строятся через роутеры участников сети также, как другие пользователи строят туннели через наш роутер. Такая модель создает множество прямых соединений между I2P-роутерами, в которых нельзя определить на каком роутере начался или закончился тот или иной туннель: тысячи одновременных зашифрованных подключений не дают такой возможности.

Чтобы связаться с любым скрытым сервисом, необходимо получить его лизсет (LeaseSet), который содержит информацию о входных туннелях и криптографических ключах. Для этого все серверные конечные точки, ожидающие подключение, публикуют свои лизсеты на флудфилах (Floodfill) роутерах, выступающих в роли справочной книги или доски объявлений. Несмотря на то, что флудфил получает лишь информацию о первых узлах входных туннелей и криптографические ключи, т.е. никакой компрометирующей информации в лизсете нет, архитектура I2P предусматривает использование зашифрованных лизсетов. Это позволяет скрыть наличие конечной точки (она же скрытый сервис и destination) от возможного мониторинга на флудфилах.

Идентификатор незашифрованного лизсета обычный внутрисетевой адрес скрытого ресурса, только без окончания .b32.i2p. Это позволяет держателям флудфилов видеть в открытом виде адреса ресурсов, которые у них опубликовались. Если вы подняли в I2P личный ресурс и не хотите, чтобы о нем случайно узнал кто-то еще, зашифрованный лизсет специально для вас!

Незашифрованный лизсет на флудфилеНезашифрованный лизсет на флудфиле

Сокрытие идентификатора лизсета в англоязычной терминологии называется blinding (ослепление). Отсюда происходит название адреса скрытого сервиса с зашифрованным лизсетом bb32 blinded-b32. В свою очередь b32 во всех доменах сети является сокращением от названия кодировки base32, которой кодируется информация, образующая домен.

Идентификатор лизсета типа bb32 (который видит флудфил) не соотносится с адресом, поэтому не может сообщить владельцу флудфила фактическое имя опубликованного у него ресурса. Также к адресу типа bb32 нельзя привязать короткий домен в зоне i2p. Единственный способ обратиться к подобному скрытому сервису иметь полную строку его адреса. Получая на вход bb32-адрес, I2P-роутер запрашивает у флудфила соответствующий зашифрованный лизсет, а затем расшифровывает его содержимое, используя дополнительную информацию, закодированную в домене.

Доменное имя обыкновенной конечной точки целиком состоит из хеша полного адреса (набор криптографических ключей, который затем приходит вместе с лизсетом), а адрес с зашифрованным лизсетом это публичный ключ подписи скрытого ресурса, а также три байта специальной информации: флаги, тип подписи и тип зашифрованной подписи.

Ознакомиться с криптографическими подробностями блиндинга, т.е. сокрытием идентификатора лизсета, а также с шифрованием его содержимого, можно в официальном документе. Согласно приведенной документации в зашифрованном лизсете поддерживается два типа подписи: EDDSA_SHA512_ED25519 (тип 7) и REDDSA_SHA512_ED25519 (тип 11), однако настоятельно рекомендуется использовать только второй из приведенных. В случае i2pd нерекомендуемый вариант вовсе не реализован, т.к. считается практически бессмысленным.

Это связано с тем, что, во-первых, тип подписи 11 алгоритмически является более оптимальным для использования в зашифрованном лизсете, во-вторых, тип подписи 7 применяется по умолчанию и допускает неумышленное использование уже существующего адреса в связке с зашифрованным лизсетом. Теоретически это является уязвимостью, т.к. позволяет флудфилу-злоумышленнику раскрыть очередной зашифрованный лизсет сервиса, который до этого с тем же ключом подписи использовал лизсет обычного типа. Это возможно из-за алгоритма вычисления блиндинга, который можно воспроизвести, заранее зная полный адрес конечной точки, включаемый в лизсет. Подразумевается, что пользователь, назначивший вручную тип подписи 11 наверняка сразу укажет и нужный ему тип лизсета, что предотвратит утечку.

Минимальная конфигурация туннеля конечной точки типа bb32 (которая иногда почему-то называется b33, что не имеет какой-либо логики) выглядит следующим образом (принципиальны последние две строки):

[SUPER-HIDDEN-SERVICE]type = serverhost = 127.0.0.1port = 8080inport = 80signaturetype = 11i2cp.leaseSetType = 5

Чуть раньше были упомянуты флаги, содержащиеся в первом байте адреса с зашифрованным лизсетом. Все, что нас интересует в контексте данной статьи, это флаг авторизации. Настраивается через дополнительный параметр конфигурации i2cp.leaseSetAuthType. Вкратце: это позволяет сделать доступ к приватному ресурсу еще более контролируемым, создавая список по ключам или парольным фразам для каждого пользователя, а в случае чего убрать конкретный идентификатор из списка, после чего соответствующий пользователь уже не получит лизсет, следовательно, и доступ к ресурсу. Подробнее об этом вы можете узнать из документации (параметры i2cp.leaseSetPrivKey, i2cp.leaseSetClient.dh.nnn, i2cp.leaseSetClient.psk.nnn).

Оригинальная статья опубликована в блоге дата-центра ITSOFT.

Подробнее..

Картирование цифровых прав, часть V. Право на приватность

08.09.2020 22:18:39 | Автор: admin

TL;DR: Эксперты делятся видением проблем в России, связанными с цифровым правом на приватность.

12 и 13 сентября Теплица социальных технологий и РосКомСвобода проводят хакатон по цифровому гражданству и цифровым правам demhack.ru. В преддверии мероприятия организаторы публикуют последнюю статью, посвященную картированию проблемного поля для того, чтобы программисты и активисты смогли найти для себя интересный вызов. Предыдущие статьи:

  1. Право на публикацию цифровых произведений (часть I);

  2. Право на доступ к информации (часть II);

  3. Право на анонимность (часть III);

  4. Право на доступ к Интернету (часть IV).

Право на приватность

Право человека на приватность (неприкосновенность частной жизни) подкрепленное юридическими нормами убеждение, что никто не может подвергаться произвольному или незаконному вмешательству в личную или семейную жизнь, произвольным или незаконным посягательствам на неприкосновенность жилища или тайну корреспонденции, незаконным посягательствам на честь и репутацию. Каждый имеет право на защиту закона от подобного вмешательства или таких посягательств.

Наиболее легитимным международным данного права на данный момент можно считать резолюцию Ген.Ассамблеи ООН от 18 декабря 2013 г. номер 68/167 Право на приватность в цифровую эпоху. Исполнение права на приватность важно для реализации права на свободу слова, чтобы иметь иметь точку зрения без стороннего вмешательства.

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

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

Право на приватность позволяет нам сказать, что мы не просто строчки в базах данных, не айдишники с прописанным показателями LTV. Право на приватность не только устанавливает права собственности на источаемые нами данные, но и четко определяет субъект прав принятия решений это пользователи, а не сервисы имеют первостепенное право в управлении своей приватностью.

В рамках этого направления мы с экспертами обсудили ряд сюжетов:

  1. Защита от слежки. Защита от и противодействие незаконной или произвольной слежке за людьми;

  2. Защита и управление собственными данными. Защита от и противодействие незаконному или произвольному сбору данных, включая персональные данные;

  3. Защита жилища. Защита от и противодействие посягательствам на неприкосновенность жилища;

  4. Защита переписки. Защита от и противодействие незаконному или произвольному перехвату сообщений;

  5. Правовая защита. Способствование повышению эффективности правовой защиты граждан при отстаивании своих прав на приватность.

Сюжет 1. Защита от слежки

 Один из самых впечатляющих проектов по визуализации слежки в Интернете проект Glass Room от Tactical Technology Collective. Источник: https://theglassroom.org Один из самых впечатляющих проектов по визуализации слежки в Интернете проект Glass Room от Tactical Technology Collective. Источник: https://theglassroom.org

Проблема 1.1. Коммерческие компании сотрудничают с государствами и предоставляют избыточный (больше, чем предусмотрен здравым смыслом и законодательством) объем данных о пользователях.

Варианты решений на хакатон:

  1. Индексы отчетности. Создать инструменты увеличения прозрачности деятельности компаний с помощью которых будет проще выявлять связи государств и коммерческих компаний.

  2. иные решения построения института репутации для бизнеса

Проблема 1.2.: Социальный мониторинг сделал слежку одновременно массовой и персональной. Снизился порог восприятия слежки как проблемы.

Варианты решений на хакатон:

  1. Образовательные материалы на самом простом языке, пригодные, например, для распространения в районных группах соцсетей. Что такое Социальный мониторинг, чем конкретно он грозит и кому, что делать.

  2. Аудит существующих приложений для слежки за гражданами.

Проблема 1.3.: Нехватка просветительских материалов: приложений о незаконной слежке и последствиях для человека.

Варианты решений на хакатон:

  1. Мобильное приложение образовательного характера. Например, Игра по незаконной слежке;

  2. Доделать мобильное приложение по цифровым правам Гэбня от Команды 29;

  3. Разработка персональных ассистентов по приватности (как коммерческих, так и некоммерческих);

Проблема 1.4. Отсутствие двухфакторной аутентификации. У многих сервисов либо отсутствует двухфакторная аутентификация, либо есть реализация только через СМС.

Вариант решения на хакатон: Рейтинг и антирейтинг российских сервисов на наличие двухфакторной аудентификации.

Проблема 1.5. Открытость рабочих чатов в Телеграме. Проблема с присутствием в чатах неопределенных пользователей, которые делают скриншоты переписки, которая впоследствие используется против авторов. Данная проблема может повлиять на репутацию в соц.сетях, идентификацию. Размыт баланс между открытостью и анонимностью.

Вариант решения на хакатон: решения для выявления засланных казачков. Соц-инженерное, техническое. Возможно, элемент игры.

Проблема 1.6. Фишинг и вредоносные программы. Зачастую люди не сразу могут обнаружить, что их взломали и большинство не знают, как это определить.

Варианты решений на хакатон:

  1. Сервис для широкой аудитории с определением взлома и передачи информации с устройства.

  2. Лучшим решением против фишинга является использование 2FA + менеджер паролей. Решением является популяризация использования 2FA.

Проблема 1.7. Проблема привязки мессенджеров к номеру телефона.

Вариант решения на хакатон: доработки мессенджеров для того, чтобы сделать их без привязки к телефону.

Проблема 1.8. Опасность симок в своих телефонах не все знают, какие векторы атаки возможны.

Вариант решения на хакатон: Образовательный проект об опасностях SIM-карт.

Сюжет: 2. Защита и управление собственными данными

Проект The Dating Brokers от Tactical Technology Collective рассказывает о том, какие данные собираются приложениями знакомств и что с ними можно сделать. Источник: https://datadating.tacticaltech.org/viz Проект The Dating Brokers от Tactical Technology Collective рассказывает о том, какие данные собираются приложениями знакомств и что с ними можно сделать. Источник: https://datadating.tacticaltech.org/viz

Проблема 2.1. Проблема избыточного предоставления данных о самих себе. Многие не воспринимают приватность (не говоря уже об анонимности) как ценность вообще. В обществе насаждается демонизация анонимности (аргумент мне нечего скрывать) или отрицание смысла приватности (приватность умерла). Как следствие безграмотное ведение и небезопасное ведение соцсетей. Здесь и (без злого умысла) засвечивание других людей без их согласия; и связывание аккаунтов; и позволение друзьям писать у себя на странице; и ошибочное восприятие подзамочных постов как непубличного распространения информации.

Вариант решения на хакатон: Информационный ресурс, объясняющий последствия избыточного предоставления данных о себе. Справочник о цифровых правах, безопасности и анонимности.

Проблема 2.2.: Приложения запрашивают слишком много данных.

Вариант решения на хакатон: Индексы жадности приложений и сервисов. Разработка понятия необходимого и достаточного объема данных.

Проблема 2.3. Утечки персональных данных из официальных баз:. Цифровая личность человека в даркнете продается за $50 (согласно исследованию Лаборатории Касперского), скан паспорта в даркнете стоит $10 (по заявлению компании Comparitech).

Проблема 2.4. Сайт-ловушки приватности. Многие сайты сами становятся агентами продвижения многих инструментов, собирающих данные о пользователях, т.к. эти инструменты предоставляют админам удобные данные аналитики. Самим админам аналитика кажется совершенно безобидной и полезной, но они не видят общей картины, масштабного сквозного сбора данных о пользователях по миллионам различных каналов.

Вариант решения на хакатон: создание децентрализованных систем аналитики, которые могли бы собирать аналитику, но не продавать.

Сюжет 3. Защита жилища

 Фото: Обложка книги DIY Guide to Zombie Apocalypse Фото: Обложка книги DIY Guide to Zombie Apocalypse

Проблема 3.1. Тайная слежка за партнерами. В попытке слежки за собственными партнерами, некоторые люди установливают камер внутри домов.

Вариант решения на хакатон: Детектор камеры является ли она включенной в доме или нет.

Проблема 3.2. Домофоны-стукачи. Системы видеонаблюдения у входных дверей многоквартирных домов, которые подключены к распознаванию лиц.

Варианты решений на хакатон:

  1. Анализ и определения домофона с установленной камерой, возможность установить правильный домофон.

  2. Решение, позволяющее определить легальность установки такой системы.

Проблема 3.3. Умный дом своими руками. Неосведомленность людей о наличии возможностей слежки в системах т.н. умного дома

Вариант решения на хакатон: Сделать гайд по возможностям умного дома. Гайд или видеокурс по тому, как самому запрограммировать и сделать датчики движения или тепла, систему оповещения и пр. своими руками. Пример: DIY Guide to Zombie Apocalypse.

Сюжет 4. Защита переписки

Скриншот проекта Encipher Скриншот проекта Encipher

Проблема 4.1. Нераспространенность мессенджеров, популярность небезопасных сервисов.

Вариант решения на хакатон: под популярные платформы создание плагинов для шифрования на лету, наподобие encipher.it.

Проблема 4.2. Невысокая конкуренция безопасных сервисов. Существует не так много сервисов по ключевым вопросам, а следствие у наиболее популярных сервисов пропадает стимул совершенствоваться и защищать пользовательские данные.

Варианты решений на хакатон:

  1. Создать сервис конкурент Zoomу? Новый инструмент: https://accelerator.reutlingen-university.de/

  2. Доработка сервиса Delta Chat. Создание бота для Delta Chatа. Перевод руководства по установке.

Сюжет 5. Правовая защита права на приватность

 Скриншот проекта Cyrilla базы данных решений судов по цифровым правам. Скриншот проекта Cyrilla базы данных решений судов по цифровым правам.

В этом блоке эксперты выделили целый куст проблем: Низкий уровень защиты персональных данных. Халатное отношение госорганов к защите персональных данных. Трудность доказывания размера убытков от утечки данных пострадавшим лицам, неготовность судов к присуждению существенных сумм морального вреда (в России вообще в целом моральный вред работает очень плохо в судебной системе). Трудность в оценке стоимости персональных данных. Ничтожный размер штрафов за утечки данных для юридических лиц, несущих ответственность за хранение персональных данных и, как следствие, халатное отношение юрлиц.

Варианты решений на хакатон предлагается продумать самим участникам.

Незнание о решениях ЕСПЧ и судов по охране данных. Агора, РосКомСвобода и ряд других организаций успешно отстаивают права пользователей в Европейском Суде по правам человека, но люди мало об этом знают.

Вариант решения на хакатон: База данных, которая позволила бы находить международные инструменты, которые были бы переведены. На английском языке существует проект Cyrilla.org, который содержит решения судов по цифровым правам. Однако, на русском языке такого проекта нет.

Организаторы хакатона надеются, что выявленные вызовы послужат благодатной почвой для решений на хакатоне (да и вообще).

Теплица социальных технологий и РосКомСвобода благодарят всех экспертов, принявших участие в круглом столе. Зарегистрироваться на хакатон цифрового гражданства и цифровых прав demhack.ru можно до конца дня 8-го сентября 2020 г. (осталось всего пару часов)

Подробнее..

Клуб анонимных Дедов Морозов 20202021 на Habr

05.11.2020 10:06:30 | Автор: admin
КДПВ На дворе уже ноябрь и это говорит о том, что очередной високосный год наконец-то подходит к концу и приближается Новый Год! Приближение этого светлого, доброго, семейного праздника ознаменует старт очередного сезона, традиционной для Хабра забавы, Анонимный Дед Мороз!

К участию принимаются все с показателем кармы более 10, а также те, кто участвовал в каком-либо из предыдущих сезонов и имеют значок Дед Мороз (при наличии значка Дед мороз количество кармы значения не имеет).

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

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

Как принять участие
  1. Зарегистрироваться в качестве участника на сайте https://habra-adm.ru/ до 23:59 3 декабря
  2. После 4 декабря дождаться назначения личного Анонимного Получателя Подарка
  3. До 30 декабря отправить подарок, сделать заказ с доставкой в интернет-магазине или договориться в чате с получателем о личной встрече для вручения подарка
  4. Нажать кнопку Я отправил подарок
  5. Дождаться пока Анонимный Получатель Подарка получит ваш подарок и нажмёт на кнопку Подарок получен
  6. Вы удивительны!

Обо всех сложностях с регистрацией, с отметками об отправке или получении, а также если ваш Анонимный Получатель Подарка не выходит на связь, а адрес указан некорректно или он никак не прочитает ваше сообщение, что подарок уже ждёт его на почте срочно пишите iCTPEJlOK или kafeman.

Если участвовать хочется, но что подарить непонятно можно подглядеть какие штуки дарили хабровчане друг друг в прошлых сезонах: 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru