إضافة العناوين IP المسموح بها لمفاتيح API

Bird

19‏/08‏/2015

البريد الإلكتروني

1 min read

إضافة العناوين IP المسموح بها لمفاتيح API

النقاط الرئيسية

    • مفاتيح API هي بيانات اعتماد قوية — إذا تم اختراقها، يمكن للمهاجمين إرسال بريد إلكتروني، أو سرقة البيانات، أو انتحال شخصية علامتك التجارية.

    • هجمات القوة الغاشمة ضد مفتاح سداسي طول 40 حرفًا مستحيلة عمليا؛ التهديدات الحقيقية تأتي من التعرض (هجمات MITM، مستودعات الشيفرة غير الآمنة، بيانات الاعتماد المسربة).

    • دائماً استخدم HTTPS وصادق على شهادات SSL لمنع اعتراض مفاتيح API الخاصة بك.

    • إضافة عناوين IP إلى القائمة البيضاء يضيف طبقة حرجة من الحماية عن طريق قصر استخدام المفتاح على عناوين IP محددة أو نطاقات IP.

    • حتى لو سرق مهاجم مفتاح API الخاص بك، لا يمكنهم استخدامه ما لم يتصلوا من عنوان IP معتمد.

    • دعم CIDR يسهل الترخيص للشبكات بأكملها دون الحاجة إلى سرد كل خادم.

    • تجنب تضمين مفاتيح API في الشيفرة — استخدم متغيرات البيئة أو حلول إدارة الأسرار الآمنة بدلاً من ذلك.

    • قم بإنشاء عدة مفاتيح API ذات نطاق ضيق بدلاً من مفتاح واحد "يفعل كل شيء" — كل منها بامتيازات محدودة وقائمته البيضاء الخاصة.

    • للتكامل مع الطرف الثالث، قم بإنشاء مفاتيح مخصصة بمنح محدود وعناوين IP مقيدة.

    • قم بتمكين المصادقة الثنائية 2FA على حسابك حيث يمكن إنشاء مفاتيح API فقط عبر واجهة المستخدم.

    • قم بمراجعة وتدوير وإيقاف المفاتيح بانتظام للحفاظ على أمان عملي قوي.

أبرز الأسئلة والأجوبة

  • ما هو إدراج عنوان IP في القائمة البيضاء؟

    هذه ميزة أمان تقيد استخدام مفتاح API لعناوين IP معينة أو نطاقات IP.

  • لماذا تستخدم SparkPost/Bird مفاتيح API للمصادقة؟

    مفاتيح API بسيطة، ومُعتمدة على نطاق واسع، وتعمل بسلاسة مع واجهات برمجة تطبيقات REST وSMTP.

  • ماذا يحدث إذا سرق شخص ما مفتاح API الخاص بي؟

    يمكنهم إرسال البريد بالنيابة عنك، تنزيل قوائم المستلمين، تعديل القوالب، أو إرسال الرسائل الاحتيالية/البريد المزعج الذي يضر بسمعتك.

  • هل يمكن تجربة جميع الاحتمالات على مفاتيح API؟

    من المستحيل عمليًا. يحتوي سلسلة سداسية مكونة من 40 حرفًا على ~1.46e48 توليفات — يمكن أن يستغرق الكسر بالقوة الغاشمة وقتًا أطول من عمر الكون.

  • كيف يحصل المهاجمون عادةً على مفاتيح API؟

    هجمات الوسيط (إذا لم يتم التحقق من SSL)، مفاتيح مكشوفة في مستودعات GitHub العامة، أو سجلات تسرب المفاتيح عن طريق الخطأ.

  • كيف يساعد وضع عناوين IP في القائمة البيضاء؟

    حتى إذا سرق مهاجم مفتاحك، فلن يعمل إلا إذا كانوا يتصلون من عنوان IP معتمد.

  • هل يمكنني وضع الشبكات بالكامل في القائمة البيضاء؟

    نعم، عبر تدوين CIDR — مثالي للخوادم المحملة بالتوازن، الشبكات الافتراضية الخاصة، أو نطاقات المكاتب الثابتة.

  • هل ينطبق إدراج القائمة البيضاء على كل من REST و SMTP؟

    نعم، يجب أن يتطابق عنوان IP الخاص بالطلب الوارد مع القائمة البيضاء الخاصة بك.

  • كم عدد عناوين IP أو النطاقات التي يمكنني وضعها في القائمة البيضاء؟

    بقدر ما تحتاج — عناوين IP فردية متعددة أو كتل.

  • هل يجب أن أستخدم مفتاح API واحد لكل شيء؟

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

  • أين يجب أن أخزن مفاتيح API؟

    استخدم متغيرات البيئة — لا تقم أبدًا بترميز المفاتيح بشكل ثابت في ملفات المصدر أو المستودعات العامة.

  • هل هناك أي ممارسات أمان إضافية موصى بها؟

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

