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

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

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

Итак, ещё раз: отсутствие анонимности — это когда вы знаете, что аккаунт 7234687263 со всеми привязанными к нему персонажами принадлежит Ивану Ивановичу Пупкину, номер паспорта 4500 123456, проживает на Третьей улице Строителей…

Когда вы знаете, что Нагибатор666 и Феяняшечка — персонажи одного человека с аккаунтом номер 7234687263, это НЕ деанонимизация. Даже если вы знаете (хотя фактически — вовсе не обязательно для предоставления сервиса это знать), что аккаунт 7234687263 зарегистрирован на номер телефона +7 485 001 02 03 и почту trustno1@mail.ru — это тоже НЕ деанонимизация.

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

Термин номер два:
Персональные данные (в соответствии с законом РФ 152-ФЗ) — любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных).

Формулировка довольно размытая и, к сожалению, разъяснения профильных государственных органов картину не улучшают. Однако, нам нужно с чего-то начать — например, с перечня того, что абсолютно точно является ПД:

  • Фамилия, имя, отчество
  • Год, месяц, дата и место рождения
  • Адрес места регистрации и проживания
  • Семейное, социальное, имущественное положение
  • Образование, профессия, доходы
  • Паспортные данные
  • Биометрические данные

Продолжим другим списком — того, что точно НЕ является ПД:

  • Адрес электронной почты, номер мобильного телефона без указания их владельца (см. разъяснение РКН)
  • Любые софтварные и хардварные идентификаторы — IMEI, IP и MAC-адреса, HWID компьютера, куки и другие способы фингерпринтинга через браузер

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

Если подходить к вопросу предельно педантично — то ни ФИО, ни дата рождения, ни адрес проживания по отдельности не идентифицируют человека однозначно.

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

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

Опять же — видите, деанонимизация вполне осуществима вовсе без знания какой-либо чувствительной информации, не говоря уж о ПД.

Отдельным параграфом мне хотелось бы коснуться биометрических данных. Тут, признаю, всё довольно плохо — в плане того, что российское законодательство в данном случае действует по принципу из известного анекдота — "ну, аппарат-то есть":

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

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

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

Анонимность, на мой взгляд — важнейшее право любого человека, особенно в интернете.

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

18 комментариев

avatar
Почитал комментарии к предыдущей заметке. Увы, людям слишком нравится цепляться за «больные темы» и «мусолить» их.

Посмотрим на реальные примеры. В Корее нельзя завести аккаунт в ММО (про все не могу утверждать) не предъявив свой идентификатор, что-то вроде номера паспорта. Каждый, кто пытался попасть на какой-нибудь корейский бета-тест с этим сталкивался. У нас, в России, вполне можно было бы организовать логин через Госуслуги. При этом вопрос анонимности вообще не стоит. Сервисы ММО и информационных порталов при этом могут принимать некий абстрактный ключ не завязанный вообще ни на что. Всё, что они будут знать это то, что такой человек существует. Это помогает бороться с ботами и, сильно снижает возможности заведения левых аккаунтов, хотя таковая остаётся.

Реализовать хранилище информации для связи аккаунтов из разных ММО уже сложнее, так как подобная информация должна будет храниться на стороне того сервиса, на котором осуществляется регистрация. В нашем случае на Госуслугах. Либо Госуслуги должны предоставлять некое proxy API (не знаю как это ещё назвать), так как для соблюдения безопасности сервисы не могут ходить друг к другу сами. Есть, конечно, ещё вариант — сделать обязательным при регистрации привязку не только к Госуслугам, но и к некому сервису статистики. Но, в таком случае, это не будет настолько обязательным для разработчика ММО.

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

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

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

Человечество сопротивляется переходу к цифровому обществу. Люди не хотят покупать в интернете — нужно пощупать. Не хотят цифровой паспорт — его кто-нибудь взломает. Не хотят чтобы их действия в интернете кто-либо связывал с их личностью — считают его зоной где всё можно. В каких-то странах в большей степени, в каких-то в меньшей. В зависимости от традиций.
  • +5
avatar
Отличный комментарий. Действительно, существует ряд предрассудков и когнитивных искажений, связанных с интернетом.

Хотя казалось бы — уже давно придуманы и расцвели пышным цветом технологии, на математическом уровне, а не желании левой пятки рандомного чиновника реализующие надёжную и анонимную аутентификацию, хранение и кросс-сервисное, с гибким разделением доступа использование данных, в том числе биометрических. Начиная с асимметричного шифрования и заканчивая блокчейном.
  • 0
