سؤال

أنا أفكر في ما يلي:لدي بعض تدفقات البيانات التي أرغب في حمايتها بأكبر قدر ممكن من الأمان - هل من المنطقي أن نطبق لنفترض AES مع بعض IV، ثم السمكة المنتفخة مع بعض IV وأخيرًا مرة أخرى AES مع بعض IV؟

سيتم إخفاء عملية التشفير/فك التشفير (حتى أنها محمية ضد التصحيح) لذلك لن يكون من السهل تخمين طريقة التشفير وما هي طرق التشفير التي تم استخدامها (ومع ذلك، فأنا على دراية بحقيقة أنه لا يمكن الاعتماد على قوة سلسلة التشفير هذه على هذه الحقيقة لأن كل حماية ضد التصحيح قابلة للكسر بعد مرور بعض الوقت).

لدي قوة الكمبيوتر اللازمة لهذا (هذه الكمية من البيانات ليست كبيرة جدًا) لذا فإن السؤال هو فقط ما إذا كان الأمر يستحق التنفيذ.على سبيل المثال، عمل TripleDES بشكل مشابه جدًا، باستخدام ثلاثة IVs ونظام تشفير/فك تشفير/تشفير، لذلك ربما لا يكون الأمر هراء تمامًا.سؤال آخر هو ما مدى تقليل الأمان عندما أستخدم نفس IV للجزء الأول والثالث أو حتى نفس IV لجميع الأجزاء الثلاثة؟

وأرحب بأي تلميحات حول هذا الموضوع

هل كانت مفيدة؟

المحلول

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

تحديث:من تعليقي أدناه...

باستخدام TripleDES كمثال:فكر في مقدار الوقت والجهد الذي بذله أفضل مصممي التشفير في العالم لإنشاء هذا المزيج (لاحظ أن DoubleDES لديه ثغرة أمنية)، وأفضل ما يمكنهم فعله هو 112 بت من الأمان على الرغم من 192 بت من المفتاح.

التحديث 2:يجب أن أتفق مع Diomidis على أن AES كذلك لأقصى حد من غير المرجح أن تكون الحلقة الضعيفة في نظامك.تقريبًا كل جانب آخر من جوانب نظامك أكثر عرضة للاختراق من AES.

التحديث 3:اعتمادًا على ما تفعله بالبث، قد ترغب في استخدامه فقط TLS (خليفة SSL).أوصي التشفير العملي لمزيد من التفاصيل، فهو يقوم بعمل جيد جدًا في معالجة الكثير من المخاوف التي ستحتاج إلى معالجتها.ومن بين أمور أخرى، فإنه يناقش الأصفار تيار, ، والتي قد تكون أو لا تكون أكثر ملاءمة من AES (نظرًا لأن AES هي a تشفير الكتلة وقد ذكرت على وجه التحديد أن لديك دفق بيانات لتشفيره).

نصائح أخرى

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

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

سيهاجم المتسلل دائمًا أضعف عنصر في السلسلة.لذلك لا يساعد كثيرًا في جعل العنصر القوي أقوى.يعد كسر تشفير AES أمرًا مستحيلًا بالفعل مع طول مفتاح 128 بت.الشيء نفسه ينطبق على السمكة المنتفخة.إن اختيار أطوال مفاتيح أكبر يجعل الأمر أكثر صعوبة، ولكن في الواقع لم يتم حل 128 بت مطلقًا حتى الآن (وربما لن يحدث ذلك خلال السنوات العشر أو العشرين القادمة).لذا، ربما لا يكون هذا التشفير هو العنصر الأضعف، فلماذا نجعله أقوى؟إنها قوية بالفعل.

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

نظرًا لأنني ما زلت لا أعرف ما هي العملية برمتها (من يقوم بتشفير البيانات، ومن يقوم بفك تشفير البيانات، وأين يتم تخزين البيانات، وكيف يتم نقلها، ومن يحتاج إلى معرفة مفاتيح التشفير، وما إلى ذلك)، فمن الصعب جدًا لأقول ما هو العنصر الأضعف حقًا، لكنني أشك في أن تشفير AES أو السمكة المنتفخة في حد ذاته هو أضعف عنصر لديك.

