x
إلى متغير آخر y
. لا يرغب أي نظام في تسريب معلومات سرية، الأمر الذي لا يتعلق بالخصوصية الشخصية فحسب، بل قد يتسبب أيضًا في خسائر كبيرة للشركة.
توجد طرق عديدة للحد من الكشف عن المعلومات، مثل قوائم التحكم في الوصول، وجدران الحماية، وتقنية التشفير. ومع ذلك، وعلى الرغم من أن هذه الأساليب تحد من نشر المعلومات إلى حد معين، فإنها لا تستطيع ضمان عدم تسريب المعلومات.
مع تقدم التكنولوجيا، تغيرت أيضًا أساليب ضمان أمن البيانات بشكل كبير. على سبيل المثال، يمكن لقوائم التحكم في الوصول منع الوصول غير المصرح به إلى الملفات، ولكنها لا تستطيع التحكم فيما يحدث للبيانات بمجرد استخدامها. وبالمثل، على الرغم من أن تقنية التشفير قادرة على نقل المعلومات بشكل خاص في قناة غير آمنة، فإن سرية البيانات سوف تتعرض للتهديد بمجرد فك تشفيرها. ومن ثم، يصبح من المهم بشكل خاص فهم التحكم في تدفق المعلومات.
يمكن تقسيم تدفقات المعلومات تقريبًا إلى فئتين: التدفقات الصريحة والتدفقات الالتفافية. التدفق الصريح هو عندما يتم تسريب سر بشكل صريح إلى متغير يمكن ملاحظته علنًا، على سبيل المثال:
var l, h; l := h;
من ناحية أخرى، تستغل التدفقات الجانبية خصائص معينة مثل وقت التنفيذ أو استهلاك الطاقة لتسريب المعلومات. على سبيل المثال، في حالة ما، إذا كانت h
صحيحة، فسيتم تنفيذ بعض الأعمال التي تستغرق وقتًا طويلاً، مما يسمح للمهاجم باستنتاج h
بناءً على الوقت الذي يستغرقه البرنامج . قيمة .
يعتبر تدفق المعلومات الضمني أيضًا جزءًا من تدفق التجاوز. في حين أن تدفق التحكم في البرنامج يعتمد على بيانات خاصة، فإن المتغيرات العامة يمكن أن تتضمن بعض المعلومات السرية.
عدم التدخل هو سياسة تؤكد على أنه لا ينبغي للمهاجم أن يكون قادرًا على التمييز بين حسابين بناءً على مخرجاتهما إذا كانا يختلفان فقط في مدخلاتهما السرية. ومع ذلك، فإن هذه السياسة مقيدة للغاية بحيث لا يمكن تطبيقها في الإجراءات الفعلية.
آلية التحكم في تدفق المعلومات تم تصميم آليات التحكم في تدفق المعلومات لفرض سياسات تدفق المعلومات. ولتحقيق هذا الهدف، تم اقتراح عدة طرق لتنفيذ استراتيجيات تدفق المعلومات. يمكن لآليات وقت التشغيل تصنيف البيانات على مستوى نظام التشغيل ولغة البرمجة، بينما يضمن تحليل البرنامج الثابت أن تدفق المعلومات في البرنامج يتبع السياسات المقابلة.على سبيل المثال، قد يحتاج برنامج التحقق من كلمة المرور إلى الكشف عن بعض المعلومات السرية عند الضرورة: أي ما إذا كانت كلمة المرور المدخلة صحيحة أم لا. يتيح هذا للمهاجم الحصول على معلومات مفيدة حتى عندما يرفض البرنامج كلمة المرور، على سبيل المثال، كلمة المرور التي تم إدخالها لم تكن صالحة.
ومع ذلك، لا تستطيع تقنيات التحليل الديناميكي ملاحظة جميع مسارات التنفيذ وبالتالي لا يمكنها ضمان المتانة والدقة. ولضمان عدم تداخلها مع فرض السياسات، تتطلب هذه التقنيات غالبًا إنهاء التنفيذ الذي قد يؤدي إلى تسريب معلومات حساسة، أو تجاهل التحديثات التي قد تؤدي إلى تسريب المعلومات.
على سبيل المثال، إذا تم وضع علامة على متغير كنوع من الأمان العالي، فلا ينبغي للمتغير تغيير متغير من نوع من الأمان المنخفض، وبالتالي حماية المعلومات السرية من التسريب.
في التطبيقات الواقعية، فإن صرامة سياسة عدم التدخل تجعلها غير عملية. ولذلك، تم اقتراح العديد من الخطط للسماح بإصدار المعلومات لتحقيق هدف الإصدار الخاضع للرقابة. وتُعرف هذه المخططات أيضًا باسم إزالة السرية عن المعلومات. يجب أن تضمن إزالة السرية القوية عدم تمكن المهاجم النشط من التلاعب بالنظام للحصول على أسرار تتجاوز ما يعرفه المهاجم السلبي.
ملخصأصبح التحكم في تدفق المعلومات ذا أهمية متزايدة في البرمجة الحديثة وحماية البيانات. ومع ذلك، فإن ضمان أمن البيانات بشكل فعال في التطبيقات العملية يظل يشكل تحديًا يجب معالجته. هل أنت مستعد للتعامل مع هذه التهديدات المحتملة؟