امنیت ذخیره پسورد نرم افزار در سیستم کاربر
با سلام خدمت دوستان
دوستان با یک مشکل اساسی در رابطه با ذخیره کلمه عبور در سیستم کاربر مواجه هستم.
در نرم افزارم قسمتی هست که کاربر میتونه امنیتی را در نرم افزار پیاده کنه و محدودیت هایی رو قائل بشه، مشکل اینجاست که نمیدونم پسورد را در کجا سیستم کاربر ذخیره کنم که احتمال بازیابیش به حداقل برسه(حداقل آماتورها قادر به بازیابی پسورد نباشن) ، ناگفته نمونه که پسورد را رمزنگاری می کنم اما باز مشکل ذخیره هست. در رجیستری که راحت میشه فهمید و در فایل که دیگه هیچی!!!
آیا راه حلی هست که احتمال بازیابی کلمه عبور به حداقل برسه؟
و سوال دیگم که بی ربط با موضوع نیست اینه که چه طوری سطح امنیت نرم افرار را ببرم بالا؟ به عنوان مثال کاربر نتونه با ویرایش فایل Exe دیالوگ مربوط به امنیت رو برداره و یا کلمه عبور را بشکنه.
در کل نیاز به یک سطوح امنیت بالا دارم.
راستی کتاب جامع و کامل در رابطه با امنیت نرم افزار و جلوگیری از هک شدن هم اگه معرفی کنید متشکر میشم
نقل قول: امنیت ذخیره پسورد نرم افزار در سیستم کاربر
استفاده از رشته برای مقایسه پسورد میتونه پیدا کردن پسورد رو حتی بدون دیباگ امکان پذیر کنه استفاده از آرایه ها میتونه این مشکل را تا حدودی بر طرف کنه قبل از مقایسه آرایه باید از آنتی دیباگ استفاده و کد رو VM کنید.
نقل قول: امنیت ذخیره پسورد نرم افزار در سیستم کاربر
تشکر
من تو گوگل مطلبی پیدا نکردم
جستجو من
میشه شما چندتا لینک راهنما بگذارید و بیشتر توضیح بدهید.
نقل قول: امنیت ذخیره پسورد نرم افزار در سیستم کاربر
شما رشته پسورد رو انکریپت کنید به آرایه تبدیل در رجیستری ذخیره موقع چک کردن پسورد از رجیستری بخونید با پسورد وارد شده توسط کاربر به صورت دو آرایه مقایسه کنید 1000 جور مختلف میشه اینو نوشت که بستگی به خلاقیت شما داره از آنتی دیباگ استفاده نکردید مهم نیست برای VM هم از VMProtect استفاده کنید.
نقل قول: امنیت ذخیره پسورد نرم افزار در سیستم کاربر
نقل قول:
نوشته شده توسط
Strong Bytes
شما رشته پسورد رو انکریپت کنید به آرایه تبدیل در رجیستری ذخیره موقع چک کردن پسورد از رجیستری بخونید با پسورد وارد شده توسط کاربر به صورت دو آرایه مقایسه کنید 1000 جور مختلف میشه اینو نوشت که بستگی به خلاقیت شما داره
من این کد رو نوشتم (البته بدون رمزنگاری رشته گفتم کوتاه باشه). درسته
procedure TForm1.Button1Click(Sender: TObject);
function SetPassInReg(const Pass: string): Boolean;
var
Reg: TRegistry;
EncryptString: array of string;
i, PassLen: Integer;
begin
PassLen:= Length(Pass);
SetLength(EncryptString, PassLen);
{Variable Pass Encrypt and then move to array // no this code}
{String copy to array}
for i:= 1 to PassLen do
EncryptString[i - 1]:= Copy(Pass, i, 1);
try
Reg:= TRegistry.Create;
Reg.RootKey:= HKEY_CURRENT_USER;
if (Reg.OpenKey('Software\AVF\My Program', True)) then
begin
Reg.DeleteValue('My Pass');
for i:= 0 to PassLen - 1 do
begin
{Write Array by index in Reg}
Reg.WriteString('My Pass' , Reg.ReadString('My Pass') +
EncryptString[i]);
end;
end;
finally
FreeAndNil(Reg);
end;
end;
begin
SetPassInReg('SeCuRiTy_ToKen');
end;
نقل قول:
آنتی دیباگ استفاده نکردید مهم نیست برای VM هم از VMProtect استفاده کنید.
میشه لطفا بیشتر توضیح بدهید(من با VM و VMProtect آشنا نیستم).
نقل قول: امنیت ذخیره پسورد نرم افزار در سیستم کاربر
نقل قول: امنیت ذخیره پسورد نرم افزار در سیستم کاربر
شما نوشتن و خواندن از رجیستری رو کامل کنید فایل کامپایل شده رو با پیام خصوصی بفرستید اگر مشکلی باشه خدمت شما عرض میکنم.
VM Protect را دانلود کنید راهنما و مثال زیاد داره.