ممن تحاول حماية بياناتك؟أخوك، منافسك، حكومتك، أو الفضائيين؟

لكل منها مستويات مختلفة يمكنك من خلالها اعتبار البيانات "آمنة قدر الإمكان"، ضمن ميزانية ذات معنى (من الوقت/النقود)

التشفير مرتين أكثر أمانًا من التشفير مرة واحدة، على الرغم من أن هذا قد لا يكون واضحًا في البداية.

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

على سبيل المثالأبدأ بالنص العادي أ وتشفير مع المفتاح ك1 للحصول عليه ب.ثم أقوم بالتشفير ب مع مفتاح ك2 تحصل ج.

بديهيًا، يبدو من المعقول افتراض أنه قد يكون هناك مفتاح، ك3, ، والتي يمكنني استخدامها للتشفير أ واحصل على ج مباشرة.إذا كان هذا هو الحال، فإن المهاجم الذي يستخدم القوة الغاشمة سوف يتعثر في النهاية ك3 وتكون قادرة على فك التشفير ج, ، وكانت النتيجة أن خطوة التشفير الإضافية لم تضيف أي أمان.

ومع ذلك، فمن المستبعد جدًا وجود مثل هذا المفتاح (لأي نظام تشفير حديث).(وعندما أقول "غير مرجح للغاية" هنا، أعني ما يمكن أن يعبر عنه شخص عادي باستخدام كلمة "مستحيل").

لماذا؟
اعتبر المفاتيح بمثابة وظائف توفر تعيينًا من النص العادي إلى النص المشفر.
إذا كانت مفاتيحنا كلها كوالالمبور بتات طويلة، ثم هناك 2 ^ KL مثل هذه التعيينات.
ومع ذلك، إذا استخدمت مفتاحين من كوالالمبور بتات لكل منها، وهذا يعطيني تعيينات (2^KL)^2.
لا يمكن أن تكون كل هذه العناصر مكافئة للتشفير أحادي المرحلة.

ميزة أخرى للتشفير مرتين، إذا تم استخدام خوارزميتين مختلفتين, ، هو أنه إذا تم العثور على ثغرة أمنية في إحدى الخوارزميات، فإن الخوارزمية الأخرى لا تزال توفر بعض الأمان.

كما لاحظ آخرون، عادةً ما يكون الضغط الغاشم على المفتاح هو الملاذ الأخير.غالبًا ما يحاول المهاجم كسر العملية في مرحلة أخرى (على سبيل المثال.باستخدام الهندسة الاجتماعية لاكتشاف عبارة المرور).

هناك طريقة أخرى لزيادة الأمان وهي ببساطة استخدام مفتاح أطول مع خوارزمية تشفير واحدة.

...لا تتردد في تصحيح حساباتي!

أيضًا، لا تضيع وقتًا في تشويش الخوارزمية - قم بتطبيق مبدأ كيرتشوف، وتذكر أن AES، في حد ذاته، يُستخدم (ويُعترف باستخدامه) في عدد كبير من الأماكن التي تحتاج فيها البيانات إلى "آمنة".

داميان:أنت على حق، يجب أن أكتب ذلك بشكل أكثر وضوحا.أنا أتحدث عن المنافس، فهو للاستخدام التجاري.إذن هناك ميزانية ذات معنى متاحة ولكني لا أريد تنفيذها دون التأكد من أنني أعرف سبب قيامي بذلك :)

