2024 09 02 проектирование логина
(091/100) проектирование логина
С утра подумал о том, что логиниться в сервисы становится всё сложнее, как Никитонски наглядно продемонстрировал в своём посте (https://t.me/nikitonsky_pub/722). Это наводит на мысли о “теории мёртвого интернета” (Dead Internet Theory).
Этот пост мог бы выйти под эгидой “решённые проблемы человечества”, но решены только сугубо технические детали, да и то механически неудобно. Я говорю про OpenID и OAuth2 (и OSS сервисы Keycloak или Hydra). Механическое неудобство в том, что я: а) не хочу вводить все факторы каждый раз; б) хочу возможность лимитировать выданные права по времени или данным; в) не хочу делиться секретными данными с исходным сервисом (чтобы они не утекли).
Прямой реализации этих желаний нет, хотя Яндекс.Ключ с логином через QR-код уже решает один пункт. TOTP, как реализация, например, не решает ни одного из пунктов. (:
Что нам в итоге нужно?
- приватная часть, которую знает только сам человек;
- публичная часть, которую может проверить любой;
- федерация для этого всего;
- гранулярные права для сервисов.
И даже в этих четырёх пунктах уже сразу всё плохо. Мы сломались ровно в том месте, где идёт сопоставление приватной части и самого человека. Кто сказал, что владение ею должно быть им? Сейчас решением является только другой живой человек, который сравнивает клиента с паспортом государства. Проблема в том, что банки делают это для привязки к номеру, над которым у человека вообще нет права владения (если не пользуешься номером полгода, он возвращается в пул). Если заменить номер телефона на ЭЦП, то контроль остаётся в руках удостоверяющего центра. В этом году, например, у Почты России отозвали аккредитацию, и все ЭЦП, выданные ею, больше не считаются валидными. Биометрию принципиально никому не хочется отдавать, так что вариантов нет. Всё держится только на доверии к участникам.
А как бы вы решали такую задачку?
#марафон @chernov_sharit