ماذا تعرف عن مفتاح واجهة برمجة التطبيق (API) وكيف تستخدمه بطريقة آمنة؟
الصفحة الرئيسية
المقالات
ماذا تعرف عن مفتاح واجهة برمجة التطبيق (API) وكيف تستخدمه بطريقة آمنة؟

ماذا تعرف عن مفتاح واجهة برمجة التطبيق (API) وكيف تستخدمه بطريقة آمنة؟

متوسط
تاريخ النشر Jan 6, 2023تاريخ التحديث Feb 21, 2023
7m


مفتاح واجهة برمجة التطبيق (API) عبارة عن رمز فريد تستخدمه إحدى واجهات برمجة التطبيق للتحقق من هوية أحد التطبيقات أو المستخدمين. وتُستخدم مفاتيح واجهة برمجة التطبيق في تتبع هوية الأشخاص الذين يستخدمون إحدى واجهات برمجة التطبيق ومراقبتهم وكذلك طريقة استخدامهم لها، كما تُستخدم في المصادقة والتصريح باستخدام التطبيقات — أي أن وظيفته مماثلة لوظيفة اسم المستخدم وكلمة المرور. ويكون مفتاح واجهة برمجة التطبيق على هيئة مفتاح واحد أو مجموعة من المفاتيح. ويتعين على المستخدم اتباع إجراءات الاستخدام الصحيحة من أجل زيادة مستوى الأمان بوجهٍ عام في مواجهة محاولات سرقة مفتاح واجهة برمجة التطبيق والعواقب المترتبة على عدم تأمين مفاتيح واجهة برمجة التطبيق.

الفرق بين واجهة برمجة التطبيق ومفتاح واجهة برمجة التطبيق

من أجل فهم تعريف مفتاح واجهة برمجة التطبيق، يجب أولًا فهم ما المقصود بواجهة برمجة التطبيق. واجهة برمجة التطبيق أو كما تُعرف اختصارًا API، هي إحدى البرمجيات الوسيطة التي تتيح نقل المعلومات بين تطبيقين أو أكثر. على سبيل المثال، تتيح واجهة برمجة التطبيق لمنصة CoinMarketCap للتطبيقات الأخرى استرداد بيانات العملات الرقمية واستخدامها، ويشمل ذلك السعر، والحجم، والقيمة السوقية.

يصمم مفتاح واجهة برمجة التطبيق بأشكال مختلفة — فقد يكون على هيئة مفتاح واحد أو مجموعة مكوّنة من عدة مفاتيح. وتستخدم الأنظمة على اختلافها هذه المفاتيح بغرض المصادقة والتصريح بالاستخدام للتطبيقات، بالطريقة ذاتها التي يتم استخدام اسم المستخدم وكلمة المرور. ويستخدم عميل واجهة برمجة التطبيق مفتاح واجهة برمجة التطبيق في المصادقة على تطبيق يطلب تصريح الوصول إلى واجهة برمجة التطبيق. 

على سبيل المثال، إذا رغبت أكاديمية Binance في استخدام واجهة برمجة التطبيق لمنصة CoinMarketCap، فستقوم منصة CoinMarketCap بإنشاء مفتاح واجهة برمجة التطبيق واستخدامه في المصادقة على هوية أكاديمية Binance (عميل واجهة برمجة التطبيق)، الذي طلب الوصول إلى واجهة برمجة التطبيق. وعندما تصل أكاديمية Binance إلى واجهة برمجة التطبيق لمنصة CoinMarketCap، يجب إرسال مفتاح واجهة برمجة التطبيق إلى CoinMarketCap مع الطلب. 

يخصص مفتاح واجهة برمجة التطبيق هذا للاستخدام بواسطة أكاديمية Binance حصرًا ولا ينبغي إرساله أو الإفصاح عن بياناته لجهات أخرى، وذلك لأن الإفصاح عن بيانات هذا المفتاح سيتيح لطرف ثالث الوصول إلى واجهة برمجة التطبيق لمنصة CoinMarketCap باستخدام هوية أكاديمية Binance، وسيُنسب أي إجراء ينفذه الطرف الثالث إلى أكاديمية Binance.

كذلك قد تستخدم واجهة برمجة التطبيق لمنصة CoinMarketCap المفتاح في التأكد من أن المصدر الذي طلب الوصول إلى التطبيق مُصرح له بذلك. إضافةً إلى ما سبق، تستخدم الجهات المالكة لواجهة برمجة التطبيق مفاتيح واجهة برمجة التطبيق في مراقبة أنشطة واجهة برمجة التطبيق، مثل أنواع الأنشطة، وكثافة الاستخدام، وحجم الطلبات. 

ما المقصود بمفتاح واجهة برمجة التطبيق؟ 

يُستخدم مفتاح واجهة برمجة التطبيق في مراقبة مستخدمي واجهة برمجة التطبيق وتتبع أنشطتهم وكيفية استخدامهم لها. وقد يشير مصطلح "مفتاح واجهة برمجة التطبيق" إلى أمور مختلفة حسب كل نظام. فبعض الأنظمة لها رمز واحد بينما تستخدم أنظمة أخرى عدة رموز لأحد مفاتيح واجهة برمجة التطبيق.   

