Как хранить токены, oauth где хранить токены? | existo.ru Русский
Обычно я стараюсь ответить, но время не позволяет полностью раскрыть тему. Этой статьей я хочу полностью закрыть этот вопрос.
Я проанализировал с десяток приложений, чтобы посмотреть как они работают с токенами. Все проанализированные мной приложения обрабатывали критичные данные и позволяли установить пин-код на вход в качестве дополнительной защиты.
Давайте посмотрим на самые частые ошибки: Отправка в API пин-кода вместе с RefreshToken, для подтверждения аутентификации и получения новых токенов. Неудачное шифрование RefreshToken пин-кодом, которое позволяет восстановить из шифротекста пин-код и Как хранить токены.
Но отметим, что это правильный путь. Посмотрев на частые ошибки можно переходить к продумыванию логики безопасного хранения токенов в вашем приложении. Основное требование — ни при каких обстоятельствах нельзя допустить реализацию такого механизма шифрования RefreshToken, при котором можно провалидировать результат расшифровки локально.
Как добавить токен в кошелек Myehterwallet
То есть, если злоумышленник завладел шифротекстом он не должен иметь возможности подобрать ключ. Единственным валидатором должно быть API.
Это единственный способ ограничить попытки подбора ключа и заинвалидировать токены в случае Brute-Force атаки. Вроде алгоритм хороший, все по гайдлайнам, но тут есть ключевой момент — ключ содержит крайне мало энтропии.
Давайте посмотрим к чему это ведет: Padding — поскольку наш токен занимает 36 байт, а AES блочный режим шифрования с блоком бит, то алгориму нужно добить токен до 48 байт что кратно битам. В нашем варианте хвост будет добавлен по стандарту PKCS5Padding, то есть значение каждого добавляемого байта равняется количеству добавляемых байт