Android SharedPreferences সুরক্ষা


118

আমি ভাগ করা পছন্দ সুরক্ষা সম্পর্কে অবাক।

ভাগ করা পছন্দগুলিতে অ্যাক্সেস পাওয়া কি এগুলি সম্ভব, এমনকি সেগুলি এমওডিডিপিআরআইভি (0) এ তৈরি করা হলেও?
উপলভ্য সমস্ত অংশীদারিগুলি তালিকাভুক্ত করা এবং তারপরে অন্যান্য অ্যাপ্লিকেশন থেকে সমস্ত সেটিংস আনা সম্ভব?
অংশীদারি পছন্দগুলি সংবেদনশীল ডেটা যেমন পাসওয়ার্ড বা প্রমাণীকরণ টোকেন রাখার জন্য ভাল জায়গা?

ধন্যবাদ



সুন্দর উত্তর সহ এক নজরে মূল্যবান। ভাগ করা পছন্দগুলি বিকাশকারীদের প্রোগ্রামিং শৈলী সম্পর্কে অনেক কিছু বলে।
বিশ্ব রত্ন

উত্তর:


232

ভাগ করা পছন্দগুলি ডিভাইসের ফাইল সিস্টেমে ফাইল হিসাবে সংরক্ষণ করা হয়। এগুলি, ডিফল্টরূপে, অ্যাপ্লিকেশনটির ডেটা ডিরেক্টরিতে ফাইল সিস্টেমের অনুমতিগুলির সাথে সঞ্চিত থাকে যা কেবলমাত্র ইউআইডির অনুমতি দেয় যা নির্দিষ্ট অ্যাপ্লিকেশনটি তাদের অ্যাক্সেসের সাথে চালিত হয়। সুতরাং, তারা লিনাক্স ফাইলের অনুমতিগুলি যেমন তাদের অ্যাক্সেসকে সীমাবদ্ধ করে, তেমন কোনও ব্যক্তিগত, যেমন কোনও লিনাক্স / ইউনিক্স সিস্টেমের মতো।

ডিভাইসে রুট স্তরের অ্যাক্সেস সহ যে কোনও ব্যক্তি সেগুলি দেখতে সক্ষম হবে, কারণ ফাইল সিস্টেমের সমস্ত কিছুতে রুটের অ্যাক্সেস রয়েছে। এছাড়াও, অ্যাপ্লিকেশন তৈরির মতো একই ইউআইডি দিয়ে চালিত যে কোনও অ্যাপ্লিকেশন সেগুলিতে অ্যাক্সেস করতে সক্ষম হবে (এটি সাধারণত করা হয় না এবং একই ইউআইডি দিয়ে দুটি অ্যাপ্লিকেশন চালানোর জন্য আপনাকে সুনির্দিষ্ট ব্যবস্থা গ্রহণ করা প্রয়োজন, সুতরাং এটি সম্ভবত কোনও বড় বিষয় নয় উদ্বেগ)। অবশেষে, যদি কেউ ইনস্টলড অ্যান্ড্রয়েড ওএস ব্যবহার না করেই আপনার ডিভাইসের ফাইল সিস্টেম মাউন্ট করতে সক্ষম হয় তবে তারা অ্যাক্সেসকে সীমাবদ্ধ করে এমন অনুমতিগুলিও বাইপাস করতে পারে।

আপনি যদি নিজের পছন্দগুলিতে (বা আপনার অ্যাপ্লিকেশন দ্বারা লিখিত কোনও ডেটা) অ্যাক্সেস সম্পর্কে উদ্বিগ্ন হন তবে আপনি এটি এনক্রিপ্ট করতে চাইবেন। আপনি যদি তাদের সম্পর্কে উদ্বিগ্ন হন তবে আপনার যে ঝুঁকিটি দেখা যায় তার জন্য ঠিক কতটা সুরক্ষা প্রয়োজন তা নির্ধারণ করার দরকার পড়ে। সদ্য ডিসেম্বর ২০১১ এ প্রকাশিত অ্যান্ড্রয়েড প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশন সুরক্ষার জন্য এটি সম্পর্কে একটি বিস্তৃত আলোচনা রয়েছে (দাবি অস্বীকার: আমি এই বইয়ের লেখক)।


2
এই নিয়ে কথা বলে এমন কোনও অফিসিয়াল ডকুমেন্টেশন আছে কি? যদি আপনার কোন রেফারেন্স আছে?
ক্লু

26

SharedPreferences আপনার ফোন / ডেটা / ডেটা / ফোল্ডারে এক্সএমএল ফাইল ব্যতীত আর কিছুই নয়, সুতরাং কোনও রুট ডিভাইসে অতিরিক্ত ব্যবহারকারীর ব্যক্তিগতকৃত অ্যাপ্লিকেশন বা ব্যবহারকারী আপনার SharedPreferences অ্যাক্সেস করতে পারে, যদিও সেগুলি MODE_PRIV দিয়ে তৈরি করা হয়েছিল if

তবুও এটিকে সবার থেকে রক্ষা করার একটি উপায় আছে ... দয়া করে এই লিঙ্কটি চেকআউট করুন। এখানে আপনি প্রিমে এনক্রিপশন সহ ডেটা সঞ্চয় করতে পারেন, বর্গটি স্ব-বর্ণনামূলক এবং খুব সহজেই ব্যবহারযোগ্য।

https://github.com/sveinungkb/encrypted-userprefs