إذن، يتكون "مفتاح واجهة برمجة التطبيق" من رمز واحد فريد أو مجموعة من الرموز الفريدة التي تستخدمها واجهة برمجة التطبيق في المصادقة على مستخدم أو تطبيق يطلب الوصول إلى الواجهة والتصريح له باستخدامها. وتُستخدم بعض الرموز في المصادقة وبعضها في إنشاء توقيعات مشفرة لإثبات صلاحية الطلب. 

وعادةً يشار إلى رموز المصادقة هذه كوحدة واحدة تحت اسم "مفتاح واجهة برمجة التطبيق"، أما الرموز التي تُستخدم في إنشاء التوقيعات المشفرة فتحمل أكثر من اسم، منها "المفتاح السري"، أو "المفتاح العام"، أو "المفتاح الخاص". وتنطوي عملية المصادقة على تحديد هوية الجهات المشاركة والتأكد من صحة هويتهم.

أما التصريح بالاستخدام، فيُستخدم في تحديد خدمات واجهة برمجة التطبيق التي تم منح تصريح الوصول لها. وتتشابه وظيفة مفتاح واجهة برمجة التطبيق مع اسم المستخدم وكلمة المرور للحساب، كما يمكن ربطها بمزايا أمنية أخرى لتوفير مستوى أعلى من الأمان بوجهٍ عام. 

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

التوقيعات المشفرة

تستخدم بعض مفاتيح واجهة برمجة التطبيق توقيعات مشفرة لتكون طبقة إضافية للتصريح بالاستخدام. وعندما يرغب المستخدم في إرسال بعض البيانات إلى واجهة برمجة التطبيق، يمكن إضافة توقيع رقمي أنشأه مفتاح آخر إلى الطلب. وعن طريق استخدام التشفير، يستطيع مالك واجهة برمجة التطبيق التحقق من أن التوقيع الرقمي مرتبط بالبيانات التي جرى إرسالها.

التوقيعات باستخدام التشفير المتماثل والتشفير غير المتماثل 

يتم توقيع البيانات المنقولة عبر واجهة برمجة التطبيق بواسطة مفاتيح مشفرة، تندرج تحت الفئات التالية:

المفاتيح المتماثلة

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

المفاتيح غير المتماثلة

وتعتمد هذه الفئة من المفاتيح على استخدام مفتاحين: مفتاح خاص ومفتاح عام، وهما مختلفان لكن مرتبطان عن طريق التشفير. ويُستخدم المفتاح الخاص في إنشاء التوقيعات أما المفتاح العام فيستخدم في التحقق من صحة التوقيعات. ويقوم مالك واجهة برمجة التطبيق بإنشاء مفتاح واجهة برمجة التطبيق، بينما يقوم المستخدم بإنشاء زوج المفتاح الخاص والمفتاح العام. ويستخدم مالك واجهة برمجة التطبيق المفتاح العام فقط للتحقق من صحة التوقيع، أما المفتاح الخاص فيكون بحوزة المستخدم وبذلك يبقى سريًا. 

وتتمثل أهم ميزة في استخدام المفاتيح غير المتماثلة في أنها توفر مستوى أعلى من الأمان حيث أنها تعتمد على مفتاح لإنشاء التوقيع ومفتاح آخر للتحقق من صحة التوقيع. وتتيح هذه العملية للأنظمة الخارجية التحقق من صحة التوقيعات لكن لا تمنحها صلاحية إنشاء التوقيعات. وتتمتع هذه الفئة بميزة أخرى، وهي أن بعض أنظمة التشفير غير المتماثل تدعم إضافة كلمة مرور إلى المفاتيح الخاصة. وأحد النماذج الجيدة لتوضيح فكرة المفاتيح غير المتماثلة إنشاء المفتاح العام والمفتاح الخاص باستخدام خوارزمية التعمية RSA. 

هل مفاتيح واجهة برمجة التطبيق آمنة؟ 

يتحمل المستخدم مسؤولية حماية مفتاح واجهة برمجة التطبيق، وذلك لأن مفاتيح واجهة برمجة التطبيق مثلها مثل كلمات المرور، إذ يجب توخي الحذر عند التعامل معها. إن الإفصاح عن بيانات مفتاح واجهة برمجة التطبيق مثل الإفصاح عن كلمة المرور، لذا يجب تجنب ذلك لأنه قد يعرِّض حساب المستخدم للخطر. 

من الشائع استهداف مفاتيح واجهة برمجة التطبيق عبر هجمات سيبرانية، ذلك لأنها تُستخدم في إجراء عمليات شديدة الحساسية داخل الأنظمة، منها طلب الحصول على معلومات شخصية أو إجراء المعاملات المالية. وبالفعل توجد حالات شهدت هجمات لبرامج زحف على قواعد بيانات الرموز على الإنترنت استهدفت سرقة مفاتيح واجهة برمجة التطبيق.

