PDA

View Full Version : ساخت قفل تلفنی با RSA



saied7468
دوشنبه 02 دی 1387, 14:35 عصر
با سلام
من می خوام برای برنامه ای که نوشتم با استفاده از RSA یه قفل تلفنی درست کنم برای پیاده سازی RSA هم از کامپونت Turbopower Lockbox استفاده کردم مشکلم اینه که نمی دونم چطوری باید از دو کلید عمومی و خصوصی برای ساخت کد فعال سازی استفاده کنم آخه هر کلید به دو بخش Exponent و Modulus تقسیم شده ؟

vcldeveloper
دوشنبه 02 دی 1387, 16:38 عصر
نیاز نیست درگیر ساختار داخلی کلیدهای RSA بشید. با استفاده از GenerateKeyPair زوج کلید خودتان را ایجاد کنید، و با استفاده ازتوابع Encryption مثل EncryptStream, یا EncryptString داده خود را رمز کنید. با استفاده از توابع Decryption هم می تونید داده رمز شده را رمزگشایی کنید. البته کلید تولید شده را حتما جایی ذخیره کنید، چون برای رمزنگاری و رمزگشایی به این کلیدها نیاز دارید. بهتر هست برای آشنایی با مبانی رمزنگاری، Manual همراه LockBox که بصورت یک فایل PDF هست، را حتما مطالعه کنید.

matinebi
دوشنبه 02 دی 1387, 16:57 عصر
لطفا pdf را قرار دهید

saied7468
دوشنبه 02 دی 1387, 18:08 عصر
اینم پی دی اف برای شما

Http://mihanspace.ir/Files/1387/10/2/2135/Manual.rar

saied7468
دوشنبه 02 دی 1387, 18:46 عصر
ممنون از توضیحاتتون اما شاید سوالم رو درست مطرح نکردم سوالم این بود که وقتی کد سخت افزاری کاربر رو گرفتم چطوری برای کاربر با RSA کد فعال ساز تولید کنم چون تو سایت خوندم اگه از این روش استفاده کنم تا 99 درصد امنیت قفل سریالی تامین می شه یه سوال دیگه من در نرم افزار که می خوام بفرو شم باید کلید ها تولید شده با RSA رو ذخیره کنم اگه آره خوب وقتی بصورت متن کلید ها رو ذخیره کنم را حت کلید هام لو میره .

ممنون میشم اگه جواب بدین.

vcldeveloper
دوشنبه 02 دی 1387, 21:20 عصر
RSA یک الگوریتم رمزنگاری داده هست. به خودی خود امنیت قفل نرم افزار شما را تامین نمیکنه! شما می تونید در فرایند چک کردن قفل نرم افزارتان از آن استفاده کنید، مثلا یکی از کاربردهای آن در امضاء دیجیتال هست. شما ممکن هست بخواید به کاربرتان لایسنس بدید، و این لایسنس را خودتان امضاء دیجیتالی کنید، و نرم افزار شما هم امضاء را چک کند که حتما از طرف شما صادر شده باشد.


یه سوال دیگه من در نرم افزار که می خوام بفرو شم باید کلید ها تولید شده با RSA رو ذخیره کنم اگه آره خوب وقتی بصورت متن کلید ها رو ذخیره کنم را حت کلید هام لو میره .لازم نیست زوج کلید (کلید خصوصی به همراه کلید عمومی) را منتشر کنید، بلکه فقط انتشار کلید عمومی شما کفایت می کند. کلید خصوصی پیش خودتان باقی می ماند. کسی که کلید عمومی را داشته باشد، می تواند پیام هایی که با کلید خصوصی شما رمز شده اند را رمزگشایی کند، ولی نمی تواند از طرف شما با آن پیام رمز شده بفرستد، چون برای این کار نیاز به کلید خصوصی هست. از طرف دیگه، اگر آن فرد (یا نرم افزار یا هر چیز دیگه) بخواد برای شما پیامی بفرسته که باید فقط توسط شما رمزگشایی بشه، میتونه از کلید عمومی شما استفاده کنه. پس اگر فردی کلید عمومی شما را داشته باشه:
1- می تونه صحت پیام هایی که از شما ارسال میشه را بررسی کنه؛ یعنی مطمئن بشه که پیام از طرف شما اومده و کسی آن را جعل نکرده.
2- میتونه پیام هایی برای شما بفرسته که فقط توسط شما رمزگشایی میشند، پس میتونه مطمئن باشه که فرد دیگری به آن پیام نمی تونه دسترسی داشته باشه.
3- نمی تونه از طرف شما پیامی جعل کنه، چون عملا نمیتونه از روی کلید عمومی شما به کلید خصوصی شما برسه.

حالا اگر نرم افزار شما خودش در هنگام نصب روی سیستم کاربر برای خودش یک زوج کلید تولید کنه، و کلید عمومی مربوطه را برای شما ارسال کنه، و از کلید خصوصی خودش هم به خوبی محافظت کنه، شما می تونید مطمئن باشید که پیام هایی که دریافت می کنید، واقعا از طرف برنامه شما، و سیستم آن کاربر هست. از طرف دیگه، اگر در هنگام تحویل نرم افزار کلید عمومی خودتان را هم در آن تعبیه کرده باشید، می تونید پیام های خود به آن نرم افزار را با کلید خصوصی خودتان رمز کنید، و مطمئن باشید که فرد دیگری نمی تواند از طرف شما پیام جعلی بفرستد.
در اون صورت کرکر از روش های دیگه ایی برای دور زدن نرم افزار شما استفاده خواهد کرد، چون تجزیه Modulus کلید عمومی شما به عامل های اول آن، برای رسیدن به کلید خصوصی، با سیستم های امروزی، در صورتی که طول کلید ها مناسب باشد، به چند صد سال زمان نیاز دارد!
روش هایی که ممکن هست کرکر استفاده کنه، می تونند شامل موارد مختلفی باشند، مثل غیرفعال کردن بررسی قفل در نرم افزار، یا تغییر دادن کلید عمومی شما که به همراه نرم افزار هست، با کلید عمومی کرکر، تا بتواند پیام های خودش را بجای پیام های شما به نرم افزار بفرستد، و...

باید درباره مبانی رمز نگاری بیشتر مطالعه کنید. برای RSA بطور خاص بیشتر روی Asynchronous Cryptographic Algorithms تحقیق کنید. البته این نکته را هم در نظر داشته باشید که رمزنگاری به خودی خود یک قفل نرم افزاری غیرقابل شکستن نخواهد کرد، بلکه ابزاری هست برای افزایش ضریب امنیت قفل نرم افزار.

okhdar
جمعه 04 بهمن 1387, 13:10 عصر
كاش يك نفر آموزش كار اين نرم افزار را قرار ميداد.