نقل قول نوشته شده توسط daryooosh مشاهده تاپیک
ممنون
یک سرچی کردم,غیر از ویکی پدیا منبع فارسی دیگه ای پیدا نکردم,ولی از همون معلوم بود که تقریبا این همون چیزیه که بهش نیاز دارم.آیا شما منبع فارسی براش داری ؟
نقل قول نوشته شده توسط daryooosh مشاهده تاپیک
مشکل روش خودم اینه که در حالت * سرور به کلاینت یک دستور میدهد و کلید جدید را همراه آن ارسال میکند,کلاینت کلید جدید را ذخیره کرده و پاسخ دستور را به سرور باز میگرداند,حالا به هر دلیلی ممکن است که پاسخ به سرور نرسد,سرور چون پاسخ را دریافت نکرده فکر میکند که کلاینت هم دستور را دریافت نکرده است بنابر این از کلید جدید که در دستور بود صرف نظر میکند.حالا اگه دوباره سرور بخاد دستوری را ارسال کنه ,با کلید قبلی آن را رمزنگاری میکند,ولی در کلاینت با کلید جدید دیکد میشود,از این جا به بعد سیستم قطع میشود.
خب حالا دیگه باید یه راه حل استاندارد برای این مساله پیدا کنیم...

راه حل استاندارد استفاده از روشهای اصالت سنجی و اعتبارسنجی است
و آسون ترین راه استفاده از یک سیستم "هش" در کلاینت است که بتونه تشخیص بده آیا پیام از سمت سرور اومده یا از طرف کسی دیگه

به این شکل که هر دفعه که پیامی از جایی به کلاینت میرسه کلاینت بلافاصله باید یک عبارت رندم رو به سرور فرستنده بفرسته و جواب سرور رو بشنوه
اگر جواب سرور با هش همان عبارت در کلاینت برابر بود پس سرور قابل اعتماد است

عملیات هش باید بیش از یک بار به همراه salt انجام شود
عبارت ارسالی میتونه شامل time هم باشه که بهتر هست

بقیه موارد هم که قبلا ذکر شد


(میتونید کتاب رمزنگاری و رمزگشایی نوشته بیکر دوریس ترجمه کیوان سالمی رو مطالعه کنید)