رموز الويب JSON Web Tokens كعناصر أساسية لأمان السحابة

مؤلف

Henrik Loeser

Technical Offering Manager / Developer Advocate

فهم كيفية المطالبة بهويتك.

لست متأكدًا متى رأيت رمز الويب JSON (JWT) لأول مرة، لكن منذ ذلك الحين، رأيت العديد منها. بالنسبة إلى العين غير المدربة، تبدو مثل بعض المخرجات الحاسوبية المشوشة.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwQUJDIiwibmFtZSI6IkhlbnJpayBMb2VzZXIiLCJpYXQiOjE2MTExNDA0MDAsImV4cCI6MTYxMTIzNDU2N30._iVbBcypdse-9sjrxp9iOrGsXKBWrBB3mrHgBtukcfM

الحقيقة هي أن ما سبق (وJWTs بشكل عام) يحتوي على معلومات أساسية تؤثر بشكل مباشر في الأمان سواء في السحابة أو في البنية التحتية المحلية. فإنها معلومات لتحديد هوية المستخدمين والتحقق منها. تُعد JWTs ضرورية لجعل الحلول القائمة على الخدمات المصغرة تعمل، كما أنها تشكل عنصرًا أساسيًا مهمًا لتحقيق التطبيقات ذات الـ 12عاملاً.

في منشور المدونة هذا، سأشارك بعض المعلومات التاريخية عن JWTs، وأقدم مفاهيمها الأساسية، وألقي نظرة على سيناريوهات الاستخدام الشائعة لـ JWT على IBM Cloud.

 

هل سيستطيع فريقك اكتشاف الثغرة الأمنية الفورية القادمة في الوقت المناسب؟

انضم إلى قادة الأمن الإلكتروني الذين يعتمدون على الرسالة الإخبارية Think للحصول على أخبار مُنتقاة عن الذكاء الاصطناعي والأمن السيبراني والبيانات والأتمتة. تعلم بسرعة من برامج تعليمية وشروحات يقدّمها خبراء - تُرسَل مباشرة إلى بريدك الإلكتروني. راجع بيان الخصوصية لشركة IBM.

سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجِع بيان الخصوصية لشركة IBM للمزيد من المعلومات.

https://www.ibm.com/sa-ar/privacy

بعض المعلومات التاريخية المتعلقة بـ JWT

تعود المسودة الأولى لرموز الويب JSON Web Tokens لأكثر من 10 سنوات (من ديسمبر 2010). تنص المسودة الأولى على ما يلي: "يُعرّف رمز الويب JSON Web Token (JWT) تنسيق رمز مميز يُمكنه ترميز المطالبات المُنقولة بين طرفين. تُرمَّز المطالبات في JWT ككائن JSON مُوقَّع رقميًا."

في أحدث إصدار له،  IETF RFC 7519، تم توسيعه ليشمل ما يلي: "تُعد JSON Web Token (JWT) وسيلة مدمجة وآمنة لعناوين URL لتمثيل المطالبات التي سيتم نقلها بين طرفين. تُرمز المطالبات في JWT ككائن JSON يُستخدم كحمولة لهيكل JSON Web Signature (JWS) أو كنص بسيط لهيكل JSON Web Encryption (JWE)، وبذلك يمكن توقيع المطالبات رقميًا أو حماية سلامتها باستخدام رمز مصادقة الرسائل (MAC) و/أو تشفيرها."

يشير الوصف الجديد إلى تمثيلين لـ JWT (غالبًا ما يتم نطقه "jot") — أي هيكل JSON Web Signature أو JSON Web Encryption. يُعرَف JWS في RFC 7515، JWE في RFC 7516. ثمة أيضًا بعض معايير الأمان الأخرى ذات الصلة المستندة إلى JSON، والتي تُعرف جميعًا من خلال مجموعة عمل تُسمى JOSE: توقيع وتشفير كائنات JSON.

OAuth 2.0 يُعد معيارًا صناعيًا للتفويض. من دون الخوض في التفاصيل، يوفر سير عمل للتفويض ومفاهيم أساسية، بما في ذلك ما يُعرف برمز الوصول ورمز التجديد. وليس من الضروري استخدامها، لكن JWTs تُستخدم عادة في الوقت الحالي. كما ذُكر، يتركز OAuth على التفويض، وقد أُسيء استخدامه أحيانًا للتعامل مع التحقق من الهوية أيضًا. ويضيف OpenID Connect هذه القطعة المفقودة إلى اللغز ويقدم مفهوم الهوية أو رمز الهوية المميز. يُمثّل رمز الهوية على شكل JWT.

تشفير JWT وفك تشفيرها

مع هذه المعلومات التاريخية وبعض المعايير كأساس، كيف يمكننا معالجة JWT السابق وما المعلومات التي يتضمنها؟

يتكون JWT أعلاه من ثلاثة أجزاء، يفصل كل منها نقطة (‘.’):

  1. الرأس:: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
  2. الحمولة: eyJzdWIiOiIxMjM0NTY3ODkwQUJDIiwibmFtZSI6IkhlbnJpayBMb2VzZXIiLCJpYXQiOjE2MTExNDA0MDAsImV4cCI6MTYxMTIzNDU2N30
  3. التوقيع:  _iVbBcypdse-9sjrxp9iOrGsXKBWrBB3mrHgBtukcfM

يتم تشفير كل من الرأس والحمولة  base64url، ولا يتم أخذ الحشو المحتمل في الحسبان، ويمكن فك تشفيرهما على النحو التالي:

henrik@home> base64 -d <<< eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
{"alg":"HS256","typ":"JWT"}

