Есть такое приложение от гугл называется family link. Оно позволяет осуществлять контроль с устройства родителя устройства ребенка, в том числе блокировать его, в том числе блокировать/разблокировать его для использования.
Мне интересно вот что: в случае, если родитель хочет разблокировать устройство ребенка, там есть несколько опций. Мне показался интересным механизм, который позволяет разблокировать устройство ребенка в случае отсутствия любой сети (мобильной, интернет). Для этого родителю нужно зайти в приложение на своем устройстве и посмотреть числовой код (состоит из 6 цифр), который потом можно ввести на устройстве ребенка и оно разблокируется. Очевидно, для генерации кода используется алгоритм внутри приложения (доступа в сеть то нет), родительское приложение генерирует код, детское его проверяет на валидность. При этом код действует ровно 30 минут с момента, когда его запросил родитель. Можете предположить, в общих чертах, как действует этот алгоритм? Предлагаю пофантазировать)
Другие языки программирования и технологии
Функция родительский контроль в гугл. Хэш-функция?
Всё предельно просто. По этому же принципу построены любые двуфакторные авторизации. Помните Google Authenticator? Многие считают, что эта программа вообще как-то связана с сайтом/игрой/приложением, куда хочет войти пользователь. Но нет. Это всего лишь «калькулятор».
Так же и здесь. Обычный алгоритм TOTP (Time-based One-time Password).
К примеру, вы зарегистрировались в Майнкрафте. На сервере включена двуфакторка. Вы должны ввести четырёхзначные код, меняющийся каждые 30 секунд. Как это реализовано: при регистрации вам дают секретнейший длинный код вида 2626HHSHSH278273635JSOSOKS и просят ввести его в Google Authenticator. Этот код знаете только вы и сервер игрушки. Есть специальная общепринятая формула, которая на основе вот этого огромного ключа рассчитывает четырехзначный код. Каждые 30 секунд он разный. Почему? А потому что в этой формуле есть одна переменная — количество временных отрезков, равных 30 секундам, прошедшее с начала эпохи UNIX (1 января 1970). И далее этот ваш «калькулятор» (в данном случае — Google Authenticator) высчитывает из этого секретного ключа и переменной короткий код. Вы вводите его на сервере Майнкрафта, и сервер делает тоже самое (по той же формуле). Далее сервер проверяет, есть ли совпадение результатов.
Если на сервере или у вас установлено неправильное время, то коды будут всегда неверными. По этой причине, кстати говоря, даже родители не могут изменить настройки времени на контролируемых устройствах. Если бы могли, они бы там понаделали всякой дичи, коды бы стали генерироваться левыми, вонь была бы на весь мир.
Для расчёта по этой формуле «калькулятор» и вовсе не обязателен — можно хоть самому считать, на бумажке. Правда, формула монструозная, криптографическая, считать вы будете точно дольше 30 секунд. Потому существуют «калькуляторы» — огромное количество сайтов, плагинов к браузерам, программ, в т.ч. приложение Google Authenticator.
По такому же принципу работает Family Link. Есть некий ключ, который «прошивается» в момент регистрации и который знают обе стороны (родительские устройства и устройство ребёнка). И далее высчитывается короткий код. Только берётся количество отрезков не по 30 секунд, а по 30 минут.
Так же и здесь. Обычный алгоритм TOTP (Time-based One-time Password).
К примеру, вы зарегистрировались в Майнкрафте. На сервере включена двуфакторка. Вы должны ввести четырёхзначные код, меняющийся каждые 30 секунд. Как это реализовано: при регистрации вам дают секретнейший длинный код вида 2626HHSHSH278273635JSOSOKS и просят ввести его в Google Authenticator. Этот код знаете только вы и сервер игрушки. Есть специальная общепринятая формула, которая на основе вот этого огромного ключа рассчитывает четырехзначный код. Каждые 30 секунд он разный. Почему? А потому что в этой формуле есть одна переменная — количество временных отрезков, равных 30 секундам, прошедшее с начала эпохи UNIX (1 января 1970). И далее этот ваш «калькулятор» (в данном случае — Google Authenticator) высчитывает из этого секретного ключа и переменной короткий код. Вы вводите его на сервере Майнкрафта, и сервер делает тоже самое (по той же формуле). Далее сервер проверяет, есть ли совпадение результатов.
Если на сервере или у вас установлено неправильное время, то коды будут всегда неверными. По этой причине, кстати говоря, даже родители не могут изменить настройки времени на контролируемых устройствах. Если бы могли, они бы там понаделали всякой дичи, коды бы стали генерироваться левыми, вонь была бы на весь мир.
Для расчёта по этой формуле «калькулятор» и вовсе не обязателен — можно хоть самому считать, на бумажке. Правда, формула монструозная, криптографическая, считать вы будете точно дольше 30 секунд. Потому существуют «калькуляторы» — огромное количество сайтов, плагинов к браузерам, программ, в т.ч. приложение Google Authenticator.
По такому же принципу работает Family Link. Есть некий ключ, который «прошивается» в момент регистрации и который знают обе стороны (родительские устройства и устройство ребёнка). И далее высчитывается короткий код. Только берётся количество отрезков не по 30 секунд, а по 30 минут.
код действует ровно 30 минут с момента, когда его запросил родительНет! С момента начала очередного 30-минутного отрезка с 1 января 1970-го года. Может так получится, что код будет действовать 1 секунду. Откройте на родительском устройстве и посмотрите, сколько времени осталось до истечения кода. Там будет не 30 мин 0 сек, а что-нибудь некрасивое.
Зачем предполагать?
Никто тайны из этого алгоритма никогда не делал зайти на справочный форум гугла и тебе там все подробно расскажут.
Это обычная система асинхронного шифрования с использованием открытого и закрытого ключа.
На клиенте хранится только открытый ключ что позволяет провести проверку цифрового кода.
На сервере есть закрытый ключ который позволяет рассчитать необходимое число.
"открытый ключь" + "округленная временная метка" + "числовой код" из всего этого считают хеш сумму которую и сравнивают с эталонной хеш суммой.
Задача сервера выдающего "числовой код" подобрать его так что бы в результате получился эталонный хеш.
Точно такую же задачу решают майнеры биткоинов т.е. найти такой числовой код который при добавление его к текущему блоку блокчейна который даст в итоге определенную хеш сумму.
Никто тайны из этого алгоритма никогда не делал зайти на справочный форум гугла и тебе там все подробно расскажут.
Это обычная система асинхронного шифрования с использованием открытого и закрытого ключа.
На клиенте хранится только открытый ключ что позволяет провести проверку цифрового кода.
На сервере есть закрытый ключ который позволяет рассчитать необходимое число.
"открытый ключь" + "округленная временная метка" + "числовой код" из всего этого считают хеш сумму которую и сравнивают с эталонной хеш суммой.
Задача сервера выдающего "числовой код" подобрать его так что бы в результате получился эталонный хеш.
Точно такую же задачу решают майнеры биткоинов т.е. найти такой числовой код который при добавление его к текущему блоку блокчейна который даст в итоге определенную хеш сумму.
Вариация Challenge-Responce алгоритма, но как challenge используется время. Как генерация пароля какой-нибудь хеш алгоритм с ключом. Ключ шарится при первоначальной настройке приложений на девайсах.
да прошей телефон и заблокируй так что бы никто не залез
Похожие вопросы
- Подскажите по хэш функциям. Объясните, не понимаю.
- Народ помогите! Как узнать пароль от родительского контроля в касперском?
- Родительский контроль
- Есть ли фактические параметры в рекурсивной функции? В ней же нет вызова функции?
- ХЭШ, помогите расшифровать
- Как сделать простенький хэш пароля?
- Расшифруйте пожалуйста ХЭШ очень надо!!!
- PHP. Что будет если получить хэш пароля таким образом: echo md5(md5(md5("SUPER_PUPER_PASS_12345"))); Так надежнее? :)
- ОЧЕНЬ НУЖНО!!!ПОМОГИТЕ!!!я слышал есть программа которая делает обратню хэш функцыю в МD5.
- Вопрос для тех кто знает точный ответ, язык C про функции все подробности вопроса внутри...
типа в 0:31 ближайший час уже будит 1:00 и код палученный в 0:29 будит отличацо. Но и это элементарна исправляеца опираясь на тод факт что код сначала нужна соз-дать а толька потом его можна использовать. (просто мне лень весь алгаритм рассписывать).