مولد مفاتيح API عشوائية - مفاتيح آمنة مجانية بطول 32 حرفًا
قم بإنشاء مفاتيح API آمنة من الناحية التشفيرية على الفور. أداة مجانية عبر الإنترنت تنشئ مفاتيح أبجدية رقمية عشوائية بطول 32 حرفًا للمصادقة. إنشاء من جانب العميل، بدون تخزين.
مولد مفتاح API
التوثيق
مولّد عشوائي لمفاتيح API هو أداة تنشئ سلسلة عشوائية من الأحرف والأرقام لاستخدامها كرمز شبيه بكلمة المرور بين برنامجين حاسوبيين. تعمل هذه الأداة بالكامل داخل متصفح الويب لدى الزائر. وتتيح للمستخدم اختيار طول المفتاح من 8 إلى 128 حرفًا، مع ضبط 32 حرفًا كطول افتراضي.
ما مفتاح API؟
مفتاح API هو سلسلة من الأحرف يرسلها البرنامج مع طلب لإثبات أنه مخوّل باستخدام خدمة. ويفحص خادم الويب المفتاح قبل أن يستجيب للطلب. وعلى خلاف اسم المستخدم وكلمة المرور، يعرّف مفتاح API عادةً تطبيقًا أو نصًا برمجيًا، لا شخصًا.
تعمل المفاتيح بأفضل صورة عندما يتعذر على أي شخص تخمينها. فالمولّد الذي يستخدم عشوائية حقيقية يتجنب الأنماط التي تظهر في المفاتيح التي يكتبها شخص، مثل الأحرف المتكررة أو الكلمات القصيرة سهلة التذكر.
كيف يعمل هذا المولّد
تبني الأداة كل مفتاح من مجموعة ثابتة تضم 62 حرفًا: الأحرف الإنجليزية الكبيرة وعددها 26 من A–Z، والأحرف الإنجليزية الصغيرة وعددها 26 من a–z، والأرقام وعددها 10 من 0–9. وبالنسبة إلى مفتاح طوله n، تختار الأداة n حرفًا من تلك المجموعة، حرفًا واحدًا في كل مرة.
يأتي كل حرف من واجهة Web Crypto API في المتصفح، وتحديدًا من crypto.getRandomValues(). وهذا مولّد أرقام عشوائية آمن تشفيريًا (CSPRNG)، بخلاف Math.random() في JavaScript، الذي يمكن التنبؤ به وغير مناسب للقيم الحساسة أمنيًا.
لاختيار حرف عادل من بين 62 خيارًا انطلاقًا من بايت عشوائي (له 256 قيمة ممكنة)، لا يمكن للمولّد استخدام byte % 62 ببساطة. فنظرًا إلى أن 256 لا تنقسم بالتساوي على 62، فإن استخدام باقي القسمة مباشرةً يجعل الأحرف الأولى في المجموعة أكثر احتمالًا قليلًا من الأحرف الأخرى. وتتجنب الأداة ذلك باستخدام أخذ العينات بالرفض: إذ تتجاهل أي بايت عشوائي قد يسبب هذا الانحياز وتسحب بايتًا جديدًا بدلًا منه. لذلك يتمتع كل حرف في المفتاح النهائي بفرصة متساوية وغير منحازة للظهور في كل موضع.
كيفية إنشاء مفتاح API
- أدخل طولًا للمفتاح بين 8 و128 حرفًا، أو أبقِ الطول الافتراضي 32. ويُعلَّم الرقم الواقع خارج هذا النطاق، ثم يُستخدم أقرب طول مسموح به.
- انقر على «إنشاء». يُعرَض المفتاح داخل مربع نص، ويُنشأ بالكامل داخل المتصفح. يؤدي النقر على المربع إلى تحديد المفتاح بأكمله.
- انقر على «نسخ» لنسخ المفتاح إلى الحافظة. وقد تطلب بعض المتصفحات الإذن في المرة الأولى.
- انقر على «إعادة الإنشاء» لإنتاج مفتاح جديد بالطول نفسه، أو على «إعادة الضبط» لمسح المفتاح والعودة إلى الطول الافتراضي 32.
تعرض الأداة أسفل المفتاح ثلاث قيم: طول المفتاح بالأحرف، وحجم مجموعة الأحرف (وهو دائمًا 62)، والإنتروبيا بالبتات.
لا يُرسل أي مفتاح إلى خادم، ولا يُسجَّل أو يُخزَّن. ويجري الإنشاء باستخدام شيفرة JavaScript محلية، ولذلك يُظهر فحص نشاط شبكة المتصفح أثناء الإنشاء عدم وجود طلبات صادرة.
كيفية حساب عدد المفاتيح الممكنة
يتبع عدد المفاتيح المختلفة التي يمكن إنتاجها بطول محدد صيغة بسيطة:
حيث يمثل N عدد المفاتيح الممكنة، ويمثل c حجم مجموعة الأحرف، ويمثل n طول المفتاح.
يكون حجم مجموعة الأحرف دائمًا 62 في هذه الأداة. وبالنسبة إلى الطول الافتراضي 32:
N = 62³² ≈ 2.27 × 10⁵⁷
ويُعبَّر عن هذا العدد أيضًا بالإنتروبيا، المقاسة بالبتات، باستخدام الصيغة:
حيث تمثل H الإنتروبيا بالبتات.
بالنسبة إلى مفتاح مكوّن من 32 حرفًا: 32 × log₂(62) ≈ 32 × 5.95 ≈ 190.5 بت.
مثال تطبيقي: الوقت اللازم لتجربة كل مفتاح
لنفترض أن مهاجمًا يستطيع اختبار مليار مفتاح (10⁹) كل ثانية، وهي سرعة غير واقعية لأي نظام حقيقي. وستستغرق تجربة كل مفتاح ممكن مكوّن من 32 حرفًا:
2.27 × 10⁵⁷ ÷ 10⁹ = 2.27 × 10⁴⁸ ثانية ≈ 7.2 × 10⁴⁰ سنة
للمقارنة، يبلغ عمر الكون نحو 1.4 × 10¹⁰ سنة. ولا يُعد البحث بالقوة الغاشمة في كل مفتاح ممكن تهديدًا عمليًا عند هذا الطول. أما المفاتيح الأقصر فتقلل هذا العدد بسرعة: فالمفتاح المكوّن من 8 أحرف لا يملك سوى 62⁸ ≈ 2.18 × 10¹⁴ قيمة ممكنة، ويمكن لحاسوب سريع البحث فيها خلال بضعة أيام.
لماذا تستخدم التطبيقات مفاتيح API
تمنح مفاتيح API الخدمة طريقة بسيطة لمعرفة التطبيق الذي يرسل الطلب. وهذا مهم لعدة أسباب.
المصادقة. يستطيع الخادم رفض الطلبات التي تصل من دون مفتاح صالح، مما يمنع معظم إساءة الاستخدام العرضية.
تتبّع الاستخدام. نظرًا إلى أن كل عميل يمكنه الاحتفاظ بمفتاح مختلف، تستطيع الخدمة قياس مقدار استخدام كل عميل وتطبيق حدود منفصلة لمعدل الطلبات لكل مفتاح.
الإبطال. يمكن إيقاف مفتاح واحد تم اختراقه دون التأثير في أي عميل آخر، لأن كل مفتاح مستقل.
مفاتيح API أبسط في التنفيذ من OAuth 2.0، وهو معيار للمصادقة يعتمد على رموز مؤقتة تُجدَّد تلقائيًا. ويناسب OAuth الخدمات العامة التي تتعامل مع بيانات المستخدمين الشخصية. أما مفاتيح API فهي شائعة في الأدوات الداخلية والنصوص البرمجية والاتصالات بين الخدمات، حيث يكون اعتماد طويل الأمد مقبولًا.
ممارسات أمان مفاتيح API
تقلل بعض الممارسات خطر تسرّب المفتاح:
- لا تخزّن المفاتيح في الشيفرة المصدرية. يصعب محو سجل التحكم في الإصدارات، كما تُفحَص المستودعات العامة باستمرار بحثًا عن بيانات اعتماد مكشوفة. خزّن المفاتيح في متغيرات البيئة أو في مدير أسرار بدلًا من ذلك.
- بدّل المفاتيح دوريًا. يؤدي استبدال المفتاح كل بضعة أشهر إلى الحد من المدة التي يظل فيها المفتاح المتسرّب مفيدًا للمهاجم.
- امنح المفتاح أقل قدر من الصلاحيات اللازمة. فالمفتاح الذي يقرأ البيانات فقط لا ينبغي أن يستطيع أيضًا كتابتها أو حذفها.
- راقب الأنشطة غير المعتادة، مثل الارتفاع المفاجئ في عدد الطلبات من مفتاح واحد.
القيود
لا تحتفظ هذه الأداة بسجل للمفاتيح التي أنشأتها، ولذلك لا يمكنها ضمان عدم إنتاج مفتاح من قبل. ويبلغ احتمال تطابق مفتاحين عشوائيين مكوّنين من 32 حرفًا نحو 1 من (2.5 سم) 2.27 × 10⁵⁷، وهو قريب بما يكفي من الصفر للاستخدام العادي، لكن الأنظمة التي تحتاج إلى ضمان مطلق للتفرّد، مثل المفاتيح الأساسية في قواعد البيانات، ينبغي أن تتحقق من القيم الجديدة مقابل القيم الموجودة على خادم.
تقتصر مجموعة الأحرف على الأحرف الكبيرة والأحرف الصغيرة والأرقام. ولا تتضمن رموزًا مثل ! أو -، مما يجعل لصق المفاتيح آمنًا في معظم عناوين URL والرؤوس وملفات الإعداد من دون الحاجة إلى تهريبها.
الأسئلة الشائعة
ما مولّد مفاتيح API؟
هو أداة تنتج سلاسل عشوائية لاستخدامها كبيانات اعتماد للمصادقة بين تطبيقات البرامج. وتنشئ هذه الأداة مفاتيح يتراوح طولها بين 8 و128 حرفًا، تُختار من بين 62 حرفًا ممكنًا، باستخدام مولّد الأرقام العشوائية الآمن تشفيريًا في المتصفح.
هل مفتاح هذه الأداة آمن بما يكفي للاستخدام في بيئة الإنتاج؟
العشوائية نفسها آمنة تشفيريًا. لكن الأمان العام يعتمد أيضًا على كيفية تخزين المفتاح وإرساله بعد ذلك: لا تضعه أبدًا في نظام التحكم بالمصدر، وأرسله دائمًا عبر HTTPS، وبدّله وفق جدول منتظم.
ما الطول الذي ينبغي اختياره؟
يوفر الطول الافتراضي 32 حرفًا نحو 2.27 × 10⁵⁷ تركيبة ممكنة، وهو عدد يفوق كثيرًا ما يمكن لأي محاولة واقعية بالقوة الغاشمة البحث فيه. وقد تناسب المفاتيح الأقصر، مثل المفاتيح المكوّنة من 16 حرفًا، الأدوات الداخلية منخفضة المخاطر. أما المفاتيح الطويلة جدًا فلا تضيف حماية كبيرة، لكنها أصعب في التخزين واللصق.
هل يمكنني تعيين طول مخصص؟
نعم. يقبل حقل الطول أي عدد صحيح من 8 إلى 128. وتظل مجموعة الأحرف نفسها ثابتة (A–Z وa–z و0–9).
هل تخزّن الأداة المفاتيح التي تنشئها أو ترسلها؟
لا. يُنشأ كل مفتاح باستخدام JavaScript تعمل محليًا في المتصفح. ولا يُرسل أي شيء إلى خادم أو يُسجَّل أو يُحفَظ.
ما الفرق بين مفتاح API ورمز OAuth؟
مفتاح API هو بيانات اعتماد طويلة الأمد تظل صالحة إلى أن يُبطلها أحد. أما رمز OAuth فينتهي تلقائيًا بعد مدة محددة، ويمكن تجديده من دون تدخل مباشر من المستخدم. ويناسب OAuth الخدمات العامة التي تتعامل مع البيانات الشخصية؛ بينما تناسب مفاتيح API الاستخدامات الأبسط أو الداخلية أو التطويرية.
ما المتصفحات التي تدعمها هذه الأداة؟
يدعمها أي متصفح يوفر Web Crypto API، ويشمل ذلك كل إصدارات Chrome وFirefox وSafari وEdge وOpera التي صدرت خلال العقد الماضي. وإذا كانت واجهة API هذه غير متاحة، تعرض الأداة رسالة خطأ. ولا تعود أبدًا إلى استخدام Math.random()، لأنه غير آمن.