Fa امنیت ذخیره پسورد در فایل تکست Embedded شده

rashooda

New Member
دوستان سلام
این اولین ارسال منه
ممکنه جواب سوالم قبلا داده شده باشه اما من ک چیزی پیدا نکردم.

من توی پروژه ام برای ورود دو یوزر با سطح دسترسی های متفاوت در نرم افزار، دو رمز ورود تعریف کرده ام و این رمزها رو در فایل متنی Embedded شده ذخیره کرده ام که البته در خود نرم افزار و از قسمت تغییر پسورد، برای هر یوزر به صورت جداگانه قابل تغییر هستن.

حالا سوال من اینه که آیا این روش از امنیت کافی برخوردار هست؟
آیا مثلا در هنگام اجرای برنامه، کسی می تونه از مسیر tmp (یا هر جای دیگه ای) به این فایل txt دسترسی داشته باشه؟
 

rashooda

New Member
و اگه این روش امنیت کافی نداره (بخاطر در دسترس بودن فابل ها)، آیا می تونم ی الگوریتم اختصاصی برای Encode کردن و سپس ذخیره کردن پسورد انتخابی کاربر بنویسم؟ (مثلا تبدیل تک تک کاراکترها به کد اسکی و جابجا کردنشون و شاید اضافه کردن تعدادی کاراکتر Random در نقاطی مشخص)
 

RedZed

New Member
سلام
این روش معلومه که امنیت نداره چون حتی بار ها پیش آمده MMB یادش میره پس از بسته شدن برنامه فایل های داخل پوشه MMBuilder که در پوشه Temp ویندوز میسازه رو پاک کنه!
حتی اگه پاک هم کنه چون MMB این فایل ها رو حین اجرای برنامه Lock نمیکنه کاربر موقع اجرای برنامه هم می تونه اون فایل txt مورد نظر شما رو باز کنه و رمز رو بفهمه.

الگوریتم Encode هم نیاز نیست چون اصلاً ذخیره رمز عبور ها در یه فایل جدا منطقی نیست به نظر من یوزر و رمز ها رو در خود بخش اسکریپت شروع نرم افزار به صورت چند تا متغیر یا یه متغیر آرایه (Array) تو خود نرم افزار ذخیره کنید خیلی بهتره.بعد همیشه موقع Build دقت کنید تیک Secure Layer رو زده باشید چون بدون لایه امنیتی خیلی راحت میشه پروژه شما رو از فایل EXE که MMB ساخته در آورد.
 

rashooda

New Member
سلام
این روش معلومه که امنیت نداره چون حتی بار ها پیش آمده MMB یادش میره پس از بسته شدن برنامه فایل های داخل پوشه MMBuilder که در پوشه Temp ویندوز میسازه رو پاک کنه!
حتی اگه پاک هم کنه چون MMB این فایل ها رو حین اجرای برنامه Lock نمیکنه کاربر موقع اجرای برنامه هم می تونه اون فایل txt مورد نظر شما رو باز کنه و رمز رو بفهمه.

الگوریتم Encode هم نیاز نیست چون اصلاً ذخیره رمز عبور ها در یه فایل جدا منطقی نیست به نظر من یوزر و رمز ها رو در خود بخش اسکریپت شروع نرم افزار به صورت چند تا متغیر یا یه متغیر آرایه (Array) تو خود نرم افزار ذخیره کنید خیلی بهتره.بعد همیشه موقع Build دقت کنید تیک Secure Layer رو زده باشید چون بدون لایه امنیتی خیلی راحت میشه پروژه شما رو از فایل EXE که MMB ساخته در آورد.

1- Secure Layer رو اصلا نمی دونستم و ممنون که این نکته رو گوشزد کردید. اما چطور میشه فایل exe رو به mbd تبدیل کرد؟؟
2- روشی که گفتید برای پسورد ثابت جواب میده. اما زمانی که کاربر داره با فایل exe پروژه کار میکنه، مگه میشه پسوردی که تغییر میده رو توی یک متغیر ذخیره کرد و بعد از بسته شدن و باز شدن مجدد فایل exe پروژه فراخونیش کرد؟! (جمله هه ی مقدار پیچیده شد، امیدوارم متوجه بشید :) )
 

RedZed

New Member
1- Secure Layer رو اصلا نمی دونستم و ممنون که این نکته رو گوشزد کردید. اما چطور میشه فایل exe رو به mbd تبدیل کرد؟؟
2- روشی که گفتید برای پسورد ثابت جواب میده. اما زمانی که کاربر داره با فایل exe پروژه کار میکنه، مگه میشه پسوردی که تغییر میده رو توی یک متغیر ذخیره کرد و بعد از بسته شدن و باز شدن مجدد فایل exe پروژه فراخونیش کرد؟! (جمله هه ی مقدار پیچیده شد، امیدوارم متوجه بشید :) )

