Я хочу защитить размещенные службы Rest, используя систему авторизации Token. Итак, я решил пойти с JWT-процессом. После следующей документации я смутился, как работает цифровая подпись. AFAIK нам нужно зашифровать закрытый ключ, используя SignatureAlgorithm. и для проверки этого нам нужен только открытый ключ в нашем приложении для конечного пользователя. Я сохраню открытый ключ в локальной базе данных Android.Как обеспечивается цифровая подпись JWT?
Теперь давайте поговорим об обратном проектировании. Если кто-то может получить доступ к базе данных клиента и выяснить, что такое открытый ключ. Теперь им просто нужно выяснить, какой сервер алгоритмов используется для цифровой подписи, и это очень просто сделать, просто расшифровав раздел заголовка.
Я что-то упустил? Если нет, то как JWT безопасен в использовании?
Получил. Но при проверке подписанных данных нам нужно предоставить открытый ключ. Правильно? Следуя этому: 'https: // github.com/jwtk/jjwt' –
Для обратной инженерии. Скажем, 'xxxx.yyy.zzz' - моя строка' JWT', разделенная символом '.'. Если я применил базовые 64 декодера в первой части строки, тогда он даст мне использованный алгоритм. Теперь, если я знаю открытый ключ, я не могу понять мой «секретный ключ»? –
@AmitPal Конечно нет. В противном случае вся система государственного/частного ключей была бы бессмысленной. – EJP