هناك العديد من الطرق لبناء التحقق من الهوية في منتج API-الأول مثل SparkPost، والطريقة التي اخترناها مبكرًا هي استخدام مفاتيح API. جعل إدخال مفتاح API الخاص بك كرأس تفويض خام أو عبر HTTP Basic Auth القياسي استخدام واجهات برمجة التطبيقات الخاصة بنا أمرًا سهلاً للغاية. هذه المفاتيح API شائعة كمعيار للخدمات الويب، ولكن ما مدى أمان هذا النظام؟

هناك العديد من الطرق لبناء التحقق من الهوية في منتج API-الأول مثل SparkPost، والطريقة التي اخترناها مبكرًا هي استخدام مفاتيح API. جعل إدخال مفتاح API الخاص بك كرأس تفويض خام أو عبر HTTP Basic Auth القياسي استخدام واجهات برمجة التطبيقات الخاصة بنا أمرًا سهلاً للغاية. هذه المفاتيح API شائعة كمعيار للخدمات الويب، ولكن ما مدى أمان هذا النظام؟

هناك العديد من الطرق لبناء التحقق من الهوية في منتج API-الأول مثل SparkPost، والطريقة التي اخترناها مبكرًا هي استخدام مفاتيح API. جعل إدخال مفتاح API الخاص بك كرأس تفويض خام أو عبر HTTP Basic Auth القياسي استخدام واجهات برمجة التطبيقات الخاصة بنا أمرًا سهلاً للغاية. هذه المفاتيح API شائعة كمعيار للخدمات الويب، ولكن ما مدى أمان هذا النظام؟

المخاطر

عند استخدام أي خدمة ويب، إذا حصل مهاجم على مفتاح API الخاص بك، يمكنه التصرف نيابة عنك، وفعل أشياء مثل (في حالتنا):

  • إرسال بريدهم الإلكتروني مجانًا عبر حسابك

  • تحميل قائمة المستلمين الخاصة بك وتزويدهم بمرسلي البريد المزعج (إذا لم يكونوا هم أنفسهم مرسلين للبريد المزعج)

  • تحرير نماذجك لحقن روابط تصيد

  • إرسال بريد مزعج أو تصيد نيابةً عنك

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

عند استخدام أي خدمة ويب، إذا حصل مهاجم على مفتاح API الخاص بك، يمكنه التصرف نيابة عنك، وفعل أشياء مثل (في حالتنا):

  • إرسال بريدهم الإلكتروني مجانًا عبر حسابك

  • تحميل قائمة المستلمين الخاصة بك وتزويدهم بمرسلي البريد المزعج (إذا لم يكونوا هم أنفسهم مرسلين للبريد المزعج)

  • تحرير نماذجك لحقن روابط تصيد

  • إرسال بريد مزعج أو تصيد نيابةً عنك

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

عند استخدام أي خدمة ويب، إذا حصل مهاجم على مفتاح API الخاص بك، يمكنه التصرف نيابة عنك، وفعل أشياء مثل (في حالتنا):

  • إرسال بريدهم الإلكتروني مجانًا عبر حسابك

  • تحميل قائمة المستلمين الخاصة بك وتزويدهم بمرسلي البريد المزعج (إذا لم يكونوا هم أنفسهم مرسلين للبريد المزعج)

  • تحرير نماذجك لحقن روابط تصيد

  • إرسال بريد مزعج أو تصيد نيابةً عنك

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

الاحتمالات

