27 марта 2026 года Еврокомиссия потребовала от Snapchat не имитировать проверку возраста, а действительно её выполнять. Кнопка «Мне уже 13» — классический пример самоидентификации, где пользователь сам объявляет свой возраст и никто это не подтверждает. Регулятор счёл такой механизм недостаточным: под угрозой блокировки и штрафов мессенджер обязан внедрить age assurance — проверку, которая либо опирается на доверенный источник данных, либо оценивает возраст техническими средствами.
Для выпускников ИТ-направлений это не абстрактная новость, а готовая тема: проверка возраста — задача на стыке идентификации, приватности, машинного обучения и отказоустойчивости. Здесь есть что спроектировать, что протестировать и чем обосновать решения. Ниже — разбор, как из одной новости собрать защищаемую ВКР, и на что смотреть, если вы думаете не только о теме, но и о том, как написать ВКР, которую примет комиссия.
Актуальность. Требование Еврокомиссии прямо опирается на DSA (Digital Services Act) и на eIDAS 2.0, где появился европейский кошелёк цифровой идентичности — EUDI Wallet. Пользователь должен доказать «мне больше 16», не отдавая платформе дату рождения.
Цель: разработать сервис, который принимает криптографическое подтверждение предиката возраста и возвращает бинарный вердикт без хранения персональных данных.
Задачи:
Структура: Глава 1 — анализ age assurance, GDPR/DSA, обзор EUDI Wallet. Глава 2 — архитектура микросервиса, диаграммы последовательности, контракты API. Глава 3 — тестирование, метрики производительности, расчёт стоимости владения.
Актуальность. Если регулятор заставляет платформу реально проверять возраст, то для массового мессенджера один из немногих масштабируемых путей — оценка по селфи или видео. При этом кадр не должен покидать устройство: иначе GDPR-риски съедают всю пользу.
Цель: сравнить архитектуры нейросетей (лёгкие CNN против ViT-дистиллятов) по точности оценки и по производительности на мобильном CPU.
Задачи: подготовить датасет и разметку; обучить/дообучить модели; применить квантизацию; измерить MAE по подгруппам; сравнить инференс на устройстве и на сервере.
Структура: Глава 1 — обзор методов age estimation и датасетов. Глава 2 — выбор архитектуры, схема пайплайна, пороговая логика «13/16/18». Глава 3 — валидация, MAE, fairness-анализ, задержка инференса.
Актуальность. Регуляторные дедлайны превращают проверку возраста в критичный путь: если шлюз упал, сервис нельзя просто «отключить» — придётся либо блокировать доступ, либо работать в режиме деградации. Это задача про архитектуру, а не про алгоритм.
Цель: спроектировать шлюз с кэшированием вердиктов, деградацией и полным аудитом.
Задачи: развернуть сервис в Kubernetes; настроить OpenTelemetry и Prometheus; провести chaos-тесты; определить RTO/RPO; описать регламент деградации.
Структура: Глава 1 — анализ отказоустойчивых паттернов. Глава 2 — архитектура шлюза и схемы развёртывания. Глава 3 — эксперименты, метрики, регламент.
Первая глава почти всегда «теоретическая», и именно в ней студенты теряют баллы, скатываясь в пересказ статей. Рабочий приём — построить сравнительную матрицу подходов и явно показать, почему выбранный вами не идеален, но оптимален в заданных ограничениях. Новость про Snapchat даёт готовую систему ограничений: масштаб аудитории, регуляторные требования, приватность, стоимость.
| Подход | Точность подтверждения | Приватность | Стоимость внедрения | Соответствие GDPR/DSA | UX |
|---|---|---|---|---|---|
| Самоидентификация («Мне уже 13») | Нулевая | Максимальная | Минимальная | Не соответствует требованиям ЕК | Идеальный |
| Загрузка документа + OCR | Высокая | Низкая: хранение ПД | Средняя | Высокий риск при утечке | Раздражающий |
| Банковский KYC / Open Banking | Высокая | Средняя | Высокая | Соответствует частично | Средний |
| Государственная eID / EUDI Wallet | Высокая | Высокая (селективное раскрытие) | Средняя | Соответствует | Хороший |
| Биометрическая оценка возраста | Средняя (MAE 2–5 лет) | Высокая при инференсе на устройстве | Средняя | Допустимо при явном согласии | Хороший |
Любая фраза «выбрал Python, потому что популярный» — минус балл. Обоснование строится от нефункциональных требований. В случае age assurance они такие: пиковая нагрузка (десятки тысяч запросов в секунду у крупного мессенджера), низкая задержка вердикта, изоляция персональных данных, полный аудит и требования к доступности.
Вторая глава — место для диаграмм. Здесь важно соблюсти два стандарта: ТЗ оформляется по ГОСТ 34.602-89, а схемы (алгоритмы, взаимодействие компонентов) — по ГОСТ 19.701-90. Комиссия редко проверяет это глубоко, но наличие корректных обозначений сразу снимает вопросы «а вы вообще ГОСТ открывали».
Минимальный набор диаграмм, который выглядит убедительно:
Ключевой алгоритм стоит показать кодом — компактно, но так, чтобы было видно отсутствие хранения персональных данных:
# Концептуальный фрагмент шлюза age assurance
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI()
class AgeProof(BaseModel):
predicate: str # "age_over_13" | "age_over_16" | "age_over_18"
issuer: str # доверенный эмитент (например, EUDI Wallet)
proof: str # криптографическое доказательство предиката
expires_at: int
@app.post("/v1/age/predicate")
async def check_age(p: AgeProof):
if p.expires_at < now_ts():
raise HTTPException(401, "proof expired")
if not verify_issuer_signature(p):
raise HTTPException(401, "untrusted issuer")
if not verify_predicate_proof(p):
raise HTTPException(401, "invalid proof")
# дата рождения не приходит и не сохраняется
return {"decision": "allow", "level": p.predicate, "retention": "none"}
Такой фрагмент делает главное: показывает, что вы понимаете разницу между подтверждением возраста и сбором персональных данных. Это ровно тот аргумент, который Еврокомиссия предъявляет Snapchat.
Третья глава без чисел — это эссе, а не исследование. Метрики нужно выбрать заранее, до экспериментов, иначе возникнет соблазн подогнать выводы под результат. Опирайтесь на ISO/IEC 25010: производительность, надёжность, безопасность, удобство использования — каждая характеристика должна получить измеримое значение.
| Метрика | Инструмент | Целевое значение | Как обосновать в тексте |
|---|---|---|---|
| p95 задержки вердикта | k6 + OpenTelemetry | ≤ 300 мс | Проверка в критичном пути авторизации |
| Пропускная способность | k6 / JMeter | ≥ 500 RPS на 3 репликах | Оценка нагрузки по доле активных пользователей |
| Доля ошибок | Prometheus + алертинг | < 0,1 % | Ошибка означает неверный допуск или лишний отказ |
| MAE оценки возраста | Offline-валидация модели | ≤ 3,5 года | Порог ошибки для решения «13/16/18» |
| RTO | Chaos-тест, отказ пода | ≤ 15 мин | Восстановление без ручного вмешательства |
| RPO | Репликация БД аудита | ≤ 1 мин | Потеря записи о решении недопустима |
Отдельно в главе стоит описать методику нагрузочного тестирования: профиль трафика, длительность прогона, количество виртуальных пользователей, способ генерации данных. Если использовать синтетические доказательства вместо реальных — это нормально, но факт подмены нужно зафиксировать явно, иначе комиссия сочтёт результаты недостоверными.
Зависит от формулировки темы. Если в названии есть «разработка», «реализация» или «прототип» — код нужен, хотя бы минимально работающий. Если тема аналитическая («сравнение подходов», «исследование методов»), можно ограничиться стендом и расчётами, но тогда нужно показать воспроизводимую методику экспериментов.
Ядро — проверка подписи и выдача вердикта — реально собрать за 3–4 недели. Основное время уходит не на код, а на стенд, метрики и документацию. Если сжать объём до одного сценария (только предикат «age_over_16»), тема становится вполне подъёмной для бакалаврской ВКР.
Публичные исследовательские датасеты, собственные синтетические наборы, обезличенные корпоративные данные при наличии разрешения. В тексте обязательно описывается происхождение данных, этические ограничения и то, как обеспечивалась анонимность. Выдумывать набор нельзя — это первое, что проверяют на защите.
UML допустим, но схемы алгоритмов и взаимодействия компонентов лучше дублировать в нотации ГОСТ 19.701-90. Каждая диаграмма должна иметь номер, название и ссылку из текста — «см. рисунок 7». Диаграмма без упоминания в тексте считается декоративной и почти всегда снимается с оценки.
Источник: Кнопка «Мне уже 13» больше не спасет: Еврокомиссия заставит Snapchat реально проверять возраст (опубликовано 2026-03-27)