Control Systems and Computers, N6, 2020, Стаття 6

https://doi.org/10.15407/csc.2020.06.055

Bulgakova O.S., Zosimov V.V., Popravkin P.D. Storing JWT Token in Local Variables. Control Systems and Computers. 2020. № 6. C. 55-63.

УДК 004.9

О.С. Булгакова, кандидат технічних наук, доцент кафедри інформаційних технологій, Миколаївський національний університет імені В.О. Сухомлинського, вул. Нікольська, 24, Миколаїв, 54000, Україна, sashabulgakova2@gmail.com

В.В. Зосімов, доктор технічних наук, завідувач кафедри інформаційних технологій, Миколаївський національний університет імені В.О. Сухомлинського, вул. Нікольська, 24, Миколаїв, 54000, Україна, zosimovvv@gmail.com

П.Д. Поправкін, студент магістратури спеціальності 122 Комп’ютерні науки, Миколаївський національний університет імені В.О. Сухомлинського, вул. Нікольська, 24, Миколаїв 54001, Україна, E–mail: pavel.popravkin.dm@gmail.com

ЗБЕРІГАННЯ JWT ТОКЕНА У ЛОКАЛЬНІЙ ЗМІННІЙ

Вступ. При роботі з аутентифікацією в інформаційних системах, заснованих на використанні серверів та баз даних (Клієнт-серверних) виникає проблема зберігання структурованої інформації через мережу Інтернет (формат JSON) у клієнтській (фронтенд-частині) програми. Сервер часто піддається CSRF (Cross-Site Request Forgery – CSRF) та XSS (Cross-Site Scripting – XSS) атакам через неправильне зберігання JSON веб ключа. Існує декілька варіантів збереження структурованої інформації, всі вони мають свої методи захисту від атак але все одно ж остаються вразливими перед базовими CSRF та XSS атаками.

Мета статті. Метою статті є показати проблему зберігання структурованої інформації через мережу Інтернет (формат JSON) у локальному сховищі (LocalStorage) та фрагментів інформації, що передаються в браузер з сайту який відвідав користувач (файлах cookie), та запропонувати метод збереження JSON веб ключа у локальній змінній всередині замикання (функції, що посилаються на незалежні змінні). На основі авторизації користувача показати взаємодію JSON веб ключа з сервером, та вирішення основних проблем авторизації та збереження токену (JSON Web Token – JWT).

Методи. Системний підхід, аналіз.

Результати. Проведено порівняння варіантів збереження JSON веб ключа. Зіставлено приклади наявності токену в зоні ризику CSRF та XSS атак. Описан алгоритм формування системи безпеки з використанням JSON веб ключа збереженому в локальній змінній в середині замикання.

Висновки. Результати дослідження показують, що збереження структурованої інформації через мережу Інтернет (формат JSON) у локальній змінній всередині замикання (функції, що посилаються на незалежні змінні) має переваги у захисті даних на відміну від збереження токену у локальному сховищі (LocalStorage) та фрагментів інформації, що передаються в браузер з сайту який відвідав користувач (файлах cookie). По-перше, система стає повністю захищена від типових CSRF та XSS атак. JSON веб ключ у пам’яті не може бути отриман під час XSS атаки, тому що він не зберігається у локальному сховищі, також існує захищеність від CSRF атак, тому що кожен JSON веб ключ не може бути відправлений автоматично з фрагментами інформації, що передаються в браузер з сайту який відвідав користувач, бо токен зберігається у пам’яті та його відправлення відбувається як заголовок у кожному запиті до сервера. Система захисту при збереженні JSON веб ключа у локальній змінній має більш гнучку архітектуру завдяки покращенному контролю над сутністю JSON веб ключа.

Завантажити повний текст PDF (англійською ).

Ключові слова:  JWT, збереження токена, локальна змінна, Сookie, LocalStorage, CSRF атака, XSS атака.

Надійшла 27.10.2020