JWT yordamida JSON obyektlarni himoyalab uzatish | Статья в журнале «Техника. Технологии. Инженерия»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Спецвыпуск

Опубликовано в Техника. Технологии. Инженерия №2 (4) апрель 2017 г.

Дата публикации: 04.05.2017

Статья просмотрена: 67 раз

Библиографическое описание:

Садуллаев, Н. Д. JWT yordamida JSON obyektlarni himoyalab uzatish / Н. Д. Садуллаев. — Текст : непосредственный // Техника. Технологии. Инженерия. — 2017. — № 2.1 (4.1). — С. 22-25. — URL: https://moluch.ru/th/8/archive/57/2331/ (дата обращения: 17.12.2024).



В этой статье, мы обсуждаем безопасную передачу информации между сторонами как объект JSON используя JWT. Мы также покажем, как шифровать и расшифровывать информацию JSON по секретному ключу с помощью алгоритма HMAC или пары открытый/закрытый ключ, используя RSA.

Ключевые слова. JSON, JWT, шифрование данных, дешифрование данных, алгоритмы шифрования, HMAC, RSA, SHA256, методы шифрования данных, SAML, SWT

In this article, we discuss about securely transmitting information between parties as a JSON object using JWT. We also show how to encrypt and decrypt JSON information by secret with HMAC algorithm or a public/private key pair using RSA.

Key words. JSON, JWT, data encryption, data decryption, encryption algorithms, HMAC, RSA, SHA256, data encryption methods, SAML, SWT

Kirish. JWT(JSON Web Token) bu tomonlar orasida ma’lumotlarni JSON yordamida himoyalab uzatish uchun ishlab chiqilgan ochiq standart(RFC 7519) hisoblanadi. Bunda ma’lumotlar tekshirilgan va ishonchli ko’rinishda uzatiladi. Chunki ma’lumot uzatilishidan oldin shifrlanadi. JWT maxfiy so’z bilan(HMAC algoritmi yordamida) yoki ochiq va yopiq kalitlar juftligi bilan RSA algoritmi yordamida shifrlab uzatilishi mumkin. JWT ning asosiy avfzalliklari:

– Zichlashtirish. Ma’lumotlar uzatilayotgan paytda shifrlab, qisqartirilgan ko’rinishda uzatiladi. Bu ma’lumotlarni tez almashish imkonini beradi.

– O’z ichiga barcha zaruriy ma’lumotlarni olganligi. JWT ning asosiy qismida turli turli zaruriy ma’lumotlarni tokenga qo’shib yuborishimiz ham mumkin.

JWT ning ishlatilishi:

– Autentikatsiya. JWT ko’pincha autentikasiya masalalarida ishlatiladi. Bunda resurslardan foydalanish huquqi tokenga qarab beriladi. Agarda tog’ri tokendan foydalanilayotgan bo’lsa, tokenni ichidan foydalanuvchini logini va paroli ajratib olinadi. Bazi holatlardan login va parol o’rniga token ishlatiladi.

– Ma’lumot almashish. JWT ning asosiy qismi(payload) da ixtiyoriy ma’lumotni qo’yib uzatish mumkin. Bunda berilgan ma’lumot ochiq yoki yopiq kalit yordamida shifrlab uzatiladi.

Asosiy qism. JWT asosiy 3 ta qismdan iborat bo’lgan token hisoblanadi. Umumiy ko’rinishi quidagicha:

1-rasm

  1. Bosh qismi — odatda 2 ta qismdan tokenni turi va hashlash algoritmini nomidan tashkil topgan bo’ladi. Token turi tariqasida odatda “JWT” ishlatilaadi. Hashlash algoritmlari sifatida esa HMAC, SHA256 yoki RSA larni ishlatish mumkin. 1-jadvalda to’liq ro’yhati keltirilgan:

1-jadval

Imzo

Algoritm

Qisqacha tarifi

HS256

HMAC256

HMAC, SHA-256 yordamida ishlatilishi

HS384

HMAC384

HMAC, SHA-384 yordamida ishlatilishi

HS512

HMAC512

HMAC, SHA-512 yordamida ishlatilishi

RS256

RSA256

RSASSA-PKCS1-v1_5, SHA-256 yordamida ishlatilishi

RS384

RSA384

RSASSA-PKCS1-v1_5, SHA-384 yordamida ishlatilishi

RS512

RSA512

RSASSA-PKCS1-v1_5, SHA-512 yordamida ishlatilishi

ES256

ECDSA256

ECDSA, P-256 va SHA-256 yordamida ishlatilishi

ES384

ECDSA384

ECDSA, P-384 va SHA-384 yordamida ishlatilishi

ES512

ECDSA512

ECDSA, P-521 va SHA-512 yordamida ishlatilishi

  1. Tana qismi(Payload) — Tokenni ikkinchi qismi bo’lib, bu qismda foydalanuvchi haqidagi asosiy yoki qo’shimcha ma’lumotlar saqlanadi. Asosiy qismdagi ma’lumotlar 3 hil:

