[php] اقتراحات ل (شبه) تأمين درجات عالية في فلاش / لعبة فب



Answers

الجواب على سؤالك هو، فإنه يعتمد. ذلك يعتمد أساسا من شعبية المقدرة من اللعبة.

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

الحل الأفضل هو الحل الذي قدمهKent فريدريك. ومع ذلك كما تقول أنها لا تحل مشكلة شخص خلق عميل وهمية. قد يكون الحل لذلك شيئا من هذا القبيل:

  1. إعطاء كل عمل لاعب يمكن أن تؤدي معرف.
  2. تخزين كل عمل لاعب ينفذ في قائمة من إدس.
  3. عندما تكون اللعبة قد انتهت تجزئة النتيجة، وقائمة الإجراءات وتشفيره مع المفتاح العمومي وردت من الخادم. (انظر مشاركة كينت فريدريك للحصول على تفاصيل حول هذا)
  4. إرسال التجزئة المشفرة (أكثر شيوعا يسمى التوقيع الرقمي) إلى الخادم جنبا إلى جنب مع النتيجة وقائمة الإجراءات التي تم تنفيذها.
  5. السماح للخادم "تلعب" لعبة وفقا للإجراءات في القائمة.
  6. تحقق من تحقيق نفس النتيجة.
  7. تحقق من صحة التوقيع الرقمي.
  8. تحديث قائمة أعلى الدرجات الخادم.

وهذا يضمن شيئين:

  1. النتيجة تأتي من العميل الصحيح.
  2. النتيجة صحيحة فيما يتعلق اللعبة لعبت.

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

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

وأخيرا كان لي فقط للتعليق على اختيارك من خوارزمية التجزئة: MD5 هو خوارزمية التجزئة كبيرة لأولئك الذين لا يزالون يعيشون في التسعينات. بالنسبة لبقية منا أوصي شا-2 أو على الأقل شا-1.

Question

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

جانب العميل - 1. يتم تخزين مفتاح داخل فلاش سوف التي يتم تشفيرها باستخدام أداة 3rd الطرف. 2. يتم تحجيم درجة عالية جنبا إلى جنب مع قيمة عالية درجة (إكس: md5 ('أورسكريتكي' + 200)) 3. يتم إرسال هذه القيمة عبر أمف إلى النصي فب على الخادم، جنبا إلى جنب مع درجة عالية (200)

جانب الخادم - 1. يتلقى الخادم البيانات وتجزئات مرت درجة عالية (200) + مفتاح السري ('أورسكريتكي' المخزنة على الخادم وكذلك في فلاش) والشيكات ضد تجزئة مرت إذا كانت القيمة هو تطابق أنها تسمح درجة عالية ليتم إدخالها، وإلا فشل.

وأنا أعلم أن هذا ليس حلا مضمونا ولكن هذا سيكون مقبولا؟ أعني أن يكون هذا الأمن كافية على شكل درجة عالية لعبة بسيطة على الانترنت فلاش؟ أفكار؟

شكرا لكم مقدما!




بلوكوت وأخيرا كان لي فقط للتعليق على اختيارك من خوارزمية التجزئة: MD5 هو خوارزمية التجزئة كبيرة لأولئك الذين لا يزالون يعيشون في التسعينات. بالنسبة لبقية منا أوصي شا-2 أو على الأقل شا-1.

باه كنت أعرف أنني كان ينبغي أن أذكر شا بدلا من ذلك :)

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

شيء من هذا القبيل هو ما كنت أفكر في: سوف تشفير

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




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

  • مولد عشوائي الافتراضي، تحتاج مولد مبذر الذي يعطي دائما نفس الأرقام العشوائية للبذور معين؛
  • لا توقيت دلتا، آسف؛
  • الدوال المثلثية المخصصة (أنا لست متأكدا 100٪، سمعت مرة واحدة أنها يمكن أن تعطي نتائج مختلفة قليلا على أجهزة الكمبيوتر المختلفة).

وربما أكثر.
غير أن هذا الدفاع غير قابل للكسر. ويأخذ الوقت الكود: D.






Related