إدراج عناوين IP للقائمة البيضاء لمفاتيح واجهة برمجة التطبيقات
البريد الإلكتروني
·
19/08/2015

النقاط الرئيسية
مفاتيح واجهة برمجة التطبيقات هي بيانات اعتماد قوية - إذا تم اختراقها، يمكن للمهاجمين إرسال رسائل بريد إلكتروني، وسرقة البيانات، أو انتحال العلامة التجارية الخاصة بك.
إن كسر مفتاح سداسي عشري بطول 40 حرفًا يعتبر أمرًا مستحيلًا تقريبًا؛ التهديدات الحقيقية تأتي من التعرض (هجمات التصيد، مستودعات الكود غير الآمنة، تسريبات بيانات الاعتماد).
استخدم دائمًا HTTPS والتحقق من شهادات SSL لمنع اعتراض مفاتيح واجهة برمجة التطبيقات الخاصة بك.
يمكن أن تضيف قائمة العناوين المسموح بها طبقة حماية حاسمة عن طريق تقييد استخدام المفتاح لعناوين IP أو نطاقات IP معينة.
حتى لو سرق المهاجم مفتاح واجهة برمجة التطبيقات الخاص بك، فلا يمكنه استخدامه ما لم يكن متصلًا من عنوان IP معتمد.
تسهّل دعم CIDR تفويض الشبكات بالكامل دون الحاجة إلى إدراج كل خادم.
تجنب تضمين مفاتيح واجهة برمجة التطبيقات في الكود - استخدم متغيرات البيئة أو حلول إدارة الأسرار الآمنة بدلاً من ذلك.
قم بإنشاء مفاتيح واجهة برمجة التطبيقات متعددة ذات نطاق ضيق بدلاً من مفتاح
أهم النقاط في الأسئلة والأجوبة
ما هو إدراج عناوين الـ IP البيضاء؟
إنها ميزة أمان تقيد استخدام مفتاح واجهة برمجة التطبيقات لعناوين IP أو نطاقات IP معينة.
لماذا تستخدم SparkPost/Bird مفاتيح API للمصادقة؟
مفاتيح API بسيطة ومستخدمة على نطاق واسع وتعمل بشكل نظيف مع واجهات برمجة التطبيقات REST وSMTP.
ماذا يحدث إذا سرق شخص ما مفتاح واجهة برمجة التطبيقات الخاص بي؟
يمكنهم إرسال البريد الإلكتروني نيابةً عنك، تحميل قوائم المستلمين، تعديل القوالب، أو إرسال رسائل الاحتيال/البريد المزعج الذي يضر بعلامتك التجارية.
هل يمكن اختراق مفاتيح واجهة برمجة التطبيقات؟
عملياً مستحيل. سلسلة HEX مكونة من 40 حرفًا تحتوي على ~1.46e48 تركيبات — ستستغرق قوة الهجوم أكثر من عمر الكون.
كيف يحصل المهاجمون عادةً على مفاتيح واجهة برمجة التطبيقات؟
هجمات الرجل في المنتصف (إذا لم يتم التحقق من SSL)، المفاتيح المكشوفة في مستودعات GitHub العامة، أو السجلات التي تتسرب عن غير قصد المفاتيح.
كيف يساعد إدراج عنوان بروتوكول الإنترنت في القائمة البيضاء؟
حتى إذا قام المهاجم بسرقة مفتاحك، فلن يعمل ما لم يتصلوا من عنوان IP معتمد.
هل يمكنني إضافة شبكات كاملة إلى القائمة البيضاء؟
نعم، من خلال ترميز CIDR - مثالي للخوادم المتوازنة الحمل، الشبكات الخاصة الافتراضية، أو مجموعة المكاتب الثابتة.
هل ينطبق القوائم البيضاء على كل من REST و SMTP؟
نعم، يجب أن يتطابق عنوان IP الخاص بالطلب الوارد مع قائمة السماح لديك.
كم عدد عناوين IP أو النطاقات التي يمكنني إضافتها إلى القائمة البيضاء؟
بقدر ما تحتاج - عناوين IP فردية متعددة أو كتل.
هل يجب أن أستخدم مفتاح API واحد لكل شيء؟
لا. أنشئ مفاتيح منفصلة لمختلف الأنظمة أو الفرق أو البائعين. هذا يعزز الأمان ويسهل تدوير المفاتيح أو إلغاء تفويضها.
أين يجب أن أخزن مفاتيح واجهة برمجة التطبيقات؟
استخدم متغيرات البيئة - لا تقم أبدًا بتشفير المفاتيح في ملفات المصدر أو المستودعات العامة.
أي ممارسات أمان إضافية؟
دائمًا قم بتمكين 2FA على حسابك في SparkPost/Bird وأنشئ مفاتيح مخصصة لأطراف ثالثة بصلاحيات محدودة وقوائم سفلية خاصة بهم.
هناك طرق عديدة لبناء التوثيق في منتج يعتمد على واجهة برمجة التطبيقات مثل SparkPost، والطريقة التي اخترناها مبكرًا هي استخدام مفاتيح واجهة برمجة التطبيقات. إن إدخال مفتاح واجهة برمجة التطبيقات الخاص بك كعنوان تفويض خام أو عبر المصادقة الأساسية HTTP القياسية يجعل من السهل جدًا استخدام واجهات برمجة التطبيقات الخاصة بنا. تعتبر مفاتيح واجهة برمجة التطبيقات مثل هذه معيارًا شائعًا لخدمات الويب، ولكن ما مدى أمان هذا النظام؟
المخاطر
عند استخدام أي خدمة ويب، إذا حصل المهاجم على مفتاح API الخاص بك، يمكنه التصرف نيابة عنك، ويفعل أشياء مثل (في حالتنا):
إرسال بريدهم الإلكتروني مجاناً من خلال حسابك
تنزيل قائمة مستلمي البريد الخاص بك وتغذيتها بالسبام (إذا لم يكونوا سبام بأنفسهم)
تعديل القوالب الخاصة بك لإدخال روابط تصيد احتيالي
إرسال البريد العشوائي أو التصيد الاحتيالي نيابة عنك
يمكن أن تكون أي من هذه النتائج ضارة للغاية لسمعتك و لعملك، وفي حالة التصيد الاحتيالي قد تلحق الضرر بمستخدميك النهائيين بشكل مباشر. لهذا السبب، من المهم للغاية التأكد من عدم تمكن أي شخص من اكتشاف مفتاح API الخاص بك.
الاحتمالات
هل سمعت القوة الغاشمة؟ مفاتيح API الخاصة بنا هي سلاسل هكساديسيمال عشوائية تتكون من 40 حرفًا. وهذا يجعل إجمالي مفاتيح API يصل إلى 1.4615e+48. إذا كان جميع 3 مليارات حاسوب وهاتف ذكي في العالم تحاول 100 مفتاح API في الثانية، بافتراض أن خوادمنا ستسمح بذلك، فإن التجربة عبر جميع مفاتيح API الممكنة ستستغرق أكثر من 150,000,000,000,000,000,000,000,000,000 سنة. لذا، فإن قوة الغاشمة لمفتاح API لا معنى لها.
فكيف يمكن لشخص ما أن يجد مفتاح API الخاص بك؟ لأن المفتاح يتم تمريره كعنوان، يمكن قراءته من خلال هجمات الرجل في المنتصف، لذا يجب عليك دائمًا التأكد من أن عميلك يتحقق من شهادات SSL عند الاتصال بواجهات برمجة التطبيقات لدينا (هذا هو السبب الرئيسي وراء طلبنا لـ https لعمليات الاتصال بواجهات برمجة التطبيقات). أيضًا، إذا كنت غير حذر في استخدامك لمستودعات الكود العامة مثل github، يمكن أن ينتهي بك الأمر إلى كشف مفتاح API الخاص بك بسهولة في البرية. هذه ليست مشكلة أكاديمية: هناك برامج معروفة تتسلق github للعثور على مفاتيح API، وقد حدثت هجمات ناجحة من خلال هذه الوسيلة.
قائمة السماح لعناوين IP للإنقاذ
آخر كلمات
بعض التوصيات الشخصية حول الأمان:
لا تحتفظ بمفاتيح API الخاصة بك في الشيفرة. هناك الكثير من الفوائد في الاحتفاظ بها كمتغيرات بيئية، مثلما تفعل هيروكو
يمكنك إنشاء كمية غير محدودة من مفاتيح API، ومن الأفضل للأمان تقسيم المسؤوليات بين عدة مفاتيح API، بدلاً من الاعتماد على مفتاح واحد متعدد الأغراض. سيسمح لك هذا أيضًا بالحصول على قوائم بيضاء مختلفة لـ IP لكل مفتاح، من أجل فصل أفضل للمسؤوليات
إذا كنت تعمل مع أطراف ثالثة، فلا تشارك مفتاح API الخاص بك بل قم بإنشاء مفتاح جديد لهم، مع منح الأذونات المطلوبة فقط، ومربوط بعناوين IP الخاصة بهم
نظرًا لأن مفاتيح API يمكن إنشاؤها فقط عبر واجهة المستخدم، تمكين المصادقة الثنائية على حسابك في SparkPost هو أمر لا بد منه ولا يستغرق أكثر من دقيقتين



