На данный момент на пользователя konstrukt открыто 1 арбитражей, ознакомьтесь с ними, прежде чем проводить с ним сделку.
Всем привет.
В середине девяностых в Массачусетсе опубликовали обезличенную базу данных о госпитализациях госслужащих: без имён, без адресов, только дата рождения, пол и почтовый индекс. Молодая исследовательница Латания Суини купила за несколько долларов список избирателей города Кембридж и сопоставила его с этой базой. Среди записей нашлась история болезни тогдашнего губернатора штата. В его день рождения родились шесть человек, трое из них мужчины, и только один жил в его индексе. Три безобидных признака, и толпа сжалась до одного человека.
Из этой истории вырос целый раздел науки об анонимности. Вся область держится на одном понятии, которое редко объясняют на пальцах: на множестве анонимности (anonymity set). Разберём, что это такое, как его измерять и почему оно объясняет, зачем все остальные меры вообще нужны.
Определение
Терминологию в нынешнем виде закрепили в 2000 году Андреас Пфицман и Маркус Кёнтопп. Идея простая: анонимность всегда относительна. Нельзя быть анонимным «вообще», можно быть неотличимым от других людей из определённого множества. Это множество и есть anonymity set: все, кто, с точки зрения наблюдателя, с равной вероятностью могли совершить интересующее его действие. Отправить письмо, зайти на сайт, сделать платёж, написать пост.
Если в множестве один человек, анонимности нет совсем. Если сто, наблюдатель имеет сто подозреваемых. Если миллион, подозреваемых миллион. Отсюда и главная фраза: анонимность работает только в толпе, и размер толпы важнее изящества шифрования. Идеальная криптография внутри пустой комнаты никого не спрячет.
Размер не равен числу людей
Вот первая тонкость, на которой спотыкаются. Номинальный размер множества и эффективный это разные вещи.
Допустим, в множестве четыре человека. Если наблюдателю они кажутся равновероятными, у каждого шанс 25%, и эффективная анонимность максимальна для такого размера. Но если по косвенным признакам он считает, что с вероятностью 70% это был первый, а остальные по 10%, формально подозреваемых по-прежнему четверо, а на деле их немногим больше двух с половиной.
Для таких оценок Андрей Сержантов и Джордж Данези в 2002 году, а независимо от них группа Клаудии Диас, предложили мерить анонимность энтропией Шеннона. Идея в том, чтобы учитывать не количество подозреваемых, а то, насколько неравномерно наблюдатель между ними распределяет вероятности.
Формула такая: H = −Σ p·log₂(p), где p это вероятность, которую наблюдатель приписывает каждому участнику. Эффективный размер множества равен 2 в степени H. Для четырёх равновероятных людей H равна 2, эффективный размер 4. Для распределения 0,7 / 0,1 / 0,1 / 0,1 получается примерно 1,36 бита и эффективный размер около 2,6. Пока считаешь только участников, ты видишь четвёрку, а наблюдатель уже видит двоих.
Это объясняет, почему защита ломается незаметно: каждый небольшой перекос в вероятностях, любая привычка, любой выбивающийся признак отнимает долю бита, и никто не замечает, как множество схлопывается.
Бюджет в тридцать три бита
Есть удобный способ представить себе, что происходит. На планете порядка восьми миллиардов людей. Чтобы выделить одного из них, нужно примерно 33 бита информации, потому что два в тридцать третьей степени немного больше восьми миллиардов. Каждый факт о тебе отнимает какую-то долю этого бюджета. Страна, язык, часовой пояс, операционная система, размер экрана, список шрифтов, время активности, всё это съедает биты. Когда набралось тридцать с небольшим, ты уникален.
Суини посчитала это на американских данных и получила, что около 87% населения однозначно определяется сочетанием почтового индекса, пола и даты рождения. Более поздние пересчёты дали около 63%, но суть не меняется: три скучных признака почти всегда достаточно.
В браузерах картина та же. Проект EFF, известный как Panopticlick (сейчас Cover Your Tracks), в первых исследованиях 2010 года показал, что подавляющее большинство конфигураций браузеров уникально или почти уникально, около 84%, а с учётом плагинов ещё больше. Люди ничего специально не скрывали и ничем особенным не отличались, просто набор мелочей оказался неповторимым.
Откуда берётся толпа
Теперь понятно, почему инструменты вроде Tor Browser устроены так странно на первый взгляд. Они не стараются сделать тебя уникально защищённым, они стараются сделать тебя одинаковым с остальными. Все пользователи должны выглядеть как один и тот же человек: одно разрешение окна, один набор шрифтов, один часовой пояс в заголовках, одни и те же настройки. Фингерпринтинг превращается из средства различения в бесполезное, потому что различать нечего.
Отсюда практические правила, которые на первый взгляд кажутся капризом: не разворачивай окно на весь экран, не ставь расширения, не меняй масштаб и шрифты. Каждая такая «улучшалка» вычитает биты из множества анонимности.
Оттого же появляется парадокс. Редкий инструмент выдаёт сам по себе. Если ты единственный на своей сети пользуешься необычным VPN, нестандартной сборкой браузера или собственной конфигурацией сети, то твоё множество это ты и ещё несколько человек. Лучше быть одним из миллиона на популярном инструменте, чем одним из десяти на идеальном.
Правда, и размер толпы нужно оценивать честно. Число пользователей сети и размер множества анонимности для конкретного действия не одно и то же. Из миллионов людей на сети только часть заходит на тот же сайт, в то же время и тем же способом, и именно эта часть и составляет твоё реальное множество.
Время съедает множество
Это самая недооценённая часть. Однократное действие в толпе защищено хорошо. Но анонимность не статична, она размывается со временем.
Представь, что какой-то аккаунт активен по вечерам, когда в сети находятся пять тысяч человек. Через неделю наблюдатель смотрит, кто из этих пяти тысяч был в сети в каждый из этих вечеров, и остаётся пятьсот. Через месяц пятьдесят. Через полгода один. Это называется атакой пересечения (intersection attack), и она хороша тем, что не требует взлома ничего: достаточно терпеливо наблюдать. Каждое отдельное наблюдение пересекается с предыдущими, и множество сжимается.
Защититься от неё трудно, потому что она работает против самой привычки. Что помогает: не привязывать активность к узнаваемому расписанию, не оставаться в одной личности на годы, когда это не нужно, а там, где долгая история неизбежна, понимать, что множество медленно тает, и менять личность до того, как оно опустеет.
Откуда ещё утекают биты
Номинальная защита и реальная. Любая схема, которая рекламирует «одну из N возможностей», стоит проверки: действительно ли все N равновероятны. В криптовалютных системах с кольцевыми подписями, например, формальный размер кольца известен, но исследователи показывали, что эвристики по возрасту выходов и времени тратят часть кандидатов, и эффективный размер получается меньше номинального.
Малые сообщества. Если ты один из двадцати пользователей форума, то анонимность там определяется этими двадцатью. Один выбивающийся из ритма человек выдаёт себя только ритмом.
Стиль письма. Манера писать это ещё один набор признаков: длина предложений, любимые слова, ошибки. Если автор пишет в нескольких местах, его стилистический отпечаток связывает эти места, даже когда технически всё разделено.
Совпадающие действия. Если два «независимых» аккаунта всегда появляются и пропадают в один день, они связаны для наблюдателя бесплатно.
Сопоставление баз. Даже безобидный набор данных может быть опасен, потому что кто-то другой получит второй набор, и совместно они дадут идентификацию. Известный пример: Netflix опубликовал «анонимные» оценки фильмов для конкурса, и исследователи сопоставили их с открытыми отзывами на другом сайте, раскрыв личности участников.
Как оценить своё множество
Строго измерить его нельзя, но можно оценить порядок величины, и этого достаточно, чтобы принимать решения.
Что из этого следует практически
Не выделяйся. Слиться с большинством ценнее, чем быть «защищённее» тех, кто рядом. Единообразие лучше индивидуальных настроек.
Считай каждую «улучшалку» расходом. Всякая нестандартная настройка, расширение, редкая программа вычитает биты. Прежде чем что-то добавить, спроси, стоит ли оно потери части толпы.
Разделяй личности по-настоящему. Общие признаки между двумя личностями склеивают их, и множество каждой сжимается до пересечения.
Смотри на длину, а не только на глубину. Защита одного действия часто сильна, а вот защита многолетней истории требует отдельной стратегии.
Не путай шифрование и анонимность. Шифрование прячет содержание, а множество анонимности говорит о том, насколько ты неотличим. Можно иметь неломаемый канал и при этом оставаться единственным, кто им пользуется.
Итог
Анонимность не свойство человека, а свойство толпы вокруг него. Её нельзя включить кнопкой, её можно только накопить, сливаясь с большинством, и очень легко растерять, выделяясь из него. Суини показала это на трёх обычных полях анкеты. Любой из нас сегодня оставляет в сети куда больше, чем три поля, и именно поэтому разговор об анонимности начинается не с инструментов, а с вопроса: сколько людей в моей толпе и чем я от них отличаюсь.
В середине девяностых в Массачусетсе опубликовали обезличенную базу данных о госпитализациях госслужащих: без имён, без адресов, только дата рождения, пол и почтовый индекс. Молодая исследовательница Латания Суини купила за несколько долларов список избирателей города Кембридж и сопоставила его с этой базой. Среди записей нашлась история болезни тогдашнего губернатора штата. В его день рождения родились шесть человек, трое из них мужчины, и только один жил в его индексе. Три безобидных признака, и толпа сжалась до одного человека.
Из этой истории вырос целый раздел науки об анонимности. Вся область держится на одном понятии, которое редко объясняют на пальцах: на множестве анонимности (anonymity set). Разберём, что это такое, как его измерять и почему оно объясняет, зачем все остальные меры вообще нужны.
Определение
Терминологию в нынешнем виде закрепили в 2000 году Андреас Пфицман и Маркус Кёнтопп. Идея простая: анонимность всегда относительна. Нельзя быть анонимным «вообще», можно быть неотличимым от других людей из определённого множества. Это множество и есть anonymity set: все, кто, с точки зрения наблюдателя, с равной вероятностью могли совершить интересующее его действие. Отправить письмо, зайти на сайт, сделать платёж, написать пост.
Если в множестве один человек, анонимности нет совсем. Если сто, наблюдатель имеет сто подозреваемых. Если миллион, подозреваемых миллион. Отсюда и главная фраза: анонимность работает только в толпе, и размер толпы важнее изящества шифрования. Идеальная криптография внутри пустой комнаты никого не спрячет.
Размер не равен числу людей
Вот первая тонкость, на которой спотыкаются. Номинальный размер множества и эффективный это разные вещи.
Допустим, в множестве четыре человека. Если наблюдателю они кажутся равновероятными, у каждого шанс 25%, и эффективная анонимность максимальна для такого размера. Но если по косвенным признакам он считает, что с вероятностью 70% это был первый, а остальные по 10%, формально подозреваемых по-прежнему четверо, а на деле их немногим больше двух с половиной.
Для таких оценок Андрей Сержантов и Джордж Данези в 2002 году, а независимо от них группа Клаудии Диас, предложили мерить анонимность энтропией Шеннона. Идея в том, чтобы учитывать не количество подозреваемых, а то, насколько неравномерно наблюдатель между ними распределяет вероятности.
Формула такая: H = −Σ p·log₂(p), где p это вероятность, которую наблюдатель приписывает каждому участнику. Эффективный размер множества равен 2 в степени H. Для четырёх равновероятных людей H равна 2, эффективный размер 4. Для распределения 0,7 / 0,1 / 0,1 / 0,1 получается примерно 1,36 бита и эффективный размер около 2,6. Пока считаешь только участников, ты видишь четвёрку, а наблюдатель уже видит двоих.
Это объясняет, почему защита ломается незаметно: каждый небольшой перекос в вероятностях, любая привычка, любой выбивающийся признак отнимает долю бита, и никто не замечает, как множество схлопывается.
Бюджет в тридцать три бита
Есть удобный способ представить себе, что происходит. На планете порядка восьми миллиардов людей. Чтобы выделить одного из них, нужно примерно 33 бита информации, потому что два в тридцать третьей степени немного больше восьми миллиардов. Каждый факт о тебе отнимает какую-то долю этого бюджета. Страна, язык, часовой пояс, операционная система, размер экрана, список шрифтов, время активности, всё это съедает биты. Когда набралось тридцать с небольшим, ты уникален.
Суини посчитала это на американских данных и получила, что около 87% населения однозначно определяется сочетанием почтового индекса, пола и даты рождения. Более поздние пересчёты дали около 63%, но суть не меняется: три скучных признака почти всегда достаточно.
В браузерах картина та же. Проект EFF, известный как Panopticlick (сейчас Cover Your Tracks), в первых исследованиях 2010 года показал, что подавляющее большинство конфигураций браузеров уникально или почти уникально, около 84%, а с учётом плагинов ещё больше. Люди ничего специально не скрывали и ничем особенным не отличались, просто набор мелочей оказался неповторимым.
Откуда берётся толпа
Теперь понятно, почему инструменты вроде Tor Browser устроены так странно на первый взгляд. Они не стараются сделать тебя уникально защищённым, они стараются сделать тебя одинаковым с остальными. Все пользователи должны выглядеть как один и тот же человек: одно разрешение окна, один набор шрифтов, один часовой пояс в заголовках, одни и те же настройки. Фингерпринтинг превращается из средства различения в бесполезное, потому что различать нечего.
Отсюда практические правила, которые на первый взгляд кажутся капризом: не разворачивай окно на весь экран, не ставь расширения, не меняй масштаб и шрифты. Каждая такая «улучшалка» вычитает биты из множества анонимности.
Оттого же появляется парадокс. Редкий инструмент выдаёт сам по себе. Если ты единственный на своей сети пользуешься необычным VPN, нестандартной сборкой браузера или собственной конфигурацией сети, то твоё множество это ты и ещё несколько человек. Лучше быть одним из миллиона на популярном инструменте, чем одним из десяти на идеальном.
Правда, и размер толпы нужно оценивать честно. Число пользователей сети и размер множества анонимности для конкретного действия не одно и то же. Из миллионов людей на сети только часть заходит на тот же сайт, в то же время и тем же способом, и именно эта часть и составляет твоё реальное множество.
Время съедает множество
Это самая недооценённая часть. Однократное действие в толпе защищено хорошо. Но анонимность не статична, она размывается со временем.
Представь, что какой-то аккаунт активен по вечерам, когда в сети находятся пять тысяч человек. Через неделю наблюдатель смотрит, кто из этих пяти тысяч был в сети в каждый из этих вечеров, и остаётся пятьсот. Через месяц пятьдесят. Через полгода один. Это называется атакой пересечения (intersection attack), и она хороша тем, что не требует взлома ничего: достаточно терпеливо наблюдать. Каждое отдельное наблюдение пересекается с предыдущими, и множество сжимается.
Защититься от неё трудно, потому что она работает против самой привычки. Что помогает: не привязывать активность к узнаваемому расписанию, не оставаться в одной личности на годы, когда это не нужно, а там, где долгая история неизбежна, понимать, что множество медленно тает, и менять личность до того, как оно опустеет.
Откуда ещё утекают биты
Номинальная защита и реальная. Любая схема, которая рекламирует «одну из N возможностей», стоит проверки: действительно ли все N равновероятны. В криптовалютных системах с кольцевыми подписями, например, формальный размер кольца известен, но исследователи показывали, что эвристики по возрасту выходов и времени тратят часть кандидатов, и эффективный размер получается меньше номинального.
Малые сообщества. Если ты один из двадцати пользователей форума, то анонимность там определяется этими двадцатью. Один выбивающийся из ритма человек выдаёт себя только ритмом.
Стиль письма. Манера писать это ещё один набор признаков: длина предложений, любимые слова, ошибки. Если автор пишет в нескольких местах, его стилистический отпечаток связывает эти места, даже когда технически всё разделено.
Совпадающие действия. Если два «независимых» аккаунта всегда появляются и пропадают в один день, они связаны для наблюдателя бесплатно.
Сопоставление баз. Даже безобидный набор данных может быть опасен, потому что кто-то другой получит второй набор, и совместно они дадут идентификацию. Известный пример: Netflix опубликовал «анонимные» оценки фильмов для конкурса, и исследователи сопоставили их с открытыми отзывами на другом сайте, раскрыв личности участников.
Как оценить своё множество
Строго измерить его нельзя, но можно оценить порядок величины, и этого достаточно, чтобы принимать решения.
- Определи наблюдателя. Множество всегда считается относительно кого-то. Для сайта оно одно, для провайдера другое, для того, кто видит оба конца канала, третье. Без наблюдателя вопрос не имеет ответа.
- Перечисли признаки, которые он видит. Сеть, браузер, время, язык, стиль, платёжные следы, всё, что может его заинтересовать.
- Прикинь, сколько людей делит с тобой каждый признак. Затем помни, что перемножать нужно не количество, а доли: каждая новая редкая черта многократно сужает толпу.
- Проверь инструментом. Для браузера есть открытый тест Cover Your Tracks от EFF. Он показывает, сколько бит информации выдаёт твой браузер и насколько он уникален. Это не полная картина, но хороший ориентир.
- Добавь время. Спроси себя, что останется от множества через месяц, если наблюдатель будет сопоставлять все появления.
Что из этого следует практически
Не выделяйся. Слиться с большинством ценнее, чем быть «защищённее» тех, кто рядом. Единообразие лучше индивидуальных настроек.
Считай каждую «улучшалку» расходом. Всякая нестандартная настройка, расширение, редкая программа вычитает биты. Прежде чем что-то добавить, спроси, стоит ли оно потери части толпы.
Разделяй личности по-настоящему. Общие признаки между двумя личностями склеивают их, и множество каждой сжимается до пересечения.
Смотри на длину, а не только на глубину. Защита одного действия часто сильна, а вот защита многолетней истории требует отдельной стратегии.
Не путай шифрование и анонимность. Шифрование прячет содержание, а множество анонимности говорит о том, насколько ты неотличим. Можно иметь неломаемый канал и при этом оставаться единственным, кто им пользуется.
Итог
Анонимность не свойство человека, а свойство толпы вокруг него. Её нельзя включить кнопкой, её можно только накопить, сливаясь с большинством, и очень легко растерять, выделяясь из него. Суини показала это на трёх обычных полях анкеты. Любой из нас сегодня оставляет в сети куда больше, чем три поля, и именно поэтому разговор об анонимности начинается не с инструментов, а с вопроса: сколько людей в моей толпе и чем я от них отличаюсь.