Шизоанонимность

nobodyknowsdog

В комментариях к предыдущей записи родилась довольно интересная, на мой взгляд, мысль. Для начала — немного о моем понимании слова «анонимность». Например, использование в интернетике ников вместо ФИО я анонимностью не считаю. В сущности, нет разницы между псевдонимом Демьян Бедный, фамилией-именем-отчеством Придворов Ефим Алексеевич и ником, скажем, fima83. Все они достаточно однозначно могут идентифицировать человека. Дело не в том, что «никто не знает, что ты собака» — дело в том, что созданная этой собакой «интернет-личность» вполне идентифицируема, а при желании эту «личность» можно раскрутить и до самой собаки.

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

Что же может служить делу истинной анонимности? Наверное, стопроцентной «неидентифицируемости» можно достичь, лишь используя для каждого действия свою «виртуальную личность». Помните книжку «День шакала»? Когда французская полиция, сбиваясь с ног, ищет молодого англичанина, по Парижу расхаживает, подбираясь к Де Голлю, «одноногий» и старый ветеран войны. Наверное, во всех детективных и шпионских романах встречаются фальшивые паспорта «на все случаи жизни», накладные усы-бороды, «легенды» с выдуманными родственниками и прочие непременные атрибуты «таинственных и неуловимых» шпионов с преступниками. Именно так можно добиться, чтобы разные (взаимо)действия оказывались не связанными друг с другом — и, следовательно, не раскрывающими личность «взаимодействующего».

Например, «Банду такого-то под суд!» в Яндекс может вбивать Сара Перштейн, дизайнер из Тель-Авива, в то время как искать Гуглом «A Complete Idiot’s Guide to Guerilla Warfare» будет Джон Браун, инженер из Колорадо. Обсуждать на Guns.ru цены на оружие и взрывчатку будет Мыкола Деревянко из Мелитополя, а методы изготовления динамита на форуме студентов-химиков — такой же студент-химик Вася. Может быть, что за действиями Сары, Джона, Мыколы и Васи стоит один и тот же Рулон Обоев из Махачкалы — но делать это он должен так, чтобы исключить всякую связь между этими «одноразовыми виртуальными личностями».

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

В общем, берегитесь шизиков — они анонимнее вас :)

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

…которой, разумеется, не существует.

Немного ознакомился с возможностями такой системы, как Disqus (я всего лишь хотел залогиниться на одном сайте по OpenID, а там это сделать немного сложновато). Это довольно навороченный «движок» для комментариев, который можно встроить практически на любой сайт. Очень многие сайты используют его, например, вместо «штатного» Вордпрессовского. Честно говоря, был поражен.

Нет, я не хочу обсуждать функциональные возможности Disqus в сравнении с тем, что дает обычный WordPress. Меня больше удивляет количество информации, доступной владельцам этой системы. Фактически, на серверах Disqus может храниться (и хранится) информация о том, кто и когда посещал какие странички, кто писал какие комментарии, с какими аккаунтами в Твиттере, Фейсбуке или Гугле этот кто-то связан. Видимо, на основании этих данных Disqus показывает мне, на какой бы сайт с этой системой комментирования я бы ни зашел, некоторые «персональные рекомендации» — явно основанные на том, что я писал в комментариях до этого.

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

Рыба или удочка?

В качестве картинки для привлечения внимания — фотография «Дети из Революционных училищ и дошкольники получили от Ким Чен Ына в подарок деликатесные виды рыб» из сегодняшней записи [info]juche_songun.

kimfish

А сама запись будет посвящена еще одной дискуссии на тему, «что лучше — рыба или удочка», в которой я поучаствовал в Твиттере. Речь шла про язык программирования Prolog и его изучение. Я посоветовал не тратить время на изучение конкретного инструмента, а посмотреть какие-нибудь хорошие книги по Good Old-Fashioned AI, то есть всяким экспертным системам и тому подобным вещам. Почему? Лично я считаю Prolog попыткой сделать универсальный язык для тех задач, которые относили к «искуственному интеллекту» в 80-х годах. Основа Prolog — это система логического вывода, которая в том или ином виде присутствует во всех системах доказательства теорем, экспертных системах, системах поддержки принятия решений и всей остальной чуши, которую считали AI в 70-х годах.

Казалось бы, решение простое и логичное — если логический вывод присутствует во всех подобных системах, то почему бы не сделать один универсальный язык, позволяющий описывать утверждения и правила вывода? Как мне кажется, такой «абсолютно универсальный» язык — это страшный overkill. Если для решения какой-то задачи так уж необходим логический вывод, то реализация «своей» аналогичной системы не так уж и сложна — например, в SICP в одной из глав рассматривается простой интерпретатор прологоподобного языка. Еще более простые примеры приведены в Principles of Artificial Intelligence Programming Питера Норвига. С моей точки зрения, гораздо более полезным оказывается умение делать такие интерпретаторы, чем использование «данного свыше» готового Prolog.

Почему? Само по себе существование огромного количества разных «систем логического вывода» подсказывает, что специфика разных задач требует и разных подходов. Где-то нужен прямой логический вывод, а где-то обратный. Где-то надо использовать нечеткую логику, где-то возникают специфические требования к производительности. Использование одного лишь Prolog приводит к тому, что разные задачи «подгоняются» под один метод решения, в то время как полезным может оказаться «индивидуальный подход».

Как пример такого «индивидуального подхода» могу привести одну задачу, с которой я недавно столкнулся. Для одной геоинформационной системы потребовалось выводить на карту зоны, в которых необходимо предпринять какие-то действия, описанные в ведомственных инструкциях. Инструкции примерно такие: «если уровень радиации превысил 38 попугаев, то тут зона безвозратных потерь, всем присвоить ГСС посмертно». Логическое программирование — это общепринятый способ для машинного представления подобного рода инструкций. В чем же проблема? Речь идет не об отдельных точках, а об областях на карте. Ни одна готовая система не предполагает работы с картографическими данными, особенно если речь идет о разработках на ГИС-ядре нашего, родного, исконно-посконного КБ «Панорама».

Что же можно сделать в данном случае? В книжке Норвига описана система EMYCIN, в которой допускается работа с «неточными» данными. Каждому утверждению присваивается «показатель уверенности» (confidence factor, CF) — число от 1 до -1. 1 соответствует полной уверенности в истинности утверждения, -1 — уверенности в его ложности, 0 — «не знаю». Дробные значения — это утверждения, относительно истинности которых имеются сомнения. Операциям «И» и «ИЛИ» над утверждениями соответствуют операции с показателями уверенности, которые позволяют приписать такой же показатель и логическим следствиям исходных утверждений. На самом деле все довольно просто и понятно, если кто-то этим интересуется, то очень советую скачать книжку, поставить интерпретатор Common Lisp и погонять примеры.

Естественно, что в роли CF могут выступать не только числа. В описанной выше задаче в их качестве оказалось удобно взять области на карте. Операции «И» соответствует объединение областей, «ИЛИ» — пересечение. В результате получилась система, в которой всякому утверждению обязательно соответствует область на карте, где оно выполнено — и на запрос «А где уже получилась безжизненная пустыня?» система радостно закрасит на карте нужную область.

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