هانك:نعم، هذا ما أخاف منه أيضًا.تم ذكر المصدر الأكثر دعمًا لهذه الفكرة TripleDES.على الجانب الآخر، عندما أستخدم خوارزمية واحدة لتشفير بعض البيانات، ثم أطبق خوارزمية أخرى، سيكون من الغريب جدًا أن تكون "قوة" التشفير الكامل أقل من استخدام خوارزمية مستقلة.لكن هذا لا يعني أنه لا يمكن أن يكون متساويا..ولهذا السبب أطلب بعض التلميحات، فهذا ليس مجال معرفتي...

ديوميديس:هذه هي وجهة نظري بشكل أساسي ولكن زميلي يحاول إقناعي بأنها "تعزز" الأمان حقًا.اقتراحي هو استخدام مفتاح تشفير أقوى بدلاً من خوارزمية تلو الأخرى دون أي تفكير أو معرفة عميقة بما أفعله.

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

@Miro Kropacek - يحاول زميلك إضافة الأمان من خلال Voodoo.بدلاً من ذلك، حاول إنشاء شيء بسيط يمكنك تحليله بحثًا عن العيوب - مثل استخدام AES فقط.

أعتقد أنه (هي؟) هو من اقترح تعزيز الأمان من خلال الحماية من تصحيح الأخطاء أيضًا...

لا يمكنك في الواقع صنع الأشياء أقل آمن إذا قمت بالتشفير أكثر من مرة باستخدام مفاتيح IV ومفاتيح مميزة، ولكن قد يكون المكاسب في الأمان أقل بكثير مما تتوقع:في مثال 2DES، يعني هجوم "لقاء في المنتصف" أنه من الصعب كسره فقط، بدلاً من تربيع الصعوبة.

بشكل عام، من الآمن جدًا الالتزام بخوارزمية واحدة معروفة وزيادة طول المفتاح إذا كنت بحاجة إلى مزيد من الأمان.اترك إنشاء أنظمة التشفير للخبراء (وأنا لا أصنف نفسي واحدًا منهم).

نعم، يمكن أن يكون مفيدًا، لكنه ربما يكون مبالغًا فيه في معظم المواقف.أيضًا، كما ذكر هانك، يمكن لمجموعات معينة أن تضعف تشفيرك.

يوفر TrueCrypt عددًا من خوارزميات التشفير المركبة مثل AES-Twofish-Serpent.وبطبيعة الحال، هناك عقوبة الأداء عند استخدامها.

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

إن مهاجمة خوارزميات التشفير عالية الجودة لا تعمل إلا بالقوة الغاشمة وبالتالي تعتمد على قوة الحوسبة التي يمكنك الإنفاق عليها.هذا يعني في النهاية أنه يمكنك فقط زيادة متوسط ​​الوقت المحتمل الذي يحتاجه شخص ما لفك تشفيره.

إذا كانت البيانات من حقيقي القيمة، فمن الأفضل ألا يهاجموا البيانات بل حامل المفتاح...

وأنا أتفق مع ما قيل أعلاه.المراحل المتعددة للتشفير لن تشتري لك الكثير.إذا كنت تستخدم خوارزمية "آمنة"، فمن المستحيل عمليًا اختراقها.استخدام AES في بعض أوضاع البث القياسية.يرى http://csrc.nist.gov/groups/ST/toolkit/index.html للشفرات والأوضاع المقبولة.وأي شيء موصى به على هذا الموقع يجب أن يكون آمنًا بدرجة كافية عند استخدامه بشكل صحيح.إذا كنت تريد أن تكون أكثر أمانًا، استخدم AES 256، على الرغم من أن 128 يجب أن يكون كافيًا على أي حال.أكبر المخاطر ليست الهجمات ضد الخوارزمية نفسها، بل الهجمات ضد الإدارة الرئيسية، أو هجمات القنوات الجانبية (والتي قد تشكل أو لا تشكل خطرًا اعتمادًا على التطبيق والاستخدام).إذا كان تطبيقك عرضة لهجمات إدارة المفاتيح أو هجمات القنوات الجانبية، فلا يهم حقًا عدد مستويات التشفير التي تطبقها.هذا هو المكان الذي سأركز فيه جهودك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top