avatar
Могу ошибаться, но, мне думается, анонимности уже давно нигде нет. Просто многие наши действия никому не интересны.

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

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

Доверие… его тяжело получить, но легко потерять.
  • +1
avatar
Все равно не понимаю, зачем это?
Ответсвенность за совершенные действия в игре, преврашает игру во что-то иное.
Да, мне тоже не нравится когда пакостят.
Но, как знать, вруг именно возможность пакостить в игре может удержать от аналогичных действия в реальности? По крейней мере, серьезно пакостить. Понятно, что данных психотип будет везде хорошо прослеживаться.
  • 0
avatar
О какой ответственности вы говорите?

Я могу ошибаться за давностью лет, но, по-моему, в обеих заметках ничего не было про последствия для пакостников — может наоборот, это будет плюсом в случае приёма в гильдии определённой направленности?
  • 0
avatar
Скажем, я — мелкий или не очень пакостник. Люблю делать гадости. И репутация у меня мерзопаскостная. Летаю по галактике Eve, граблю и дебоширю.

И начал играть… ну, скажем, в ArcheAge. Решил сменить амплуа, и построить что-то прекрасное. И тут на меня накидываются все те, кого я чем-то обидел в Eve. Может, они и до этого играли в ArcheAge, а может просто выслеживали меня, чтобы отомстить.

Хочу ли я такого геймлея? Наверно, не очень. Значит нужно было быть паинькой в Eve.
Вот и наступила та самая ответственность.
Чем же тогда отличается эта виртуальная вселенная от реальной? И тут и там придется отвечать. Значит уже нельзя делать все, что хочется. Значит ну вас всех нафиг. Пойду ботов крошить. Они тупые и оценок не ставят.

Информация всегда может работать как во благо, так и во зло. Смотря кто ее интерпретирует.
А если нет информации? То и суда праведного нет. А в гильдию злодеев и так пробиться можно.

Лично мне такая идентификация не страшна. Я везде один ник использую. Не скрываюсь.
Но, если кто-то хочет остаться инкогнито в игре — его право.
  • +1
avatar
Значит уже нельзя делать все, что хочется. Значит ну вас всех нафиг. Пойду ботов крошить. Они тупые и оценок не ставят.
Уф, ну слава богу — разобрались :) Уверен, что даже если и возникнет какой-то глобальный каталог пакостников — присоединятся к его использованию далеко не все проекты, манифестируя как раз вот этим вот, чем вы так дорожите. Куда уйти найдётся, в общем.

Но мир безусловно станет лучше, когда люди осознанно смогут выбирать — хотят они играть в игры с пакостниками или без оных.
Комментарий отредактирован 2020-05-11 11:38:24 пользователем ky0uraku
  • +2
avatar
я — мелкий или не очень пакостник. Люблю делать гадости.
Это можно назвать философским убеждением и подать в суд. Сбор информации о подобных убеждениях запрещён без явного письменного разрешения. Ещё это нарушает статью 16, ведь такая система затрагивает наши права и законные интересы. Кстати, по закону, мы имеем право ознакомиться с собранной информацией. GDPR ещё строже, у нас тут данные, которые позволяют определить предпочтения и интересы, у нас есть IP, есть идентификатор сессии пользователя, есть куча других персональных данных. Да, если автор статьи не считает их персональными — это вообще ничего не говорит, закон с ним не согласен. Закон вообще говорит, что userID это персональные данные. Есть у вас таблица в базе данных, автоинкремент, новый пользователь регистрируется под каким-то ником, автоматически получает id и всё. Вы попали в правовое поле GDPR, это персональные данные. Можно шифровать id, хешировать, солить, но до тех пор, пока у вас сохраняется связь никнейм-id, это будет персональными данными.
И это самое интересное, возможность сопоставления и комбинации этих данных. А ещё GDPR рекомендует псевдонимизацию данных. Грубо говоря, если Петя создаёт второй аккаунт, система обязана не понимать, что это именно Петя. С точки зрения GDPR описанная система не только не обеспечивает анонимности, но и псевдонимности тоже. То есть всё это требует кучу подписанных бумажных документов от каждого пользователя.
Но это не имеет ни малейшего значения, раз уж хешируется всё на стороне клиента. Вносим погрешность в данные и все хеши превращаются в мусор. В первой статье шла речь вообще об опенсорс проекте, так кто мешает скачать исходник, найти функцию формирования хеша и посолить. Выносим соль в параметры запуска и у нас уже столько цифровых личностей, сколько нам нужно. Игроки, убеждённые, что не просто так заполняли формуляр с разрешением на сбор данных, свято верят в метрики. А злоумышленник давно прикрылся фальшивой личиной и пользуется необоснованным спокойствием игроков. А ещё он знает, какого вида хеши формируются и из чего именно, ведь у него есть тот самый алгоритм. То есть глубоко незаконная система вызывает ложное чувство защищённости и при этом не выполняет своих прямых функций.
  • 0
