مولد مفاتيح 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.
- انقر على "إنشاء". يظهر المفتاح في مربع نص، ويُبنى بالكامل داخل المتصفح.
- انقر على «نسخ» لنسخ المفتاح إلى الحافظة. وقد تطلب بعض المتصفحات الإذن في المرة الأولى.
- انقر على "إعادة الإنشاء" لإنتاج مفتاح جديد بالطول نفسه، أو على "إعادة الضبط" للعودة إلى الطول الافتراضي.
لا يُرسل أي مفتاح إلى خادم، ولا يُسجَّل أو يُخزَّن. ويجري الإنشاء باستخدام شيفرة JavaScript محلية، ولذلك يُظهر فحص نشاط شبكة المتصفح أثناء الإنشاء عدم وجود طلبات صادرة.
كيفية حساب عدد المفاتيح الممكنة
يتبع عدد المفاتيح المختلفة التي يمكن إنتاجها بطول محدد صيغة بسيطة:
عدد المفاتيح الممكنة = (حجم مجموعة الأحرف) ^ (طول المفتاح)
يكون حجم مجموعة الأحرف دائمًا 62 في هذه الأداة. وبالنسبة إلى الطول الافتراضي 32:
عدد المفاتيح الممكنة = 62³² ≈ 2.27 × 10⁵⁷
ويُعبَّر عن هذا العدد أيضًا بالإنتروبيا، المقاسة بالبتات، باستخدام الصيغة:
الإنتروبيا (بالبت) = طول المفتاح × log₂(حجم مجموعة الأحرف)
بالنسبة إلى مفتاح مكوّن من 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.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 60 وما بعده، وFirefox 55 وما بعده، وSafari 10 وما بعده، وEdge 79 وما بعده، وOpera 47 وما بعده.
المراجع
- MDN Web Docs (Mozilla). Crypto: getRandomValues() method. Crypto.getRandomValues() — تعيد قيمًا عشوائية قوية تشفيريًا تصلح للأغراض التشفيرية.
- MDN Web Docs (Mozilla). Math.random(). Math.random() — لا تعطي أعدادًا عشوائية آمنة تشفيريًا ولا ينبغي استخدامها لأغراض الأمان.
- OWASP Foundation. Secrets Management Cheat Sheet. Secrets Management Cheat Sheet — مفاتيح API المكتوبة مباشرة في الشيفرة المصدرية، وأسباب اعتماد تخزين مركزي للأسرار وتدويرها.
- NASA Science. Universe overview. Universe overview — بدأ الكون قبل نحو 13.8 مليار سنة.