قد تؤدي عمليات سرقة مفاتيح واجهة برمجة التطبيق إلى عواقب وخيمة ووقوع خسائر مالية كبيرة. إضافةً إلى ذلك، نظرًا إلى أن بعض مفاتيح واجهة برمجة التطبيق لا تنتهي صلاحيتها، فقد يستخدمها منفذو الهجمات في أي وقت بعد سرقتها، حتى يتم إلغاء المفاتيح.

الممارسات المثلى عند استخدام مفاتيح واجهة برمجة التطبيق

إن الاستخدام الآمن لمفاتيح واجهة برمجة التطبيق أمرٌ في غاية الأهمية، نظرًا لقدرة هذه المفاتيح على الوصول إلى بيانات حساسة وقابلية تعرضها للمخاطر بوجهٍ عام. وننصحك باتباع هذه الإرشادات العملية عند استخدام مفاتيح واجهة برمجة التطبيق من أجل تعزيز مستوى الأمان بصفةٍ عامة: 

  1. قم بتغيير مفاتيح واجهة برمجة التطبيق كلما أمكن ذلك. وينطوي ذلك على إلغاء مفتاح واجهة برمجة التطبيق الحالي وإنشاء مفتاح جديد. وتتميز بعض الأنظمة بسهولة إلغاء مفاتيح واجهة برمجة التطبيق وإنشائها. ومثلما تتطلب بعض الأنظمة تغيير كلمة المرور كل فترة تتراوح بين 30 و 90 يومًا، يُفضّل تغيير مفاتيح واجهة برمجة التطبيق بالمعدل ذاته كلما أمكن ذلك.

  2. استخدم قائمة بيضاء لعناوين IP: عند إنشاء مفتاح واجهة برمجة التطبيق، قم بإعداد قائمة تحتوي على عناوين IP المصرّح لها استخدام المفتاح (إنشاء قائمة بيضاء لعناوين IP). كما يمكن إنشاء قائمة تحتوي على عناوين IP المحظورة (قائمة سوداء لعناوين IP). بذلك حتى في حال سرقة مفتاح واجهة برمجة التطبيق، سيتعذر وصول أي عنوان IP غير معلوم المصدر إلى المفتاح.

  3. استخدم أكثر من مفتاح واجهة برمجة التطبيق: إن إنشاء أكثر من مفتاح وتوزيع المهام عليها سيعمل على الحد من المخاطر المتعلقة بالأمان، لأنك لن تعتمد في تأمين بياناتك وأموالك على مفتاح واحد له صلاحية تنفيذ عدد كبير من المهام. كذلك يمكنك إعداد أكثر من قائمة بيضاء تحتوي على عناوين IP لكل مفتاح، لمزيد من الحماية ضد مخاطر الأمان. 

  4. احفظ مفاتيح واجهة برمجة التطبيق بطريقة آمنة: لا تحتفظ بمفاتيحك في الأماكن العامة، أو على الحواسيب المتاحة للعامة، أو بتنسيق النص الأصلي العادي. لكن ننصحك بحفظ كل مفتاح باستخدام التشفير أو داخل أحد أنظمة إدارة مفاتيح واجهة برمجة التطبيق للمزيد من الأمان، واحرص على عدم الإفصاح عنها دون قصد. 

  5. لا تفصح عن مفاتيح واجهة برمجة التطبيق. إن الإفصاح عن مفتاح واجهة برمجة التطبيق مثل الإفصاح عن كلمة المرور. فأنت بذلك تمنح طرف آخر صلاحية الوصول والاستخدام الممنوحة لك. وفي هذه الحالة، يمكن سرقة مفتاح واجهة برمجة التطبيق واستخدامه في اختراق حسابك. لذلك يجب أن يقتصر استخدام مفتاح واجهة برمجة التطبيق عليك وعلى النظام الذي استخدمته في إنشاء المفتاح.

وفي حال الكشف عن بيانات مفتاح واجهة برمجة التطبيق، عليك أولًا إلغاء المفتاح لتجنب حدوث ضرر أكبر. أما في حال تعرضك لخسائر مالية، التقط لقطات شاشة للمعلومات الأساسية المرتبطة بالواقعة، وتواصل مع الجهات المعنية بالأمر، وأبلغ الشرطة، فهذه أفضل طريقة لتعزيز فرص استعادة أموالك. 

أفكار ختامية

تتميز مفاتيح واجهة برمجة التطبيق بتوفير وظائف أساسية لإجراء عمليات المصادقة والتصريح بالاستخدام، ويتحمل المستخدم مسؤولية إدارة المفاتيح وحمايتها. ويتوفر العديد من المستويات والطرق لضمان الاستخدام الآمن لمفاتيح واجهة برمجة التطبيق. وبصقةٍ عامة، يجب التعامل مع مفتاح واجهة برمجة التطبيق كما تعامل كلمة المرور أحد حساباتك.

مقالات ذات صلة