avatar
Да, если автор статьи не считает их персональными — это вообще ничего не говорит, закон с ним не согласен. Закон вообще говорит, что userID это персональные данные.
Ссылки в студию, ссылки. А то получается, что «это тоже ничего не говорит несмотря на то, что комментатор что-то там считает» :) Я привёл ряд подтверждений своей позиции из вполне авторитетных источников — парируйте подобным.

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

до тех пор, пока у вас сохраняется связь никнейм-id, это будет персональными данными
Чьими персональными данными, простите? Как идентифицировать субъекта персональных данных по нику и id? Персональность-то именно в том и заключается (см. соответствующий термин в начале заметки), что данные позволяют отнести их к конкретному физическому лицу. Если уж РКН даже номер мобильного не считает ПД, то какие-то там юзерайди непременно идут лесом.
  • 0
avatar
Если уж РКН даже номер мобильного не считает ПД, то какие-то там юзерайди непременно идут лесом.
gdpr-info.eu/issues/personal-data/
For example, the telephone, credit card or personnel number of a person, account data, number plate, appearance, customer number or address are all personal data.
Я и не говорю, что проблема в РКН, хотя с законами РФ тоже есть некие шероховатости. Писалось это в контексте GDPR, который явно указывает, что customer number является personal data.

Безусловно, кто же спорит? И что?
Зная какие именно хеши формируются и из чего именно можно создать радужные таблицы и притворяться уже не только абстрактным Васей, будучи Петей, а вполне конкретным Фёдором. И, пользуясь чужим кредитом доверия, портить ему репутацию. Да, радужные таблицы дело не быстрое.
  • 0
avatar
Зная какие именно хеши формируются и из чего именно можно создать радужные таблицы и притворяться уже не только абстрактным Васей, будучи Петей, а вполне конкретным Фёдором.
Радужные таблицы для строк длиной более одного-двух десятков символов — ну-ну, удачи. Вы точно сварщик? :)

Assuming 256bit (32 byte) hashes and assuming you want to cover all possible passwords with 80 different characters (26 lowercase, 26 uppercase, 10 numbers, 18 other characters), these are the required rainbow-table sizes. I calculated this using the formula (80 ^ length ) * (32 + length).
security.stackexchange.com/a/61147
Комментарий отредактирован 2020-05-11 16:31:07 пользователем ky0uraku
  • 0
avatar
Абсолютно бессмысленная ссылка. На сайте считают пароли посимвольно, в то время как при работе с данными мы должны работать с байтами. Да, это гораздо больший чарсет, чем они там обсуждают. Ну и, видимо, они там не учитывают существование всяких freerainbowtables.com
Но главной идеи это не отменяет, весь вопрос только во времени. А вообще, вы до конца дочитали?

Roughly two years before this question was asked there existed, in 2012, 25-GPU Clusters that could run through every possible eight-character password containing upper- and lower-case letters, digits and symbols in less than 6 hours.
Всего 25 gpu, это даже не средненькая ферма для майнинга. Насколько мощными были GPU в 2012, насколько мощные они сегодня? На сколько мощными они будут, когда мы скатимся в настолько беспросветное мрачное будущее?
  • 0
avatar
Абсолютно бессмысленная ссылка. На сайте считают пароли посимвольно, в то время как при работе с данными мы должны работать с байтами.
В общем-то, на этом этапе можно закончить диалог. Хотя, может я чего-то не знаю и байты паролей чем-то отличаются от байтов любой другой информации.

Смысл радужных таблиц — предвычисления хэшей всех вариантов входных строк. Вопрос к ним не только и не столько к скорости вычисления, сколько к необходимому для хранения всего этого объёму — который возрастает по степенному закону с увеличением количества символов/байт/бит во входной строке. Если 2.5 Йоттабайта для всех вариантов 12-символьных паролей по моей бессмысленной ссылке вас не впечатлили — что ж, удачи в создании подобных таблиц для длин в разы и порядки больших.
Комментарий отредактирован 2020-05-11 17:34:49 пользователем ky0uraku
  • 0