هل سمعت bruteforce? يتم توليد مفاتيح API الخاصة بنا بشكل عشوائي كسلاسل عشرية سداسية الطول مكونة من 40 رمزًا. هذا يجعل العدد الإجمالي لمفاتيح API هو 1.4615e+48. إذا كانت جميع أجهزة الكمبيوتر والهواتف الذكية البالغ عددها 3 مليارات في العالم تُجرب 100 مفتاح API في الثانية، بافتراض أن خوادمنا ستسمح بذلك، المرور عبر جميع مفاتيح API الممكنة سيستغرق أكثر من 150,000,000,000,000,000,000,000,000,000 سنة. لذا فإن استخدام القوة الغاشمة للحصول على مفتاح API ليس له معنى.

إذاً كيف يمكن لشخص ما العثور على مفتاح API الخاص بك؟ لأن المفتاح يتم تمريره كعنوان، يمكن قراءته من خلال هجمات رجل في الوسط، لذا يجب عليك دائمًا التأكد من أن عميلك يتحقق من شهادات SSL عند الاتصال بـAPIs الخاصة بنا (هذا هو السبب الرئيسي الذي يجعلنا نطلب https لاتصالات API). أيضًا، إذا كنت غير حذر في استخدامك لمستودعات الأكواد العامة مثل github، يمكن أن ينتهي بك الأمر بسهولة إلى عرض مفتاح API الخاص بك في العلن. هذه ليست مشكلة أكاديمية: هناك روبوتات معروفة تبحث في github للعثور على مفاتيح API، وقد حدثت هجمات ناجحة عبر تلك الاتجاه.

هل سمعت bruteforce? يتم توليد مفاتيح API الخاصة بنا بشكل عشوائي كسلاسل عشرية سداسية الطول مكونة من 40 رمزًا. هذا يجعل العدد الإجمالي لمفاتيح API هو 1.4615e+48. إذا كانت جميع أجهزة الكمبيوتر والهواتف الذكية البالغ عددها 3 مليارات في العالم تُجرب 100 مفتاح API في الثانية، بافتراض أن خوادمنا ستسمح بذلك، المرور عبر جميع مفاتيح API الممكنة سيستغرق أكثر من 150,000,000,000,000,000,000,000,000,000 سنة. لذا فإن استخدام القوة الغاشمة للحصول على مفتاح API ليس له معنى.

إذاً كيف يمكن لشخص ما العثور على مفتاح API الخاص بك؟ لأن المفتاح يتم تمريره كعنوان، يمكن قراءته من خلال هجمات رجل في الوسط، لذا يجب عليك دائمًا التأكد من أن عميلك يتحقق من شهادات SSL عند الاتصال بـAPIs الخاصة بنا (هذا هو السبب الرئيسي الذي يجعلنا نطلب https لاتصالات API). أيضًا، إذا كنت غير حذر في استخدامك لمستودعات الأكواد العامة مثل github، يمكن أن ينتهي بك الأمر بسهولة إلى عرض مفتاح API الخاص بك في العلن. هذه ليست مشكلة أكاديمية: هناك روبوتات معروفة تبحث في github للعثور على مفاتيح API، وقد حدثت هجمات ناجحة عبر تلك الاتجاه.

هل سمعت bruteforce? يتم توليد مفاتيح API الخاصة بنا بشكل عشوائي كسلاسل عشرية سداسية الطول مكونة من 40 رمزًا. هذا يجعل العدد الإجمالي لمفاتيح API هو 1.4615e+48. إذا كانت جميع أجهزة الكمبيوتر والهواتف الذكية البالغ عددها 3 مليارات في العالم تُجرب 100 مفتاح API في الثانية، بافتراض أن خوادمنا ستسمح بذلك، المرور عبر جميع مفاتيح API الممكنة سيستغرق أكثر من 150,000,000,000,000,000,000,000,000,000 سنة. لذا فإن استخدام القوة الغاشمة للحصول على مفتاح API ليس له معنى.

