سؤال

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

يمكنني تغيير البروتوكول على أي حال ، منذ لدي مستوى منخفض الوصول وصولا إلى سلسلة من وحدات البايت المرسلة / المستلمة.

تحرير: أنا مهتم في البرمجة جزءا لا يتجزأ بسيطة على السلك تشفير بروتوكول الأمن.

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

المحلول

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

نصائح أخرى

أبسط حل حتى الآن هو مجرد استخدام SSL المقبس العادي بدلا من واحد ، a la HTTPS/FTPS النمط.

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

لا تنفيذ التشفير الأساسية في معنى تصميمها من الألف إلى الياء.فمن الصعب جدا أن تنفذ بشكل صحيح التشفير بشكل صحيح.

بدلا من التركيز على استخدام التشفير متوفرة على منصة...ما هو النظام الأساسي الخاص بك ؟

تحرير:

ترى هذا بعد ذلك للحصول على قائمة التشفير البدائل التي ينبغي أن تعمل بشكل جيد جدا في جزءا لا يتجزأ من البيئة (على سبيل المثال CryptoPP و TomCrypt).

أوث قد تكون مثيرة للاهتمام بالنسبة لك ، من أجل تمكين التحكم في الوصول بين مختلف واجهات برمجة التطبيقات.

إذا كنت بحتة تريد قناة مشفرة من البيانات ، فمن الأفضل أن مجرد طبقة ontop من البروتوكول ؛ الذهاب عبر SSL أو SSH.

إذا كنت تفعل البرمجة جزءا لا يتجزأ ثم أين هو التشفير ؟

طالما كنت البقاء على نفس المعالج ، على سبيل المثال ، التشفير لا طائل منه.

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

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

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

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

هناك العديد من الأشياء التي ينبغي النظر فيها في تصميم نظام آمن.على سبيل المثال لا الحصر:

  • اختيار متماثل/التشفير غير المتماثل مخططات
  • خوارزمية التشفير (AES, Blowfish, DES)
  • اختيار البروتوكولات المعروفة (على سبيل المثالSSL)
  • الإدارة الرئيسية و التوزيع
    • واحد من المفتاح الرئيسي (إذا اخترق النظام بأكمله للخطر)
    • الرئيسية في الجهاز (التوزيع الرئيسية يمكن أن تكون أكثر صعوبة)
    • حماية مفتاح قنوات التوزيع
  • سوف المحتمل هاكر يكون من السهل الوصول إلى عينة جهاز(ق) ؟ E. g.المنتجات الاستهلاكية مثل X-مربع مقابل صندوق مغلق في مقسم الهاتف.من الصعب حماية ضد القرصنة إن القراصنة لديه الوصول الفعلي.
  • العوامل البشرية—الهندسة الاجتماعية وما إلى ذلك.
  • النظام هو فقط آمن أضعف حلقاتها.

أقترح عليك قراءة بروس شنير هو المواد بالنسبة للمبتدئين.

أوث هو بالتأكيد النظر.بالإضافة إلى ذلك, قد ترغب في النظر في WS-الأمن.عن طريق بث عبر خدمة ويب ، يمكنك الحفاظ على كل منصة اللغة الملحد ، إضافة WS-الأمن يعني أن التشفير و فك التشفير على طبقة التطبيق (end-to-end).طالما كنت على ثقة من أن الرسائل هي آمنة بمجرد ترك المرسل تعرف أنها سوف البقاء آمنة حتى العميل في الواقع يتلقى الرسالة (هذا يعني أنه لن يتم فك تشفيرها من قبل الملقم ومن ثم تمريرها إلى العميل/المتلقي ، ولكن بعد تلقي التطبيق الرسالة).

وذلك أساسا كنت أوث تأمين/مصادقة التطبيقات المختلفة ، WS-الأمن لتأمين الرسائل بينهم.

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