Тема не новая, я уже как-то раньше излагал свои размышления по этому поводу. Да и как "размышления"... больше капитанство на самом деле.
Вот гражданин Вася пользуется каким-то энным количеством электронных сервисов. Как его на них идентифицируют / аутентифицируют? В основном по логину, электронной почте, номеру телефона. Уже некая устоявшаяся годами практика. Но какой в этом всём есть принципиальный изъян? Вася может забыть свой логин, номер телефона может "протухнуть" и впоследствии быть передан Пете. Что касается электронной почты, то она тоже не является собстенностью именно Васи.
Простой пример. Чтобы подключить себе пусть платную электронную почту, нужно сперва зарегистрироваться в админке у хостера. А для этого нужен... та-дааам... адрес электронной почты! Получается примерно как в ковидную эпоху: чтобы купить медицинскую маску, нужно зайти в аптеку, для чего нужна маска. И где же взять эту самую первую маску? Наверное, добыть в бою со случайным прохожим.
Да, пока ещё есть сервисы бесплатной электронной почты. Но глобально они подвержены тем же неприятностям: можно потерять к ним доступ, забыть логин-пароль, сам сервис может кануть в лету, оказаться заблокированным каким-нибудь условным роскомпозором. И что тогда?
С мобильными телефонами тоже всё очень плохо. В соответствии с последними поправками в закон "О связи", операторы имеют право отобрать у абонента номер при выполнении любого из условий:
- не было совершено ни одного пополнения счёта за последние три месяца;
- не было совершено ни одной регистрации в сети оператора за последние три месяца.
Понятно, что операторы "имеют право", а не "обязаны". Но тем не менее чисто формально нахождение в роуминге, например, не является фактом "регистрации в сети оператора": абонентский терминал регистрируется в "чужой" сети. И опять же формально получается, что просто "выгуливать" раз в месяц SIMку разовым исходящим звонком или SMSкой тоже недостаточно: нужно ещё пополнять баланс хотя бы на 1 рубль.
А ещё давайте вспомним, что сами по себе телефонные номера не являются собственностью ни абонента, ни даже оператора.
Таким образом, ни электронная почта, ни номер телефона не годятся на роль индентификатора / аутентификатора. Но что тогда?
Кэп говорит, что по сути есть два варианта: некая секретная информация или какой-нибудь уникальный физический предмет (разновидностью которого является биометрия). Но у каждого из них тоже есть свои проблемы, связанные с эксплуатацией в реальной жизни.
- Секретную информацию можно забыть / незаметно украсть / заполучить социальной инженерией.
- Физический предмет можно потерять / случайно привести в негодность.
- Биометрия открывает широкое поле для злоупотреблений, поскольку её затруднительно спрятать / поменять.
И вот куда податься бедному воробушку?
Плюс, нужно ещё учитывать особенности и инертность человеческого мышления. Все знают что нужно бережно хранить свой гражданский паспорт. Про это даже в федеральных законах сказано. Многие осознают, что потеря банковской карты чревата вполне осязаемыми неприятностями. Но вряд ли большая часть отдает себе отчет чем может грозить потеря SIM-карты, кража пароля от "Госуслуг", взлом электронной почты и так далее. Даже USB-токен с квалифицированной ЭЦП воспринимается многими не более чем как непонятная игрушка, придуманная налоговой инспекцией исключительно для усложнения жизни простому ИП Пупкин В.В.
Что с этим всем делать?
Мой ответ: не знаю. Но очевидно, что таки требуется некий физический ключ с понятной процедурой его блокировки / восстановления. И некий уникальный идентификатор, который является безусловной собственностью гражданина. На роль последнего мог бы претендовать СНИЛС, но с ним тоже не всё хорошо.
- За пределами Российской Федерации СНИЛС ничего не значит.
- Изъяны в окологосударственных информационных системах и механизмах работы удостоверяющих центров принципиально позволяют напакостить условному Васе зная его СНИЛС.
Насчет физического ключа тоже не всё просто. На его роль могут претендовать.
- Гражданский паспорт, если в нём бы был чип. Но его нет, а внедрение что-то буксует уже как минимум десятилетие.
- Заграничный паспорт. Есть не у всех, имеет относительно короткий срок годности (10 лет).
- Транспотная карта. Есть не у всех, относительно несложно потерять т.к. часто носят с собой.
- Социальная карта. Аналогично транспортной.
- Банковская карта. Короткий срок годности (по крайней мере, был в доковидную эпоху).
- DSTK-апплет на SIM-карте. Пожалуй, самый годный вариант, но непонятно что делать когда абонент "перебегает" от оператора к оператору или теряет телефон.
- Бумажка с разовыми кодами. Ага, примерно то же самое, что стикер с паролями на мониторе.
- Отдельный аппаратный OTP-генератор а-ля брелок. Непонятно за чей счет должен выпускаться и кем обслуживаться.
- Смартфон с tOTP-приложением. Пожалуй, самый реалистичый вариант. Но остается вопрос с usability, бэкапами, уникальными идентификаторами и вирусными / социальными атаками. Требуется определённая квалификация пользователя.
Как видно, всё не плохо, а очень плохо.
Что делать с пресловутым "уникальным идентификатором" гражданина, тоже не всё понятно. Капитан просит передать, что нельзя ограничивать пользователя возможностью иметь только один такой идентификатор, смотри "вторую проблему СНИЛС". С другой стороны, нужно как-то обеспечить чтобы идентификаторы Васи и Пети никогда и нигде не пересеклись бы. Какого-то простого способа реализовать данный подход я придумать не могу. Разве что использовать какой-нибудь SHA512-хеш от "СНИЛС + timestamp + salt". Но тут опять же в полный рост встает вопрос в usability и в том, где же хранить список таких хешей, принадлежащих Васе. На "внешнем" сервере небезопасно, локально у Васи - может про***ться.
Также актуален вопрос восстановления утерянных ключей. В целом в массе своей люди - дебилы, поэтому терять обязательно будут. На условное МВД возлагать такие функции как-то не комильфо, не в их компетенциях такое. Всяким (гос)конторкам доверия мало, опыт с УЦ и квалицифированными ЭЦП это наглядно демонстрирует. Кто остаётся? Банки? ОПСОСы?
Вообще конечно более жизнеспособным видится подход, применяющийся при опознании трупов или утере документов за границей. Когда личность субъекта подтверждают N родственников / соседей / сослуживцев / друзей. Кстати, подобный же механизм используется в PGP: доверие к тому или иному открытому ключу определяется количеством человек, которые его "лайкнули". Но вот удастся ли применить аналогичные процедуры к восстановлению физического ключа от всей "электронной жизни" гражданина и насколько они окажутся уязвимыми к возможным злоупотреблениям - большой вопрос.
Всем интересных мыслей и безотказной аутентификации.