برای پاسخ سوال یک یه سری Decompiler هایی هستن که می تونن پروژه رو از فایل EXE در بیارن فقط اکثرشون با Secure Layer مشکل دارن ولی یادمه خیلی وقت پیش یکی پیدا کرده بودم که حتی Secure Layer هم دور میزد!
سوال دوم هم من فکر میکردم هدفتون مثل این Setup ها که یه سری سریال پیش فرض رو برای اجازه نصب میگیرن هست که گفتم اما اگه هدفتون رمز قابل تغییر هست آره اون موقع رمز باید یه جایی ذخیره بشه و باید رمزگذاری هم بشه تو این تاپیک New MMBforums • View topic - A very simple Text Encryption sample using just MMB code. یه روش رمزگذاری 2 طرفه ساده به صورت پروژه MDB گذاشته شده ولی به نظر من رمزگذاری 1 طرفه مثل MD5 انجام بدید خیلی بهتره و موقع لاگین کاربر دوباره MD5 اونوی که زده رو با MD5 قبلی که سیو شده مقایسه کنید.ظاهراً خود MMB ویژگی MD5 نداره ولی تو این تاپیک New MMBforums • View topic - MMB Plugin Downloader v1.1 گفته ظاهراً پلاگینی با نام MD5 Hash براش وجود داره ولی من با این پلاگین تا حالا کار نکردم.
 

rashooda

New Member
برای پاسخ سوال یک یه سری Decompiler هایی هستن که می تونن پروژه رو از فایل EXE در بیارن فقط اکثرشون با Secure Layer مشکل دارن ولی یادمه خیلی وقت پیش یکی پیدا کرده بودم که حتی Secure Layer هم دور میزد!
سوال دوم هم من فکر میکردم هدفتون مثل این Setup ها که یه سری سریال پیش فرض رو برای اجازه نصب میگیرن هست که گفتم اما اگه هدفتون رمز قابل تغییر هست آره اون موقع رمز باید یه جایی ذخیره بشه و باید رمزگذاری هم بشه تو این تاپیک New MMBforums • View topic - A very simple Text Encryption sample using just MMB code. یه روش رمزگذاری 2 طرفه ساده به صورت پروژه MDB گذاشته شده ولی به نظر من رمزگذاری 1 طرفه مثل MD5 انجام بدید خیلی بهتره و موقع لاگین کاربر دوباره MD5 اونوی که زده رو با MD5 قبلی که سیو شده مقایسه کنید.ظاهراً خود MMB ویژگی MD5 نداره ولی تو این تاپیک New MMBforums • View topic - MMB Plugin Downloader v1.1 گفته ظاهراً پلاگینی با نام MD5 Hash براش وجود داره ولی من با این پلاگین تا حالا کار نکردم.
تاپیک رمزگذاری دو طرفه که معرفی کرده بودید رو مطالعه و برنامه اش رو هم بررسی کردم.
اما یه ابهام کوچیک برام وجود داره که امیدوارم کمکم کنید.
روش encoding اون برنامه به این صورته که کاراکترها رو تک تک جدا میکنه، تبدیل به کد اسکی میکنه، با شماره جایگاه کاراکتر و با اون Encryption Key جمعش می کنه و عدد حاصل رو به عنوان کد اسکی در نظر می گیره و کاراکتر متناظر این کد اسکی جدید رو به عنوان کاراکتر کد شده به ما نشون میده.

حالا سوال من اینجاس که بهرحال ما در کامپیوتر یه تعداد کاراکتر محدود داریم و در واقع کل کدهای اسکی سیستم قطعا بین یک بازه خاص هستن و طبیعتا اگر عددی بزرگتر از اون بازه به عنوان کد اسکی در نظر گرفته بشه، نتیجتاً هیچ کاراکتر متناظری براش وجود نداره!
اجازه بدید برای روشن تر شدن موضوع یه مثال بزنم.
فرض کنید بزرگترین کد اسکی موجود در سیستم های کامپیوتری عدد 500 باشه و معادل کاراکتری این عدد هم کاراکتر k باشه. حالا اگه ما تو رشته ای که می خواهیم اونو رمز کنیم، کاراکتر k وجود داشته باشه، بر طبق الگوریتم encoding این برنامه، ابتدا کاراکتر k تبدیل به کد اسکی معادلش میشه که خب پونصده، و با اون دو تا عدد جمع میشه و مثلا نتیجه میشه 520 که با توجه به قرارداد ما(بزرگترین کد اسکی 500 باشه) طبیعتاً سیستم هیچ هیچ کاراکتری واسه این کد اسکی نداره که تو رشته کد شده قرار بده و این الگوریتم در این گونه موارد خاص درست کار نخواهد کرد!
 

جدیدترین ارسال ها

بالا