avatar
Хотя, может я чего-то не знаю и байты паролей чем-то отличаются от байтов любой другой информации.
Очевидно, что да, не знаете. Я говорю о том, что они обсуждают алфавитные символы, 26 символов для upper- и 26 для lowercase. То есть 52 набора байт только для букв, которые перемешиваются в произвольном порядке. Однако, скажем, движения мышью не конвертируются в буквы, это числа с плавающей запятой. Верх-вниз, влево-вправо, у нас чарсет всего 2 флоата по 4 байта. И радужные таблицы от букв здесь не сработают, ведь у этих байтов абсолютно иной диапазон значений, нежели у букв. Нужен хеш от видеопотока? Здесь чарсет будет состоять из просто титанического количества байт, впрочем, в зависимости от видеоформата количество кодируемых байт будет отличаться. Для mp4, если не ошибаюсь, это будут блоки по 188 байт. То есть в контексте данного обсуждения рассуждать о паролях бессмысленно, для букв не используется и половины всего диапазона допустимых значений. Да и даже о паролях рассуждать с точки зрения побайтовой работы нужно более конкретизировано, всё-таки даже одна буква может быть как однобайтовой, так и четырёхбайтовой.

удачи в создании подобных таблиц для длин в разы и порядки больших.
Ну, если предположить, что описанная система реально существует, вы предлагаете ей бесконечно гонять трафик по сети? О, так игры ещё и будут тормозить. Всё прекраснее.
  • 0
avatar
Очевидно, что да, не знаете. Я говорю о том, что они обсуждают алфавитные символы, 26 символов для upper- и 26 для lowercase. То есть 52 набора байт только для букв, которые перемешиваются в произвольном порядке.
Это принципиально в контексте рассмотрения радужных таблиц — 52 там варианта или 255? Для степенных функций константа, которую возводят в степень, не важна по сравнению с экспонентой. Хоть двойку туда засуньте, говоря о битах — на достаточно больших степенях (а у нас, получается, они именно такие) оно потребует совершенно космические объёмы для хранения.

То есть в контексте данного обсуждения рассуждать о паролях бессмысленно, для букв не используется и половины всего диапазона допустимых значений.
Я запутался, вы меня опровергаете или поддерживаете? :) Ссылка с паролями была взята как одна из первых по запросу «rainbow table max length», просто, чтобы продемонстрировать порядки чисел.
  • 0
avatar
Это принципиально в контексте рассмотрения радужных таблиц
Очевидно что да, это очень важно. Потому я и говорю, что ссылка бессмысленна, разница не просто на порядки, здесь геометрическая прогрессия сложности.
Я запутался, вы меня опровергаете или поддерживаете? :)
В плане чудовищности объёма информации скорее поддерживаю. Однако речь о теоретической возможности подобной атаки. Сейчас-то от привычных md5 и sha1 повсеместно отказываются, хотя казалось бы — добавьте энтропии, добавьте соль и проблема решена. И, к слову, существующие радужные таблицы вовсе не пригодятся при кастомном алгоритме. Однако такая атака теоретически возможна. Плюс, опять же, для реализации такой системы нужна отмена GDPR и множества других законов по защите личности, установление повсеместного тоталитарного режима и, скорее всего, какие-то другие вещи. Что очевидно не случится быстро. Вычислительные мощности подрастут, возможность атаки станет ещё выше. Концепт, скорее всего, нежизнеспособен. Если уж такое реализовывать, то через сквозное шифрование и передачу сырых данных в облако.
  • 0
avatar
Да, и я не хочу спорить и углубляться в словоблудство.
Если информация собрана — ее нужно использовать.
Если информацию не использовать, то и незачем ее собирать.
  • 0
avatar
Но, как знать, вруг именно возможность пакостить в игре может удержать от аналогичных действия в реальности?

Спорно, но ладно. Любой имеет право верить во что угодно. Но другие не обязаны разделять эту веру. Я не хочу тратить своё время на то, чтобы через пакости в мой адрес в виртуальном пространстве уберегать реальное от большей беды, тем более, что искренне верю в обратное — любой опыт реален и, если он приносит удовольствие, может служить подкреплением.
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.