إذاً كيف يمكن لشخص ما العثور على مفتاح API الخاص بك؟ لأن المفتاح يتم تمريره كعنوان، يمكن قراءته من خلال هجمات رجل في الوسط، لذا يجب عليك دائمًا التأكد من أن عميلك يتحقق من شهادات SSL عند الاتصال بـAPIs الخاصة بنا (هذا هو السبب الرئيسي الذي يجعلنا نطلب https لاتصالات API). أيضًا، إذا كنت غير حذر في استخدامك لمستودعات الأكواد العامة مثل github، يمكن أن ينتهي بك الأمر بسهولة إلى عرض مفتاح API الخاص بك في العلن. هذه ليست مشكلة أكاديمية: هناك روبوتات معروفة تبحث في github للعثور على مفاتيح API، وقد حدثت هجمات ناجحة عبر تلك الاتجاه.

القائمة البيضاء لعناوين IP للمساعدة

عندما تنشئ مفتاح API، يمكنك الآن تحديد قائمة بـ IPs المصرح لها باستخدام هذا المفتاح. يمكنك تحديد عدة IP، وكذلك كتل IP، باستخدام ترميز CIDR، لذلك لا يتعين عليك إدراج الخوادم الخاصة بك بشكل فردي. عند استخدام مفتاح API، سواء بالنسبة لـ REST APIs أو SMTP، سنقوم بمطابقة IP المتصل مع هذه القائمة للسماح أو رفض الوصول.

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

عندما تنشئ مفتاح API، يمكنك الآن تحديد قائمة بـ IPs المصرح لها باستخدام هذا المفتاح. يمكنك تحديد عدة IP، وكذلك كتل IP، باستخدام ترميز CIDR، لذلك لا يتعين عليك إدراج الخوادم الخاصة بك بشكل فردي. عند استخدام مفتاح API، سواء بالنسبة لـ REST APIs أو SMTP، سنقوم بمطابقة IP المتصل مع هذه القائمة للسماح أو رفض الوصول.

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

عندما تنشئ مفتاح API، يمكنك الآن تحديد قائمة بـ IPs المصرح لها باستخدام هذا المفتاح. يمكنك تحديد عدة IP، وكذلك كتل IP، باستخدام ترميز CIDR، لذلك لا يتعين عليك إدراج الخوادم الخاصة بك بشكل فردي. عند استخدام مفتاح API، سواء بالنسبة لـ REST APIs أو SMTP، سنقوم بمطابقة IP المتصل مع هذه القائمة للسماح أو رفض الوصول.

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

الكلمات الأخيرة

بعض التوصيات الشخصية حول الأمان:

  • لا تحتفظ بمفاتيح API الخاصة بك في الكود. هناك العديد من الفوائد في الاحتفاظ بها كمتغيرات بيئية، كما تفعل Heroku

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

  • إذا كنت تعمل مع أطراف ثالثة، لا تشارك مفتاح API الخاص بك بل قم بإنشاء مفتاح جديد لهم، مع منح الصلاحيات اللازمة فقط، وربطه بعناوين IP الخاصة بهم

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

بعض التوصيات الشخصية حول الأمان:

  • لا تحتفظ بمفاتيح API الخاصة بك في الكود. هناك العديد من الفوائد في الاحتفاظ بها كمتغيرات بيئية، كما تفعل Heroku

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

  • إذا كنت تعمل مع أطراف ثالثة، لا تشارك مفتاح API الخاص بك بل قم بإنشاء مفتاح جديد لهم، مع منح الصلاحيات اللازمة فقط، وربطه بعناوين IP الخاصة بهم

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

بعض التوصيات الشخصية حول الأمان:

  • لا تحتفظ بمفاتيح API الخاصة بك في الكود. هناك العديد من الفوائد في الاحتفاظ بها كمتغيرات بيئية، كما تفعل Heroku

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

  • إذا كنت تعمل مع أطراف ثالثة، لا تشارك مفتاح API الخاص بك بل قم بإنشاء مفتاح جديد لهم، مع منح الصلاحيات اللازمة فقط، وربطه بعناوين IP الخاصة بهم

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

أخبار أخرى

اقرأ المزيد من هذه الفئة

A person is standing at a desk while typing on a laptop.

المنصة الأصلية للذكاء الاصطناعي التي تتوسع مع عملك.

A person is standing at a desk while typing on a laptop.

المنصة الأصلية للذكاء الاصطناعي التي تتوسع مع عملك.

A person is standing at a desk while typing on a laptop.

المنصة الأصلية للذكاء الاصطناعي التي تتوسع مع عملك.