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

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

1 min read

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

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

1 min read

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

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

هناك العديد من الطرق لبناء التحقق من الهوية في منتج API-الأول مثل SparkPost، والطريقة التي اخترناها مبكرًا هي استخدام مفاتيح API. جعل إدخال مفتاح API الخاص بك كرأس تفويض خام أو عبر HTTP Basic Auth القياسي استخدام واجهات برمجة التطبيقات الخاصة بنا أمرًا سهلاً للغاية. هذه المفاتيح 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 الخاصة بك في الكود. هناك العديد من الفوائد في الاحتفاظ بها كمتغيرات بيئية، كما تفعل Heroku

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

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

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

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

R

وصول

G

نمو

م

إدارة

A

أتمتة

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.