Гарантировать подобное можно только, если гарантируете, что приватный ключ в аутентификаторе невозможно скопировать. Даже если добьетесь поддержки хранения ключа внутри ОС устройства, то всеравно останется рутование и уязвимости. Только прошиваемый, нечитаемый ключ внутри проца поможет (вроде симки так делают).
1. Вы конечно сравнили… AES это блочный аглоритм шифрования, грубо говоря одна функция (на входе блок байтов фиксированной длинны, на выходе такойже длины, но других). А тут хотят стандартизировать целую цепочку запросов между 3 сущностями.
2. Врятли все так сложно. Скорее всего телефон по SSL отправляет «пользователь с ID сессии хочет зайти через браузер, ID сессии в браузере». И в принципе серверу нет причин не доверять, в своем же приложении он уже аутетифицировал пользователя, тоже самое можно и в браузере сделать.
Я понял, что вы предлагаете хранить приватный ключ (которого можно сделать копию) в приложении на телефоне, но я не понял какой смысл в стандартизации протокола? Сайты будут закладывать такую реализацию, которая и для них удобна и для пользователя безопасна.
В приват24 свое приложение со сканером qr кода. Если я залогинился в нем, то через сканер меня пустит на сайт без каких либо проверок.
Фактор владения байтами (приватный ключ) не больше фактора знания пароля. А тут предлагают для каждого сайта ставить по лишнему приложению только для авторизации.
Физический токен или отпечаток пальца — надежно, но не скоро это будет у каждого.
Если сайты вынуждены писать свои моб приложения, то какой смысл от стандартизации? Опенсорсные либы?
Кста. В приват24 для входа мне не нужно никуда жать, просто открыл главную страницу, навел камеру телефона на экран и сайт сам меня впускает через 10 сек. Похоже они уже ушли дальше этого стандарта.
Есть одна проблема. Эти схемы не гарантируют факт владения номером телефона, а ведь факт владения это один из факторов двухфакторной авторизации.
Synaptic не лучшая реализация:
— структура в виде отдельных нейронов. Гораздо удобнее рассматривать сеть слоями, отдельные нейроны не нужны. А если мы храним слоями, то удобнее веса хранить в матрицах. А если мы хотим сверточную, то на входе данные 3х мерный массив (x, y, rgb_channel), а это уже тензор. В архитектуру библиотеки заложено, что на входе вектор.
— backpropagate.
— В принципе все хорошо. Но каждый вызов этого механизма заставляет сеть обновить веса. А где же концепция батчей? Сеть должна уметь накапливать градиент для нескольких примеров которым учится, а потом перенастраивать веса. Нет, synaptic этого не умеет. В более современных реализациях бэкпроп и градиент хранит обучающий агент, то есть не сеть делает обратное распределение ошибки, а учитель, но я думаю это уже избыточно.
— При расчете градиента не умножается на производную от функции активации. Я писал реализацию backpropagate на JS читая medium.com/@14prakash/back-propagation-is-very-simple-who-made-it-complicated-97b794c97e5c, потом написал учителя для XOR который будет работать и с моей реализацией и с Synaptic. Оказалось, что у меня нужно раз в 5 больше итераций. Убрал умножение на производную функции активации и результаты совпали. Я не могу обосновать что это умножение нужно, но так написано во всех описаниях метода.
Моя черновая реализация на JS: github.com/Apache02/node-yann
Работает медленнее. В Synaptic круто используются оптимизации.
Технология предлагает отдать авторизацию по телефону в управление одной компании? (монополизация)
Или каждый желающий будет делать свое, но со стандартным протоколом? (тогда выбирать не просто «по телефону», а еще и фирму-поставщика сервиса авторизации). Это не намного лучше чем oAuth. Владение телефоном не гарантирует, а только то, что телефон когда то имел некий номер.
> Пользователь выбирает эту опцию и получает сообщение от браузера «Пожалуйста, выполните вход на своем телефоне».
> На телефон приходит уведомление «Войти на сайт example.ru».
Сайт узнает на какой телефон отправить уведомления телепатически?
Дико раздражают эти недосказанности.
Ориентироваться по ближайшим BSSID не проще? В городах, по которым постоянно ездят машины со своим приложением, можно собирать статистику. Назначать рейтинг «стабильности» или «доверия» точкам.
Верно. Равенство (операция сравнения) не тоже самое, что присвоение. Но когда в физике/математике нужно «посчитать», то мы используем = как присвоение. Алгоритмы какраз «считают», поэтому = должно быть присвоением. = как равенство используется только в решении уравнений и преобразованиях формул, чем алгоритмы не занимаются.
github.com/Apache02/node-yann/tree/master/examples/ttt
Посмотрите мой эксперимент на эту тему на Node.js. Сеть используется как оценочная функция. Без обхода пространства состояний (в этой игре можно без этого).
Тренировка проходит через игру против другого бота. Оппонент генератор случайных чисел, вместо оценки ситуации Math.random(), но всегда делает победный ход если это доступно (оценка 1 если это победа). Сеть заставляю увеличить оценку для победного состояния на всех исходах и уменьшить оценку для 2 состояний, когда она проиграла. Лучший результат достигается за 3000 итераций (300000 игр).
Я проверял и другой метод. Противник спрашивает у обучаемой сети оценку своих состояний, добавляет случайное число и 1 если это победа. Как бы имитация того, что сеть играет против себя же, но с шансом выбора альтернативного хода и победным ходом. Улучшений это не дало. (Эти наработки я не выкладывал).
Мои выводы: это работает, сеть учится, но качество игры немного лучше качества игры оппонента, на котором учится. Если оппонент играет хорошо, то сеть может подстроиться играть против него. Если ходы оппонента недостаточно разнообразны, то сеть может плохо играть против ходов, которых не видела. Для выработки идеальной стратегии оппонент должен играть идеально.
В обзоре про AlphaGo говорили, что там 3 сети. Одну сеть «попроще» они тренировали чтобы предсказывать ход противника для более быстрого прохода по пространству состояний.
Это значит, что как минимум из формы регистрации он приходит в открытом виде. На способ хранения не указывает.
А вот приходить на мыло пароль все равно не должен. Это как бы «секрет», а хостер доверяет его владельцу мыльницы.
Это уже перебор.
2. Врятли все так сложно. Скорее всего телефон по SSL отправляет «пользователь с ID сессии хочет зайти через браузер, ID сессии в браузере». И в принципе серверу нет причин не доверять, в своем же приложении он уже аутетифицировал пользователя, тоже самое можно и в браузере сделать.
В приват24 свое приложение со сканером qr кода. Если я залогинился в нем, то через сканер меня пустит на сайт без каких либо проверок.
Фактор владения байтами (приватный ключ) не больше фактора знания пароля. А тут предлагают для каждого сайта ставить по лишнему приложению только для авторизации.
Физический токен или отпечаток пальца — надежно, но не скоро это будет у каждого.
Кста. В приват24 для входа мне не нужно никуда жать, просто открыл главную страницу, навел камеру телефона на экран и сайт сам меня впускает через 10 сек. Похоже они уже ушли дальше этого стандарта.
Есть одна проблема. Эти схемы не гарантируют факт владения номером телефона, а ведь факт владения это один из факторов двухфакторной авторизации.
— структура в виде отдельных нейронов. Гораздо удобнее рассматривать сеть слоями, отдельные нейроны не нужны. А если мы храним слоями, то удобнее веса хранить в матрицах. А если мы хотим сверточную, то на входе данные 3х мерный массив (x, y, rgb_channel), а это уже тензор. В архитектуру библиотеки заложено, что на входе вектор.
— backpropagate.
— В принципе все хорошо. Но каждый вызов этого механизма заставляет сеть обновить веса. А где же концепция батчей? Сеть должна уметь накапливать градиент для нескольких примеров которым учится, а потом перенастраивать веса. Нет, synaptic этого не умеет. В более современных реализациях бэкпроп и градиент хранит обучающий агент, то есть не сеть делает обратное распределение ошибки, а учитель, но я думаю это уже избыточно.
— При расчете градиента не умножается на производную от функции активации. Я писал реализацию backpropagate на JS читая medium.com/@14prakash/back-propagation-is-very-simple-who-made-it-complicated-97b794c97e5c, потом написал учителя для XOR который будет работать и с моей реализацией и с Synaptic. Оказалось, что у меня нужно раз в 5 больше итераций. Убрал умножение на производную функции активации и результаты совпали. Я не могу обосновать что это умножение нужно, но так написано во всех описаниях метода.
Моя черновая реализация на JS: github.com/Apache02/node-yann
Работает медленнее. В Synaptic круто используются оптимизации.
Или каждый желающий будет делать свое, но со стандартным протоколом? (тогда выбирать не просто «по телефону», а еще и фирму-поставщика сервиса авторизации). Это не намного лучше чем oAuth. Владение телефоном не гарантирует, а только то, что телефон когда то имел некий номер.
> На телефон приходит уведомление «Войти на сайт example.ru».
Сайт узнает на какой телефон отправить уведомления телепатически?
Дико раздражают эти недосказанности.
Посмотрите мой эксперимент на эту тему на Node.js. Сеть используется как оценочная функция. Без обхода пространства состояний (в этой игре можно без этого).
Тренировка проходит через игру против другого бота. Оппонент генератор случайных чисел, вместо оценки ситуации Math.random(), но всегда делает победный ход если это доступно (оценка 1 если это победа). Сеть заставляю увеличить оценку для победного состояния на всех исходах и уменьшить оценку для 2 состояний, когда она проиграла. Лучший результат достигается за 3000 итераций (300000 игр).
Я проверял и другой метод. Противник спрашивает у обучаемой сети оценку своих состояний, добавляет случайное число и 1 если это победа. Как бы имитация того, что сеть играет против себя же, но с шансом выбора альтернативного хода и победным ходом. Улучшений это не дало. (Эти наработки я не выкладывал).
Мои выводы: это работает, сеть учится, но качество игры немного лучше качества игры оппонента, на котором учится. Если оппонент играет хорошо, то сеть может подстроиться играть против него. Если ходы оппонента недостаточно разнообразны, то сеть может плохо играть против ходов, которых не видела. Для выработки идеальной стратегии оппонент должен играть идеально.
Проблем восприятия не вызывает, это формула расчета, но x = 2y+1 это оказывается равенство, а ни зависимость x от y.
Проблема действительно высосана из пальца.
А вот приходить на мыло пароль все равно не должен. Это как бы «секрет», а хостер доверяет его владельцу мыльницы.