واجهة برمجة تطبيقات التشفير على الويب
تُعدّ واجهة برمجة تطبيقات التشفير على الويب (Web Cryptography API) توصيةً من اتحاد شبكة الويب العالمية (W3C) لواجهة منخفضة المستوى تُعزز أمان تطبيقات الويب من خلال تمكينها من أداء وظائف التشفير دون الحاجة إلى الوصول إلى بيانات المفاتيح الخام. [ 1 ] تُنفّذ هذه الواجهة ، المُستقلة عن أي تطبيق ويب مُحدد ، عمليات التشفير الأساسية، مثل التجزئة ، وإنشاء التوقيعات والتحقق منها، والتشفير ، بالإضافة إلى فك التشفير، وذلك من داخل تطبيق الويب. [ 2 ]
وصف
في 26 يناير 2017، أصدر اتحاد شبكة الويب العالمية (W3C) توصيته بشأن واجهة برمجة تطبيقات تشفير الويب [ 3 ] التي تُتيح إجراء عمليات تشفير أساسية في تطبيقات الويب. تستخدم هذه الواجهة، المُستقلة عن أي تطبيق مُحدد، لغة جافا سكريبت لتنفيذ عمليات تُعزز أمان تبادل البيانات داخل تطبيقات الويب . كما تُوفر واجهة منخفضة المستوى لإنشاء و/أو إدارة المفاتيح العامة والخاصة لأغراض التجزئة ، وإنشاء التوقيعات الرقمية والتحقق منها، والتشفير وفك التشفير لاستخدامها مع تطبيقات الويب.
يمكن استخدام واجهة برمجة تطبيقات التشفير على الويب لمجموعة واسعة من الاستخدامات، بما في ذلك:
- توفير المصادقة للمستخدمين والخدمات
- التوقيع الإلكتروني على المستندات أو الرموز
- حماية سلامة وسرية الاتصالات وتبادل البيانات الرقمية
نظرًا لأن واجهة برمجة تطبيقات التشفير على الويب مستقلة عن أي منصة ، يمكن استخدامها على أي نظام تشغيل . فهي توفر مجموعة مشتركة من الواجهات التي تسمح لتطبيقات الويب وتطبيقات الويب التقدمية بإجراء عمليات التشفير دون الحاجة إلى الوصول إلى بيانات المفاتيح الخام. ويتم ذلك بمساعدة واجهة SubtleCrypto، التي تُعرّف مجموعة من الطرق لتنفيذ عمليات التشفير المذكورة أعلاه. كما تتيح واجهات إضافية ضمن واجهة برمجة تطبيقات التشفير على الويب إمكانية توليد المفاتيح، واشتقاقها، واستيرادها وتصديرها. [ 1 ]
الوظائف المقترحة
تركز مواصفات W3C لواجهة برمجة تطبيقات التشفير على الويب على الوظائف والميزات المشتركة بين واجهات برمجة تطبيقات التشفير الخاصة بالمنصات والواجهات القياسية، مقارنةً بتلك المعروفة لعدد محدود من التطبيقات. ولا يشترط توصية المجموعة باستخدام واجهة برمجة تطبيقات التشفير على الويب تطبيق مجموعة محددة من الخوارزميات، وذلك إدراكًا منها لاختلاف تطبيقات التشفير بين وكلاء المستخدمين المتوافقين، نظرًا للوائح الحكومية والسياسات المحلية وممارسات الأمان واعتبارات الملكية الفكرية .
توجد أنواع عديدة من تطبيقات الويب الحالية التي ستكون واجهة برمجة تطبيقات تشفير الويب مناسبة تمامًا للاستخدام معها. [ 1 ]
المصادقة متعددة العوامل
يُعدّ التحقق متعدد العوامل اليوم من أكثر الطرق موثوقيةً للتحقق من هوية مستخدمي تطبيقات الويب، مثل الخدمات المصرفية الإلكترونية . وتعتمد العديد من تطبيقات الويب حاليًا على هذه الطريقة لحماية كلٍّ من المستخدم وبرنامجه . مع واجهة برمجة تطبيقات تشفير الويب (Web Cryptography API)، سيتمكن تطبيق الويب من توفير التحقق داخليًا بدلًا من الاعتماد على طبقة النقل لتشفير بيانات المفاتيح اللازمة للتحقق من وصول المستخدم. ستوفر هذه العملية تجربةً أكثر ثراءً للمستخدم.
تتيح واجهة برمجة تطبيقات التشفير على الويب للتطبيق تحديد موقع مفاتيح العميل المناسبة التي أنشأها وكيل المستخدم مسبقًا أو التي وفرها تطبيق الويب مسبقًا. كما يتيح التطبيق لوكيل المستخدم إمكانية إنشاء مفتاح جديد أو إعادة استخدام مفتاح موجود في حال عدم وجود مفتاح مرتبط بحساب المستخدم. ومن خلال ربط هذه العملية بأمان طبقة النقل (TLS) الذي يستخدمه المستخدم للمصادقة، يمكن تعزيز عملية المصادقة متعددة العوامل بشكل إضافي عن طريق اشتقاق مفتاح يعتمد على طبقة النقل الأساسية. [ 1 ] [ 2 ]
تبادل المستندات المحمية
يمكن استخدام واجهة برمجة التطبيقات (API) لحماية المستندات الحساسة أو السرية من الاطلاع غير المصرح به من داخل تطبيق الويب، حتى لو تم استلامها مسبقًا بشكل آمن. يستخدم تطبيق الويب واجهة برمجة تطبيقات تشفير الويب لتشفير المستند باستخدام مفتاح سري، ثم يغلّفه بمفاتيح عامة مرتبطة بالمستخدمين المصرح لهم بالاطلاع على المستند. عند دخول المستخدم المصرح له إلى تطبيق الويب، يتلقى المستند المشفر، ويُطلب منه استخدام مفتاحه الخاص لبدء عملية فك التشفير التي تتيح له فك تشفير المستند والاطلاع عليه. [ 2 ]
التخزين السحابي
تعتمد العديد من الشركات والأفراد على التخزين السحابي . ولحماية بياناتهم، قد يرغب مزودو الخدمات عن بُعد في أن يتيح تطبيق الويب الخاص بهم للمستخدمين إمكانية حماية مستنداتهم السرية قبل تحميلها أو تحميل أي بيانات أخرى. ستتيح واجهة برمجة تطبيقات التشفير على الويب للمستخدمين ما يلي:
- اختر تحديد مفتاح خاص أو سري
- استخرج مفتاح التشفير من مفتاحهم إذا رغبوا في ذلك
- قم بتشفير مستنداتهم/بياناتهم
- قم بتحميل مستنداتهم/بياناتهم المشفرة باستخدام واجهات برمجة التطبيقات الحالية لمزود الخدمة [ 2 ]
التوقيع الإلكتروني على المستندات
تُوفّر إمكانية التوقيع الإلكتروني على المستندات الوقت، وتُعزّز أمان المستندات المهمة، وتُعدّ دليلاً قانونياً على قبول المستخدم للمستند. وتختار العديد من تطبيقات الويب قبول التوقيعات الإلكترونية بدلاً من اشتراط التوقيعات الخطية. وباستخدام واجهة برمجة تطبيقات التشفير على الويب (Web Cryptography API)، يُطلب من المستخدم اختيار مفتاح يُمكن إنشاؤه أو توفيره مسبقاً خصيصاً لتطبيق الويب. ويُمكن استخدام هذا المفتاح أثناء عملية التوقيع.
حماية سلامة البيانات
غالباً ما تقوم تطبيقات الويب بتخزين البيانات مؤقتاً محلياً، مما يعرضها لخطر الاختراق في حال وقوع هجوم غير متصل بالإنترنت. تسمح واجهة برمجة تطبيقات تشفير الويب لتطبيق الويب باستخدام مفتاح عام يتم نشره من داخله للتحقق من سلامة ذاكرة التخزين المؤقت للبيانات. [ 2 ]
مراسلة آمنة
يمكن لواجهة برمجة تطبيقات التشفير على الويب تعزيز أمان المراسلة لاستخدامها في أنظمة توقيع الرسائل غير المسجلة (OTR) وغيرها من أنواع أنظمة توقيع الرسائل، وذلك من خلال استخدام اتفاقية المفاتيح. يتفاوض مُرسِل الرسالة والمُستقبِل المقصود على مفاتيح تشفير مشتركة ومفاتيح رمز مصادقة الرسائل (MAC) لتشفير الرسائل وفك تشفيرها، وذلك لمنع الوصول غير المصرح به. [ 2 ]
توقيع وتشفير كائنات JSON (JOSE)
يمكن لتطبيقات الويب استخدام واجهة برمجة تطبيقات التشفير على الويب للتفاعل مع تنسيقات وهياكل الرسائل المحددة ضمن مجموعة عمل JOSE. [ 4 ] يستطيع التطبيق قراءة واستيراد مفاتيح توقيع الويب JSON (JWK)، والتحقق من صحة الرسائل المحمية عبر التوقيع الإلكتروني أو مفاتيح MAC، وفك تشفير رسائل JWE.
الامتثال لواجهة برمجة تطبيقات التشفير على الويب
توصي منظمة W3C الموردين بتجنب استخدام امتدادات خاصة بهم مع مواصفات واجهة برمجة تطبيقات التشفير على الويب. وذلك لأن ذلك قد يقلل من قابلية التشغيل البيني لواجهة برمجة التطبيقات ويؤدي إلى تشتيت قاعدة المستخدمين، حيث لن يتمكن جميع المستخدمين من الوصول إلى المحتوى المحدد. ويُوصى، في حال تعذر تجنب استخدام امتداد خاص بالمورد، أن يُضيف المورد بادئة خاصة به لتجنب أي تعارض مع الإصدارات اللاحقة من مواصفات واجهة برمجة التطبيقات.
مراجع
- 1 2 3 4 تيرنر، دون م. "اقتراح اتحاد شبكة الويب العالمية (W3C) لواجهة برمجة تطبيقات تشفير الويب" . كريبتوماثيك . تم الاسترجاع في 9 مايو 2017 .
- 1 2 3 4 5 6 واتسون، مارك (محرر). "توصية مقترحة من اتحاد شبكة الويب العالمية (W3C) بشأن واجهة برمجة تطبيقات التشفير على الويب، 15 ديسمبر 2016" . اتحاد شبكة الويب العالمية (W3C ). تم الاطلاع عليه بتاريخ 23 مايو 2017 .
- ↑ واتسون، مارك (محرر). "توصية اتحاد شبكة الويب العالمية بشأن واجهة برمجة تطبيقات التشفير على الويب، 26 يناير 2017" . اتحاد شبكة الويب العالمية . تم الاطلاع عليه في 3 يوليو 2018 .
- ↑ مجموعة عمل JOSE. "توقيع وتشفير كائنات جافا سكريبت (jose)" . IETF . تم الاطلاع عليه بتاريخ 16 مارس 2017 .
روابط خارجية
- معايير التشفير
- المعايير القائمة على لغة XML
- معايير اتحاد شبكة الويب العالمية