henrik@home> base64 -d <<< eyJzdWIiOiIxMjM0NTY3ODkwQUJDIiwibmFtZSI6IkhlbnJpayBMb2VzZXIiLCJpYXQiOjE2MTExNDA0MDAsImV4cCI6MTYxMTIzNDU2N30
{"sub":"1234567890ABC","name":"Henrik Loeser","iat":1611140400,"exp":1611234567}base64: invalid input

يحتوي الرأس على معلومات حول الخوارزمية المستخدمة — هنا، HS256 (HMAC) SHA256). تعتمد الحمولة على نوع الرمز (وصول/تجديد/هوية/…) وتتكوّن من المطالبات. يتم إدارة تلك الحقول المحددة سلفًا لرأس JOSE وحقول الحمولة الأخرى من خلال IANA. في المثال أعلاه، الحقول والمطالبات هي: الموضوع والاسم ووقت الإصدار، ووقت الانتهاء.

يتم حساب التوقيع عن طريق تطبيق الخوارزمية المحددة على دمج الرأس’.’ والحمولة، ثم تشفير النتيجة باستخدام Base64url بعد ذلك، تشكَل الأجزاء الثلاثة المفصولة بنقطة JWT. يتم تحديد تفاصيل كيفية اشتقاق التوقيع في RFC 7515.

يمكنك الوصول إلى JWT السابق في مصحح الأخطاء عبر الإنترنت هذا على JTW.io. أولاً، ستظهر رسالة “توقيع غير صالح” يمكنك حل المشكلة عن طريق استبدال السر الافتراضي المعروض بـ !!!my-really-big-256-bit-secret!!!.

IBM Cloud وJWTs

نظرًا إلى أن IBM Cloud يقدم العديد من الخدمات في كتالوجه، ولأنه تطبيق إنترنت يحتوي على العديد من العناصر الخاصة به، فإنه يستخدم الرموز المميزة بشكل مكثف، بما في ذلك JWTs. ربما تكون قد استخدمت واجهة سطر أوامر  IBM Cloud (CLI) والأمرibmcloud iam oauth-tokens:

يعرض هذا الأمر رموز حاملي OAuth (رموز الوصول) للجلسة الحالية في CLI، والتي تم تنفيذها على شكل JWTs. يتم استخدام رموز إدارة الهوية والوصول (IAM) هذه للوصول إلى الخدمات السحابية الممكّنة من خلال إدارة الهوية والوصول (IAM)

إذا كنت ترغب في دمج مستخدمين خارجيين في حسابك السحابي، فسيتم استخدام JWTs أيضًا. يتم تبادل رموز الهوية والمطالبات المضمّنة فيها لغرض المصادقة والتعرّف على هوية المستخدم. تستفيد العديد من الحلول من خدمة الأمان IBM Cloud App ID. إذ يساعد على التحقق من هوية المستخدمين وحماية الموارد. ويستفيد من معايير OAuth 2.0 وOpenID Connect المذكورة ومن ثَمَّ يتعامل مع رموز الوصول والمعرف والتحديث.

يُعد  watsonx Assistant  أحد خدماتي (وخدماتك) المفضلة لبناء chatbot. إذا كنت تريد تأمين محادثات الويب (أي حماية الرسائل المتبادلة بشكل أكبر والتحقق من أصل الرسالة)، فإن JWTs تأتي لإنقاذك.

بالطبع، ثمة العديد من الأمثلة الأخرى على كيفية استخدام JWTs لتبادل مطالبات (أمنية) بسهولة، ومن ثَمَّ تعزيز أمان الحلول السحابية.

تنفيذي

تُعد JWTs وسيلة سهلة ومستقلة لتبادل المطالبات بين طرفين. إذ تُعد بنية بيانات موجودة في كل مكان، في السحابة والبيئات المحلية. نأمل أن يكون ما سبق مقدمة مفيدة أثارت اهتمامك (إن لم يكن لديك الاهتمام من قبل!).

إذا كنت ترغب في فحص JWTs والعبث بها بنفسك، فأوصِ بأداة عبر الإنترنت مثل https://jwt.io/ للبدء. إذا كنت متعمقًا في هذا المجال، فاستخدم مراقب الشبكة أو أدوات المطوّر في متصفحك للبحث عن JWTs. استمتع، ولا تنسَ الاطّلاع على برامج IBM Cloud التعليمية لدينا، بما في ذلك العديد من البرامج التعليمية المتعلقة بالأمان.

إذا كانت لديك تعليقات أو اقتراحات أو أسئلة بشأن هذا المنشور، فيُرجى التواصل معي على تويتر (@data_henrik) أو LinkedIn.

حلول ذات صلة
حلول أمن البيانات وحمايتها

حماية البيانات عبر بيئات متعددة، وتلبية لوائح الخصوصية وتبسيط التعقيدات التشغيلية.

    استكشف حلول أمن البيانات
    IBM Guardium

    اكتشف IBM Guardium، وهي مجموعة من برمجيات أمن البيانات التي تحمي البيانات الحساسة في البيئات المحلية والسحابية.

     

      استكشف IBM Guardium
      خدمات أمن البيانات

      توفر IBM خدمات شاملة لأمن البيانات لحماية بيانات المؤسسة وتطبيقاتها وتقنيات الذكاء الاصطناعي لديها.

      استكشف خدمات أمن البيانات
      اتخِذ الخطوة التالية

      تمكَّن من حماية بيانات مؤسستك عبر البيئات السحابية الهجينة وتبسيط متطلبات الامتثال باستخدام حلول أمن البيانات.

      استكشف حلول أمن البيانات احجز عرضًا توضيحيًا مباشرًا