যেমনটি অন্যের দ্বারা বলা হয়েছে যে কেউ এটি অ্যাক্সেস করতে পারে তবে এই ক্ষেত্রে এনক্রিপ্ট করা হওয়ার কারণে কেউ এর অভ্যন্তরে ডেটা পড়তে পারে না। সুতরাং এটি সুরক্ষিত Ut সর্বাধিক সুরক্ষার জন্য আমার পরামর্শটি হ'ল হার্ড কোডিংয়ের পরিবর্তে রান করার সময় এনক্রিপশনের জন্য ব্যবহৃত কী তৈরি করা হবে। এটি করার অনেক উপায় আছে :)


8
তাহলে আপনি কীভাবে উত্পন্ন চাবিটি সংরক্ষণ করবেন?
ওলেইঙ্কা

3
@ ওলাইঙ্কা এটি অন্য একটি কী দিয়ে এনক্রিপ্ট করা এবং এটি একটিতে সংরক্ষণ করা নিরাপদ SharedPref। কিন্তু তারপরে, অন্য কী দিয়ে কী করব? গুরুতরভাবে যদিও, সেরা দৃশ্যে এনক্রিপ্ট করা কী এবং একটি ডিভাইস ইউআইডি কোনও সার্ভারে এসএসএল ব্যবহার করে সেখানে সংরক্ষণ করা হবে এবং প্রয়োজনীয় হিসাবে পুনরুদ্ধার করা হবে। এর জন্য সংযোগ প্রয়োজন, তবে আপনাকে কোনও ডিভাইসকে ব্ল্যাকলিস্ট করতে দেয় এবং হঠাৎ করে সমস্ত ডেটা ট্র্যাশ হয়ে যায়। ধ্রুব ইন্টারনেট সংযোগ ব্যতীত, ডেটা এনক্রিপ্ট করার যে কোনও চেষ্টা 100% নিরাপদ নয়।
পাওলো অ্যাভেলার

আমি উপরের সমাধানটি ব্যবহার করেছি ... এটি 10 ​​বারের মধ্যে 9 টি কার্যকর ... তবে আমি ত্রুটি পাচ্ছি: 1e06b065: সাইফার ফাংশন: EVP_DecryptFinal_ex: BAD_DECRYPT "সময়ে..কোন কারও ধারণা আছে?
রাজ ত্রিবেদী

3
@ পাওলোআভেলার দীর্ঘমেয়াদী স্টোরেজ এবং ক্রিপ্টোগ্রাফিক কীগুলি পুনরুদ্ধারের জন্য অ্যান্ড্রয়েড কীস্টোর ব্যবহার করুন। কীগুলি কোনও অ্যাপ্লিকেশনের মধ্যে সংরক্ষণ করা হয় না, তাই তাদের সাথে আপস করা যায় না। প্রদত্ত গ্রন্থাগার এটি ব্যবহার করে না। এটি কোডের গোপনীয়তা সংরক্ষণ করে এটি নিরাপদ নয়।
এপেক্স 39

13

সাধারণত, না, তারা অন্যান্য অ্যাপ্লিকেশন দ্বারা ব্যবহার করা যাবে না, যাইহোক, আপনি মনে রাখতে হবে SharedPreferences মধ্যে XML ফাইল হিসেবে সংরক্ষণ করা হয় /data/data/ডিরেক্টরি, যা মূলত মানে যে কোন অ্যাপ্লিকেশন সুপার-ইউজার বিশেষাধিকার একটি উপর মূলী ডিভাইস পারেন আপনার অ্যাক্সেস SharedPreferenceগুলি, এমনকি যদি তারা সঙ্গে তৈরিMODE_PRIV


3

ভাগ করা পছন্দগুলিতে অ্যাক্সেস পাওয়া কি এগুলি সম্ভব, এমনকি সেগুলি এমওডিডিপিআরআইভি (0) এ তৈরি করা হলেও?

কোড নং দ্বারা তবে আপনি যদি ব্যবহারকারীর সুবিধাপ্রাপ্ত হন তবে আপনি অ্যাপ্লিকেশন ফাইলটি পুনরুদ্ধার করতে পারেন।

উপলভ্য সমস্ত অংশীদারিগুলি তালিকাভুক্ত করা এবং তারপরে অন্যান্য অ্যাপ্লিকেশন থেকে সমস্ত সেটিংস আনা সম্ভব?

আপনি যদি সুপার ব্যবহারকারী (মূলযুক্ত ডিভাইস) হন তবে আপনি অ্যাপের সমস্ত ব্যক্তিগত ফাইল টানতে পারেন।

অংশীদারি পছন্দগুলি সংবেদনশীল ডেটা যেমন পাসওয়ার্ড বা প্রমাণীকরণ টোকেন রাখার জন্য ভাল জায়গা?

এটি সহজে হ্যাক করা যেতে পারে। আপনি যদি ভাগ করা প্রিফ্রেন্স ফাইলে কোনও সংবেদনশীল ডেটা রাখতে চান তবে আপনি ডেটা এবং স্টোর এনক্রিপ্ট করতে পারেন। আপনি আপনার এনক্রিপশন কীটি এনডিকে / সার্ভারে সঞ্চয় করতে পারেন।


কীভাবে সহজে হ্যাক করা যায়?
জন সারদিনহা

হ্যাঁ প্রশ্ন জোড় @ জো
কুওং ভো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.