قائمة الغش لأمان SAML
دليل مرجعي سريع للغة تدوين تأكيد الأمان (SAML) وميزاتها الأمنية. فهم المصطلحات الأساسية، ونصائح التنفيذ، وأفضل الممارسات لتأمين المصادقة والتفويض القائم على SAML في بيئات المؤسسات.
مقدمة
لغة تدوين تأكيد الأمان (SAML) هي معيار مفتوح لتبادل بيانات المصادقة والتفويض بين الأطراف، وخاصة بين موفر الهوية وموفر الخدمة. SAML هي لغة تدوين قائمة على XML للبيانات الأمنية تُستخدم للدخول الموحد (SSO) واتحاد الهوية. تُستخدم عادةً في بيئات المؤسسات لأغراض المصادقة والتفويض.
تدفق مصادقة SAML القياسي
- يطلب المستخدم الوصول إلى تطبيق العميل، الذي يعمل كموفر خدمة (SP).
- يرسل SP طلب مصادقة SAML SSO إلى موفر الهوية (IdP) ويعيد توجيه المستخدم إلى IdP.
- يطالب IdP المستخدم بإدخال بيانات الاعتماد إذا لم يكن المستخدم مصادق بالفعل.
- يدخل المستخدم بيانات الاعتماد، ويصادق IdP المستخدم.
- يرسل IdP تأكيد استجابة SAML إلى SP، والذي يتضمن حالة المصادقة وسمات المستخدم. ثم يعيد IdP توجيه المستخدم مرة أخرى إلى SP.
- يستلم SP تأكيد استجابة SAML، ويقوم بالتحقق منه، ويمنح الوصول للمستخدم.
عوامل الأمان في SAML
معرف الكيان SP
فكر في معرف الكيان SP كالشارة الفريدة ل SP في سياق مصادقة SAML. إنه مثل بصمة الإصبع التي تساعد IdP على التعرف على SP خلال تفاعلاتهم. هذا المعرف هو جزء أساسي من بيانات النظام لـ SP، يتم مشاركته مع IdP لبناء الثقة وضمان الاتصال الآمن.
استخدام معرف الكيان SP:
- تسجيل البيانات: السمة
EntityID
هي جزء من بيانات النظام لـ SP، يتم مشاركتها مع IdP لتأسيس علاقة ثقة. يعمل كمعرف فريد لتحديد موقع بيانات النظام لـ SP والحصول على تفاصيل التكوين اللازمة لتفاعلات SAML. - طلب المصادقة: يتم تضمين معرف الكيان SP في طلب مصادقة SAML المرسل إلى IdP، مما يحدد بوضوح SP الذي يطلب. يستخدم IdP هذه المعلومات للتحقق من الطلب وتحديد سياق المصادقة المناسب.
- جمهور التأكيد: بعد مصادقة المستخدم بنجاح، يتم تضمين معرف الكيان SP في تأكيد SAML كقيود جمهور. هذه الخطوة تضمن أن التأكيد مخصص بشكل حصري لـ SP المعين ولا يمكن إساءة استخدامه من قبل SP آخرين.
معرف الكيان IdP
على الجانب الآخر، يعد معرف الكيان IdP العلامة الخاصة لـ IdP. يساعد في تحديد IdP داخل نظام SAML، مما يسهل على SP العثور عليه. يتم تضمين هذا المعرف في بيانات النظام لـ IdP ويتم مشاركته مع SP، مما يعزز العلاقة الموثوقة والاتصالات الآمنة.
استخدام معرف الكيان IdP:
- تسجيل البيانات: يتم تضمين السمة
EntityID
أيضًا في بيانات النظام لـ IdP، يتم مشاركتها مع SP لتأسيس علاقة ثقة. يعمل كمعرف فريد لتحديد موقع بيانات النظام لـ IdP والحصول على تفاصيل التكوين اللازمة لـ SP للتحقق من استجابات SAML. - جهة إصدار التأكيد: عندما يقوم IdP بإنشاء تأكيد SAML، فإنه يتضمن معرف الكيان الخاص به كجهة الإصدار. تشير هذه السمة إلى الكيان الذي أصدر التأكيد وتساعد SP على التحقق من صحة التأكيد ونزاهته.
حالة الترحيل
حالة الترحيل هي معلمة تُستخدم في مصادقة SAML لتسهيل نقل معلومات حالة بين SP و IdP. تعمل كجسر بين تدفقات SSO التي يبدأها SP و IdP، وتحافظ على سياق المستخدم وحالة الجلسة خلال عملية المصادقة.
استخدام حالة الترحيل:
- المحافظة على سياق المستخدم: تتيح حالة الترحيل لـ SP تمرير معلومات إضافية إلى IdP أثناء عملية المصادقة. يمكن أن تتضمن هذه المعلومات حالة المستخدم، سياق التطبيق، أو أي بيانات أخرى ذات صلة يجب الحفاظ عليها عبر تدفق SAML. مثل URL أو معرف الجلسة للتطبيق الذي كان المستخدم يصل إليه قبل المصادقة.
- منع هجمات CSRF: تُعتبر حالة الترحيل أمرًا بالغ الأهمية لمنع هجمات تزوير الطلب بين المواقع (CSRF) خلال مصادقة SAML. من خلال تضمين قيمة حالة ترحيل فريدة وغير متوقعة في طلب المصادقة، يمكن لـ SP التحقق من نزاهة استجابة SAML وضمان أنها تتوافق مع الطلب الأصلي.
توقيع التأكيد
يعد توقيع التأكيد أحد الميزات الأمنية الأساسية في SAML التي تضمن نزاهة، وهوية، وعدم إنكار التأكيدات. يتضمن التوقيع الرقمي للتأكيد باستخدام المفتاح الخاص لـ IdP، مما يسمح لـ SP بالتحقق من أصل التأكيد واكتشاف أي محاولات للتلاعب.
كيفية عمل توقيع التأكيد:
- توليد زوج المفتاح: يقوم IdP بتوليد زوج مفتاح عام-خاص، حيث يُستخدم المفتاح الخاص لتوقيع التأكيد، ويُشارك المفتاح العام مع SP للتحقق. يضمن هذا النظام التشفيري غير المتماثل أن IdP هو الوحيد الذي يمكنه توقيع التأكيد، بينما يمكن SP التحقق منه.
- شهادة مشتركة: يُقدم IdP لـ SP شهادته المفتاح العام، التي تحتوي على المفتاح العام المستخدم للتحقق من توقيع التأكيد. عادةً، تكون هذه الشهادة جزءًا من بيانات النظام لـ IdP، أو يمكن لـ SP الحصول عليها من خلال عملية تنزيل آمنة.
- توقيع التأكيد: بعد مصادقة المستخدم، يقوم IdP بتوقيع التأكيد رقميًا باستخدام مفتاحه الخاص. يتم تضمين هذا التوقيع في التأكيد، إلى جانب شهادة المفتاح العام، مما يسمح لـ SP بالتحقق من هوية التأكيد.
- التحقق من التأكيد: عند استلام التأكيد، يستخدم SP المفتاح العام لـ IdP للتحقق من توقيع التأكيد. إذا كان التوقيع صالحًا، يمكن لـ SP الثقة في التأكيد ومنح الوصول للمستخدم.
تشفير التأكيد
بالإضافة إلى التوقيع، يدعم SAML أيضًا تشفير التأكيد لحماية السمات والبيانات الحساسة للمستخدم المرسلة بين IdP وSP. من خلال تشفير التأكيد، يضمن IdP أن المستلم المقصود فقط (SP) يمكنه فك تشفير والوصول إلى محتويات التأكيد، مما يحافظ على خصوصية وسرية المستخدم. يعتبر تشفير التأكيد ميزة أمنية اختيارية في SAML يمكن استخدامها لتعزيز حماية البيانات.
استخدام تشفير التأكيد:
- حماية السمات الحساسة: يكون تشفير التأكيد مفيدًا بشكل خاص في حماية السمات الحساسة للمستخدم، مثل المعلومات الشخصية القابلة للتحديد (PII)، البيانات المالية، أو السجلات الصحية. من خلال تشفير هذه السمات داخل التأكيد، يمنع IdP الوصول غير المصرح به ويضمن سرية البيانات.
كيفية عمل تشفير التأكيد:
- تبادل المفاتيح: يقوم IdP وSP بتأسيس آلية تبادل المفاتيح الآمنة لتبادل مفاتيح التشفير لحماية تأكيد SAML. يمكن أن يتضمن هذا الاستخدام لمفاتيح التشفير المتماثل أو نظم التشفير العمومي، اعتمادًا على خوارزمية التشفير واستراتيجية إدارة المفاتيح.
- تشفير السمات: بعد توليد تأكيد SAML، يقوم IdP بتشفير السمات الحساسة للمستخدم باستخدام مفتاح التشف ير المشترك. يتم تضمين السمات المشفرة داخل التأكيد، مما يضمن أن SP فقط يمكنه فك تشفير والوصول إلى البيانات.
- فك تشفير التأكيد: عند استلام التأكيد المشفر، يقوم SP بفك تشفير السمات المحمية باستخدام مفتاح التشفير المشترك. تتيح هذه العملية لـ SP الوصول بأمان إلى المعلومات الحساسة للمستخدم ومعالجتها حسب الحاجة.
طرق الربط
تحدد طرق الربط في SAML كيفية نقل رسائل SAML بين SP وIdP عبر بروتوكولات التواصل المختلفة. يتم تحديد الترميز، النقل، وآليات الأمان المستخدمة لتبادل التأكيدات والطلبات، لضمان التواصل الآمن والموثوق بين الأطراف المعنية.
كلاً من SP وIdP سيحددان أي طرق الربط يدعمان في بيانات النظام الخاصة بهما، مما يسمح لهما بالتفاوض على الطريقة المناسبة لتفاعلات SAML. يعتمد اختيار طريقة الربط على عوامل مثل حجم الرسالة، متطلبات الأمان، وخصائص قناة التواصل.
طرق الربط في SAML:
- إعادة التوجيه HTTP: تُعبر رسائل SAML كمعلمات لعناوين URL ويتم نقلها عبر إعادة التوجيه HTTP. هذه الطريقة مناسبة للسيناريوهات التي يكون فيها حجم الرسالة محدودًا، وقناة الاتصال غير آمنة.
- HTTP POST: تُعبر رسائل SAML كمعلمات نموذج ويتم نقلها عبر طلبات HTTP POST. تُستخدم هذه الطريقة عندما يتجاوز حجم الرسالة حد طول URL أو عندما تكون هناك حاجة إلى إجراءات أمنية إضافية.
- الدليل: تُنقل رسائل SAML باستخدام رموز مؤقتة قصيرة العمر تُسمى الدلائل، والتي تُتبادل عبر قناة خلفية آمنة بين SP وIdP. هذه الطريقة مناسبة للسيناريوهات التي تكون فيها سرية وسلامة الرسائل حاسمة، وقناة الاتصال آمنة.
أكثر طرق الربط شيوعًا:
- طلب المصادقة: عادةً ما يُنقل طلب المصادقة من SP إلى IdP باستخدام إعادة التوجيه HTTP نظرًا لبساطته وفعاليته. يُقوم SP بترميز طلب SAML كمعلمات URL ويعيد توجيه متصفح المستخدم إلى IdP للمصادقة. يُعرف هذا بتدفق الدخول الموحد SP-initiated.
- استجابة التأكيد: عادةً ما تُنقل استجابة تأكيد SAML من IdP إلى SP باستخدام طريقة الربط HTTP POST. يُقوم IdP بترميز تأكيد SAML كمعلمات نموذج ويعيده إلى SP للتحقق. هذا يضمن أن التأكيد يُنقل بأمان دون كشف البيانات الحساسة في URL. أيضًا، يمكن لطريقة الربط HTTP POST التعامل مع أحجام رسائل أكبر مقارنةً بطريقة الربط HTTP Redirect.
عناصر الأمان والاعتبارات في تأكيدات SAML
جهة الإصدار
كما تم الذكر سابقًا، جهة الإصدار هي سمة رئيسية في تأكيدات SAML التي تحدد الكيان الذي أصدر التأكيد. عادةً ما تكون جهة الإصدار IdP الذي قام بمصادقة المستخدم وتوليد التأكيد. من خلال تضمين سمة جهة الإصدار في التأكيد، يمكن لـ SP التحقق من أصل التأكيد وضمان أنه يأتي من مصدر موثوق.
التوقيع
يحتوي عنصر التوقيع في تأكيد SAML على التوقيع الرقمي الذي أنشأه IdP لضمان نزاهة وأصالة التأكيد. يتم إنشاء التوقيع باستخدام المفتاح الخاص لـ IdP ويُدرج في التأكيد جنبًا إلى جنب مع شهادة المفتاح العام للتحقق بواسطة SP. من خلال التحقق من التوقيع، يمكن لـ SP التحقق من أن التأكيد لم يتم التلاعب به ويأتي من IdP المتوقع.
الشروط
يحدد عنصر الشروط في تأكيد SAML القيود والقيود التي تنطبق على صلاحية واستخدام التأكيد. يتضمن الشروط مثل فترة صلاحية التأكيد، قيود الجمهور، والقيود السياقية الأخرى التي يجب على SP تنفيذها عند معالجة التأكيد.
بيان المصادقة
يعد بيان المصادقة (AuthnStatement) مكونًا رئيسيًا في تأكيد SAML الذي يوفر معلومات حول حالة مصادقة المستخدم وسياقها. يتضمن تفاصيل مثل طريقة المصادقة المستخدمة، وقت المصادقة، وأي معلومات سياق مصادقة ذات صلة، مما يتيح لـ SP اتخاذ قرارات تحكم في الوصول مبنية على حالة مصادقة المستخدم.
سمات بيان المصادقة:
- سياق المصادقة: يصف طريقة وسياق مصادقة المستخدم، مثل اسم المستخدم وكلمة المرور، مصادقة متعددة العوامل، أو الدخول الموحد. تساعد هذه السمة SP في تقييم قوة وموثوقية عملية المصادقة وتحديد ضوابط الوصول المناسبة.
- لحظة المصادقة: تشير إلى الوقت الذي تم فيه مصادقة المستخدم من قبل IdP. تكون هذه العلامة الزمنية حاسمة للتحقق من حدوث المصادقة في الوقت الحالي ومنع هجمات إعادة التشغيل أو اختراق الجلسات.
- الجلسة غير صالحة بعد: يحدد الوقت المستقبلي لانتهاء صلاحية جلسة المستخدم، بعده يجب على المستخدم إعادة المصادقة للوصول إلى الخدمة. تساعد هذه السمة في تطبيق سياسات إدارة الجلسات وتخفيف خطر الوصول غير المصرح به.
أفضل الممارسات لأمان SAML
- استخدام طرق الربط الآمنة: اختر طرق الربط SAML المناسبة بناءً على متطلبات الأمان وخصائص قناة الاتصال. استخدم HTTP POST لنقل البيانات الحساسة وHTTP Redirect للطلبات البسيطة.
- التحقق من توقيعات التأكيد: تحقق من التوقيعات الرقمية لتأكيدات SAML للتأكد من نزاهتها وأصالتها. استخدم شهادة المفتاح العام لـ IdP للتحقق من التوقيع واكتشاف محاولات التلاعب.
- فرض قيود الجمهور: قم بتضمين قيود الجمهور في تأكيدات SAML لتحديد نطاق التأكيد إلى SP المعني. يمنع هذا هجمات إعادة التأكيد والوصول غير المصرح به من قبل مزودي الخدمة الآخرين.
- حماية تبادل البيانات: احمِ تبادل بيانات النظام لـ SP وIdP لمنع التلاعب بالبيانات وهجمات التزوير. استخدم القنوات والآليات الآمنة لمشاركة البيانات بأمان.
- تنفيذ إدارة حالة الترحيل الآمنة: استخدم قيم حالة ترحيل فريدة وغير متوقعة لمنع هجمات CSRF خلال مصادقة SAML. تحقق من حالة الترحيل للتأكد من نزاهتها وأصالتها.
- فرض إدارة الجلسة: حدد سياسات انتهاء الجلسات وفرض مهلات الجلسة لتخفيف خطر اختراق الجلسات والوصول غير المصرح به. استخدم السمات المتعلقة بالجلسة في تأكيدات SAML لإدارة جلسات المستخدم بأمان.
- تشفير السمات الحساسة: إذا لزم الأمر، قم بتشفير السمات الحساسة للمستخدم داخل تأكيدات SAML لحماية خصوصية المستخدم وسرية البيانات. استخدم خوارزميات التشفير الآمنة وممارسات إدارة المفاتيح لحماية البيانات الحساسة.
بدائل SAML
بينما يظل SAML معيارًا معتمدًا على نطاق واسع للدخول الموحد واتحاد الهوية، حيث يقدم مجموعة قوية من الميزات والآليات الأمنية، يمكن أن تشكل عمره تحديات في تلبية المتطلبات الأمنية وقابلية الاستخدام المتطورة للتطبيقات الحديثة. عند مقارنته بمقياس OAuth 2.0 الأحدث والمبني على OpenID Connect (OIDC)، يميل SAML إلى أن يكون أكثر تعقيدًا ويفتقر إلى بعض ميزات الأمان المحسنة التي تقدمها OIDC. على سبيل المثال، يوفر تدفق الترخيص الآمن المتعدد الطلبات لـ OIDC نهجًا أكثر أمانًا مقارنةً بتدفق تبادل التأكيد الأبسط نسبيًا في SAML. بالنسبة للمؤسسات التي تسعى إلى اعتماد حل اتحاد الهوية الحديث والأكثر مرونة، قد يكون OIDC بديلاً ممكناً لـ SAML.