حماية كلمات مرور المستخدم في تطبيقات سطح المكتب (Rev 2)

StackOverflow https://stackoverflow.com/questions/225838

  •  03-07-2019
  •  | 
  •  

سؤال

أنا صنع عميل تويتر و أنا تقييم طرق مختلفة لحماية المستخدم معلومات تسجيل الدخول.

المهم:أنا بحاجة إلى حماية بيانات المستخدم من غيرها من التطبيقات الأخرى.على سبيل المثال تخيل ماذا يحدث إذا بوت يبدأ حول سرقة Twhirl كلمات السر أو Hotmail/GMail/Yahoo/بال من التطبيقات التي تعمل على سطح مكتب المستخدم.

التوضيح:طلبت هذا من قبل دون 'مهمة' جزء ولكن ستاكوفيرفلوو UI لا يساعد مع إضافة تفاصيل في وقت لاحق داخل Q/محادثة.

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

أي أفكار ؟

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

المحلول

هذا هو الصيد 22.إما أن تجعل المستخدم يكتب كلمة المرور الخاصة به في كل مرة، أو تقوم بتخزينها بشكل غير آمن (مبهمة، مشفرة، أيًا كان).

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

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

نصائح أخرى

أعتقد أنك تفتقد الصورة الأكبر هنا:

إذا تم اختراق سطح المكتب، فأنت F#*%ED!

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

قم بتخزينه بنص عادي و دع المستخدم يعرف.

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

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

يمكن أن أتحدث عن مؤخرتي هنا بالطبع.هل هناك دراسة توضح أن تخزين كلمات المرور بنص عادي يؤدي إلى أمان أسوأ من تخزينها بشكل غامض؟

إذا كنت ترغب بجعل عميل تويتر ثم استخدام API

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

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

لم بتخزين كلمات المرور إذا كان يمكنك الحصول بعيدا مع ذلك

باستخدام أوث أسوأ ما يمكن أن يحدث هو 3rd الطرف (القبعة السوداء هاكر) يحصل الوصول إلى أن حساب تويتر ولكن ليس كلمة المرور.وهذا حماية المستخدمين التي بسذاجة استخدام نفس كلمة المرور لعدة الخدمات على الخط.

استخدام المفاتيح من نوع ما

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

غيرها من الأضرار القيود

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

تحرير (ردا على finnw المطلوب العامة في حالة الحل)

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

أنا لم تستخدم OSX المفاتيح حتى الآن سأتحدث عن SELinux.في سيلينو يمكنك أيضا التأكد من هذه مصادقة بيانات الاعتماد فقط بالنظر إلى البرنامج الخاص بك.وإذا أردنا الاستمرار في الذهاب على مستوى نظام التشغيل الأشياء ، يمكن أيضا تسجيل جميع العمليات من التمهيد إلى cryptographicly تكون على يقين من أي برنامج آخر يمكن أن يكون محاكاة البرنامج الخاص بك.هذا هو كل شيء خارج المستخدم العادي نظام وبالنظر إلى هذا المستوى من الإعداد يمكنك أن تطمئن المستخدم ليس ساذجا بما يكفي لتكون للخطر ، أو مسؤول النظام هو compitant بما فيه الكفاية.في هذا المستوى يمكننا حماية بيانات الاعتماد هذه.

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

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

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

بعد مزيد من التأمل أعتقد أنني وجدت طريقة.سأستخدم مصادقة ASP.net لتطبيق سطح المكتب الخاص بي، وأخزن بيانات الاعتماد الخاصة بهم عبر الإنترنت وأسمح لمدير كلمات مرور Internet Explorer بالتعامل مع التخزين المؤقت المحلي لهذا الزوج الثانوي أو بيانات الاعتماد الثانوية نيابةً عني.

سيتعين علي فقط أن أطلب منهم المصادقة من خلال نموذج Facebook-API like أثناء تسجيل الدخول الأول.

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

أو إس إكس:استخدم سلسلة المفاتيح

شبابيك:استخدم CryptProtectData وCryptUnprotectData

لينكس:استخدم GNOME Keyring وKDE KWallet

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