View Full Version : سوال: قفل نرم افزاری در برنامه تحت شبکه
arkia
چهارشنبه 10 خرداد 1391, 04:52 صبح
سلام ، توی برنامه تحت شبکه ام که با دلفی نوشتمش میخوام امنیت برقرار کنم در حالی که تعداد کلاینت ها مشخص نیست و برام مهم نیست چند تا کلاینت میخوان به سرورش متصل بشن مهم اون سرورس است... من فقط میخوام به مشتری یک کد فعال سازی بدم که تو سرورش رجیستر بشه و تعداد کلاینتاش نامحدود باشه. از دوستان میخوام نظرشون رو بگن که چتوری پیاده سازیش کنم؟
ASKaffash
شنبه 13 خرداد 1391, 07:35 صبح
با سلام
کد فعال سازی شما وابسته به چه پارامترهای فیزیکی از سخت افزار در سمت Client است ؟
arkia
شنبه 13 خرداد 1391, 12:58 عصر
فرض کنیم سریال مادربرد
hamid-nic
شنبه 13 خرداد 1391, 15:29 عصر
سلام ، توی برنامه تحت شبکه ام که با دلفی نوشتمش میخوام امنیت برقرار کنم در حالی که تعداد کلاینت ها مشخص نیست و برام مهم نیست چند تا کلاینت میخوان به سرورش متصل بشن مهم اون سرورس است... من فقط میخوام به مشتری یک کد فعال سازی بدم که تو سرورش رجیستر بشه و تعداد کلاینتاش نامحدود باشه. از دوستان میخوام نظرشون رو بگن که چتوری پیاده سازیش کنم؟
سلام
دوست عزیز الان مشکل کجاست ؟؟
ASKaffash
سه شنبه 16 خرداد 1391, 07:35 صبح
سلام
با این اوصاف قفل نرم افزاری شبکه ای به این صورت مفید نیست چون هیچ تاثیری ندارد شما باید سریال مادربورد سرور را ملاک قرار دهید و یک Application Server طراحی کنید که بعنوان یک سرویس روی سرور نصب باشد و قفل نرم افزاری را آن سرویس چک کند حال هر کلاینتی که قرار است اجرا شود از طریق Application Server نصب شده معتبر بودن قفل نرم افزاری را در سرور دریافت میکند و درصورت صحیح بودن اجرا میگردد البته این روش را نیز برای قفلهای سخت افزاری شبکه نیز بکار می برند بعنوان مثال :
اگر از معماری دات نت استفاده می کنید این ترکیب برای شما کارگشا است :
- استفاده از ویندوز سرویس (برای تضمین اجرا)
- استفاده از DotNet Remoting یا WCF برای ارائه پاسخ به کلاینت ها
- استفاده از WMI (برای تشخیص مشخصات فیزیکی سرور)
فرض کنیم سریال مادربرد
arkia
چهارشنبه 17 خرداد 1391, 00:20 صبح
سلام
دوست عزیز الان مشکل کجاست ؟؟
اصول کار رو میخوام بدونم، یعنی روال کار بصورت اصولی با دور اندیشی های خودش که من ازشون اطلاعی ندارم. مثلا به یکی کد فعال سازی ندم با vpn یا یه چیز مشابه به همه سرویس بده!
arkia
چهارشنبه 17 خرداد 1391, 00:24 صبح
سلام
با این اوصاف قفل نرم افزاری شبکه ای به این صورت مفید نیست چون هیچ تاثیری ندارد شما باید سریال مادربورد سرور را ملاک قرار دهید و یک Application Server طراحی کنید که بعنوان یک سرویس روی سرور نصب باشد و قفل نرم افزاری را آن سرویس چک کند حال هر کلاینتی که قرار است اجرا شود از طریق Application Server نصب شده معتبر بودن قفل نرم افزاری را در سرور دریافت میکند و درصورت صحیح بودن اجرا میگردد البته این روش را نیز برای قفلهای سخت افزاری شبکه نیز بکار می برند بعنوان مثال :
اگر از معماری دات نت استفاده می کنید این ترکیب برای شما کارگشا است :
- استفاده از ویندوز سرویس (برای تضمین اجرا)
- استفاده از DotNet Remoting یا WCF برای ارائه پاسخ به کلاینت ها
- استفاده از WMI (برای تشخیص مشخصات فیزیکی سرور)
من دلفی کار میکنم...
به نظرتون چی رو باید ملاک در نظر بگیرم؟ مک آدرس؟ یا؟؟
اطلاع دارید که شرکت های بزرگ نرم افزاری تاحالا همچین کاری انجام داده اند؟ یا تاحالا همچین کاری شده ؟ (البته نرم افزاریا)
ASKaffash
چهارشنبه 17 خرداد 1391, 06:53 صبح
سلام
ترکیب بین Mac و MainBoard و سریال هارد را ملاک قرار دهید احتمال تکرار را خیلی خیلی کاهش میدهید در ضمن این روش و شبیه این روش را در کشور خودمان شرکتهای اهل فن و افراد با تجربه بکار میبرند ولی برنامه نویس با تجربه می طلبد
arkia
چهارشنبه 17 خرداد 1391, 10:22 صبح
سلام
ترکیب بین Mac و MainBoard و سریال هارد را ملاک قرار دهید احتمال تکرار را خیلی خیلی کاهش میدهید در ضمن این روش و شبیه این روش را در کشور خودمان شرکتهای اهل فن و افراد با تجربه بکار میبرند ولی برنامه نویس با تجربه می طلبد
سلام، یعنی این روش فقط در انحصار اوناس؟ یعنی یک تئوری تعریف شده نداره که طبق اون پیش بریم؟ الان ما هم بخوایم امنیت نرم افزارمون رو تامین کنیم باید با سعی و خطا انجامش بدیم تا بشیم مثلا الان اونا؟
hamid-nic
چهارشنبه 17 خرداد 1391, 14:06 عصر
دوست عزیز می توانید به گفته ی آقای کفاش مک آدرس و چند مورد از آدرس های سخت افزاری هر کلاینتی را با الگوریتم مخصوصی که خودتان پیاده می کنید ترکیب و حاصل یک رشته ی شاخص برای هر کلاینت خواهد شد سپس این رشته ها را جایی از سرور مثلا همون بانک اطلاعاتی وارد کنید . از این پس هر کلاینتی خواست اجرا شود ابتدا این رشته مخصوص به خود را به سرور بفرستد در صورت تایید از سوی سرور اجازه ی فعالیت بدهد . این روند کلی کار است که خودتون با تغییرات بهتر و بیشتر می توانید پیاده کنید با این کار از فعالیت کلاینت هایی که مجوز فعالیت ندارند جلوگیری می شه . خود برنامه سرور هم که می تواند توسط روش های مختلفی که وجود داره چه سخت افزاری مانند قفل های موجود و چه نرم افزاری میشه امنیت نسبی را برایش برقرار کرد . یادتون باشه امنیت یک مقوله نسبی است که هر چه بیشتر و بهتر روی آن کار کنید بهتر نتیجه می گیرید و نمی توان امنیت را مطلق فرض کرد ....
موفق باشید .
arkia
پنج شنبه 18 خرداد 1391, 01:28 صبح
سپس این رشته ها را جایی از سرور مثلا همون بانک اطلاعاتی وارد کنید . از این پس هر کلاینتی خواست اجرا شود ابتدا این رشته مخصوص به خود را به سرور بفرستد در صورت تایید از سوی سرور اجازه ی فعالیت بدهد .
ذخیره کردن اطلاعات کلاینت ها ایده خوبیه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.