maxsus saqlanuvchi(preserved) — tokenda ishlatilishi uchun oldindan yaratilgan, ishlatish taklif etiladigan, lekin majburiy bo’lmagan atributlar.

ochiq(public) — tokenni ichiga joylashtirilgan ochiq ma’lumotlar, bular odatda urlda parameter sifatida ishlatilishi taklif etiladi.

shaxsiy(private) — tokenni ichida joylashgan maxsus atributlar.

  1. Imzo. Bosh qism, asosiy qismni shifrlash uchun ishlatiladigan shifrlash algoritmlari va ularni kalit so’zlaridan ibora bo’lgan qism.

Shifrlash va deshifrlash. JWT dan foydalanish va undagi ma’lumotlarni qanday tartibda shifrlash va deshifrlashni ko’rish uchun bir qancha saytlar mavjud. Shulardan biri JWTning rasmiy sayti(http://jwt.io). Shu saytdagi “debugger” bo’limi orqali ma’lumotlarni shifrlash va deshifrlashni ko’rib o’tamiz.

Ma’lumotlarni HMAC SHA256 algoritmi yordamida shifrlash(kalit so’z: secret).

2-rasm

Ma’lumotni uzatilishi. Yuqoridagi JSON obyekt HMAC algoritmi yoramida shifrlangandan keyin 3 ta qismdan iborat bo’lgan quidagi token hosil bo’ladi.

3-rasm

Izoh.Birinchi nuqtagacha bo’lgan qismi bosh qism, ikkinchisi asosiy qism, oxirgisi imzo qismi.

Shu ma’lumotlarni RS256 algoritmi yordamida shifrlanishi. Bunda imzo qismida RSA Algoritmining ochiq va yopiq kalitlari ham tokenni ichiga joylashtirib yuboriladi:

4-rasm

RSA algoritmi yordamida yuqoridagi JSON obyekt shifrlangandan keyin quidagi token hosil bo’ladi. Bu token ham HMAC algoritmi bilan shifrlangani kabi 3 ta qismdan iborat. Faqat imzo qismidagi belgilar soni uzunroq bo’ladi.

5-rasm

Xulosa. Yuqorida ko’rib o’tilgan JWT yordamida ma’lumotlarni uztish usulida, ma’lumotlar to’liqligicha shifrlanadi va ma’lumotni maxfiyligi taminlanadi. Bulardan tashqari yana quidagi avfzalliklarini ham sanab o’tish mumkin:

– JSON ma’lumot XML ga qaraganda qisqa bo’ladi, Shuning uchun JWT bilan ma’lumot uzatish SAML(Security Assertion Markup Language Token) ga qaraganda tezkor bo’ladi.

– Ma’lumotlarni shifrlash usullaridan biri bo’lgan SWT(Simple Web Token) da faqat simmetrik shifrlash ishlatiladi, JWT da esa simmetrik va assimmetrik shifrlashlardan ham foydalanish mumkin.

– Ma’lumotlarni turli hil algoritmlar yordamida shifrlash mumkin(1-jadval).

– JWT ni Java, C,.NET, Python, NodeJS, JavaScript, Perl, Ruby, Go, Haskell, Scala, Clojure, Objective-C, Swift, Delphi, PHP kabi ko’plab dasturlash tillari uchun kutubxonalari mavjud.

– JWT ni turli xil ko’rinishdagi mijozlar, jumladan mobil telefonlarda ma’lumot almashishda ham ishlatish mumkin.

Аdabiyotlar:

  1. “JSON Web Token” M. Jones, J. Bradley, N. Sakimura may 16, 2014
  2. “Spring Rest” Balaji Varanasi, Sudha Belida, 2015. Chapter 8.
  3. https://jwt.io/introduction/
  4. https://en.wikipedia.org/wiki/JSON_Web_Token
  5. https://auth0.com/learn/json-web-tokens/
Основные термины (генерируются автоматически): JWT, HMAC, JSON, RSA, ECDSA, SAML, SWT, NET, PHP, RFC.

Ключевые слова

JSON, JWT, шифрование данных, дешифрование данных, алгоритмы шифрования, HMAC, RSA, SHA256, методы шифрования данных, SAML, SWT

Похожие статьи

Криптоанализ и реализация потокового шифра RC4

Статья посвящена алгоритму RC4, который является одним из популярных алгоритмов шифрования в сетевых протоколах. В статье описываются основные принципы работы алгоритма и его реализации. Однако, статья также обращает внимание на уязвимости алгоритма ...

Инструменты для анализа данных: сравнение Python, R и других популярных платформ

В статье автор сравнил различные языки программирование такие как «Python», «R», «Julia», «SAS» и «MATLAB» и выявил их характерные особенности, на основе которых каждый сможет для себя решить с каким языком программирования он захочет работать.

Роль хэширования в работе «белого хакера»

Алгоритмы защиты информации берут свое начало в Римской империи, когда предпринимались первые попытки зашифровать информацию, чтобы она не попала к посторонним людям. Однако любой человек, знающий путь составления шифра мог получить засекреченную инф...

Обзор принципа доказательства без разглашения и протокола SRP

В данной статье автор стремится исследовать принцип доказательства без разглашения и протокола SRP с целью их анализа и применения в современных информационных системах. Статья описывает принцип доказательства без разглашения, который был разработан...

Определение кратчайшего пути между двумя объектами с помощью программы QGIS с использованием модуля Road Graph

В этой статье представлена информация о модуле Road Graph в программе QGIS и пример того, как этот модуль работает. Модуль Road Graph работает на алгоритме Дейкстры, определяющем кратчайшие расстояния между двумя объектами (адресами).

Прозрачное шифрование данных (TDE)

Как можно использовать прозрачное шифрование данных(TDE) и развить этот метод.

Анализ влияния использования протоколов MPLS и RSVP на надежность сети NGN

В статье проведено аналитическое исследование работы протоколов MPLS и RSVP в сети NGN. Показано эффективное использование протоколов MPLS на уровне ядра и RSVP на уровне доступа сети NGN. Получены графики зависимости качества обслуживания по парамет...

P2P-сеть в Ethereum

Цель этой статьи — объяснить реализацию концепции Р2Р-сетей в рамках Ethereum. Технология P2P имеет потенциал для устранения недостатков централизованных систем за счет использования богатых ресурсов конечных устройств, и с 1990-х годов она была внед...

Модернизация и дополнение IT-архитектуры предприятия посредством шины данных

В статье автор рассматривает шину данных как ключевой элемент современной ИТ-архитектуры, обеспечивающий эффективное взаимодействие между различными системами предприятия. Шина данных упрощает процесс интеграции и позволяет централизованно управлять ...

Обзор различных средств фаззинга как инструментов динамического анализа программного обеспечения

В данной статье описывается суть динамического анализа ПО на основе инструментов фаззинга, обзор и сценарии применения различных инструментов, реализующих данный подход. Все инструменты, представленные в статье, используются в цикле проверки ПО обесп...

Похожие статьи

Криптоанализ и реализация потокового шифра RC4

Статья посвящена алгоритму RC4, который является одним из популярных алгоритмов шифрования в сетевых протоколах. В статье описываются основные принципы работы алгоритма и его реализации. Однако, статья также обращает внимание на уязвимости алгоритма ...

Инструменты для анализа данных: сравнение Python, R и других популярных платформ

В статье автор сравнил различные языки программирование такие как «Python», «R», «Julia», «SAS» и «MATLAB» и выявил их характерные особенности, на основе которых каждый сможет для себя решить с каким языком программирования он захочет работать.

Роль хэширования в работе «белого хакера»

Алгоритмы защиты информации берут свое начало в Римской империи, когда предпринимались первые попытки зашифровать информацию, чтобы она не попала к посторонним людям. Однако любой человек, знающий путь составления шифра мог получить засекреченную инф...

Обзор принципа доказательства без разглашения и протокола SRP

В данной статье автор стремится исследовать принцип доказательства без разглашения и протокола SRP с целью их анализа и применения в современных информационных системах. Статья описывает принцип доказательства без разглашения, который был разработан...

Определение кратчайшего пути между двумя объектами с помощью программы QGIS с использованием модуля Road Graph

В этой статье представлена информация о модуле Road Graph в программе QGIS и пример того, как этот модуль работает. Модуль Road Graph работает на алгоритме Дейкстры, определяющем кратчайшие расстояния между двумя объектами (адресами).

Прозрачное шифрование данных (TDE)

Как можно использовать прозрачное шифрование данных(TDE) и развить этот метод.

Анализ влияния использования протоколов MPLS и RSVP на надежность сети NGN

В статье проведено аналитическое исследование работы протоколов MPLS и RSVP в сети NGN. Показано эффективное использование протоколов MPLS на уровне ядра и RSVP на уровне доступа сети NGN. Получены графики зависимости качества обслуживания по парамет...

P2P-сеть в Ethereum

Цель этой статьи — объяснить реализацию концепции Р2Р-сетей в рамках Ethereum. Технология P2P имеет потенциал для устранения недостатков централизованных систем за счет использования богатых ресурсов конечных устройств, и с 1990-х годов она была внед...

Модернизация и дополнение IT-архитектуры предприятия посредством шины данных

В статье автор рассматривает шину данных как ключевой элемент современной ИТ-архитектуры, обеспечивающий эффективное взаимодействие между различными системами предприятия. Шина данных упрощает процесс интеграции и позволяет централизованно управлять ...

Обзор различных средств фаззинга как инструментов динамического анализа программного обеспечения

В данной статье описывается суть динамического анализа ПО на основе инструментов фаззинга, обзор и сценарии применения различных инструментов, реализующих данный подход. Все инструменты, представленные в статье, используются в цикле проверки ПО обесп...

Задать вопрос