Длина токена безопасности - PullRequest
       10

Длина токена безопасности

8 голосов
/ 04 сентября 2011

Я использую токены безопасности для создания таких неубедимых URL (16 байтов, шестнадцатеричный код)

http://example.com/something/private/b5f8c21a628e12b39786fb8ef9561d31

Маркер является чем-то вроде общих паролей: кто знает, что URL разрешен для доступа к ресурсу.

Сколько байт должно ли безопасное случайное значение соответствовать безопасным URL-адресам?

Ответы [ 4 ]

2 голосов
/ 19 сентября 2011

Я получил 64-битное случайное значение, которое закодировано как безопасное для URL Base64.Возможность угадать правильный токен 1 / 2^64, что равно 1 / 18446744073709551616.Это довольно внушительное число, и злоумышленнику будет почти невозможно найти правильный токен с http-запросами.

URL теперь выглядят так: http://example.com/private/1oWYPiqO81k/

2 голосов
/ 04 сентября 2011

Вы не должны скрывать свои URL-адреса как метод безопасности (это пример безопасность через неизвестность ).Вы должны использовать механизм авторизации для защищенных страниц, такой как логин пользователя с разрешениями на просмотр страниц.

Похоже, вы используете кодировку base-16 (0-9a-f), так что покаВы предотвращаете сканирование своего URL, тогда вероятность угадывания URL равна 1/(16^length)

1 голос
/ 04 сентября 2011

Ну, все приложения зависят от криптографического одноразового номера в какой-то момент. В конце концов, это идентификатор сеанса или значение токена csrf. Здесь важно, чтобы значение не имело значения, если у злоумышленника есть 100 лет, чтобы взломать его. Сейчас 100 лет - это много, но вы должны стремиться к тому, чтобы ваши проекты сохранялись так долго.

Основное различие в безопасности между файлом cookie и вашей ценностью заключается в том, что срок действия файла cookie истекает и изменяется при каждом использовании. Но в действительности этого значения следует избегать любой ценой. Если это используется для аутентификации, то положитесь на идентификатор сеанса, поэтому он там есть. Не катите свою собственную сессию.

0 голосов
/ 04 сентября 2011
Например,

10 символов Юникода URL практически невозможно угадать, поскольку токены имеют длину 160 битов и, следовательно, существует 2 ^ 160 различных возможных URL. Однако не стоит полагаться на что-то подобное в плане безопасности, а на классический вход в систему и аутентификацию

...