• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بسی عجیب ناک! فکر کنم یه الگوریتم اختراع کردم در سطح جهانی!!
#1
من خودم شاخ درآوردم.
اگر اشتباه نکرده باشم، در زمینهء امنیت وب یه اختراع مهم انجام دادم در سطح جهانی.
واقعا عجیبه. چند بار طرحی رو که بنظرم رسید چک کردم، و کاملا بی نقص بنظر میاد.
منم که ناشی نیستم و تاحالا در زمینهء امنیت مطالعات وسیعی داشتم و بنظرم به این سادگی به ایده های توهمی و اشتباه دچار نمیشم.

این الگوریتم بسیار ساده هم هست. طوری که من تعجب کردم و شک کردم که چطور تاحالا کسی این الگوریتم رو اختراع نکرده.
البته شایدم کسی اختراع کرده باشه. ولی از طرف دیگه اگر اختراع شده بود باید الان بیشتر جاها استفاده میشد. مگر اینکه Patent شده بوده و صاحبان امتیازش نذاشتن دیگران آزادانه ازش استفاده کنن. اما اینم خیلی عجیبه چون حداقل باید چیزی راجع بهش جایی خونده بودم و راجع بهش کسی بحثی کرده بود و ضمنا بعضی ها (حداقل بروبچ خودمون) قاچاقی ازش استفاده میکردن.

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

میدونید که در وب در زمینهء احراز هویت کاربرانی که در سایت ثبت نام میکنن یکی از مسائلی که مطرح هست اینه که پسورد کاربر موقع ثبت نام و موقع لاگین دستی، بصورت رمز نشده از طریق پروتکل HTTP بین کلاینت و سرور منتقل میشه و این یک ضعف امنیتی رو ایجاد میکنه.

امن ترین راه حل این مسئله تاجاییکه میدونم تاحالا استفاده از HTTPS بوده. ولی HTTPS هزینه ها و امکانات خاصی رو میخواد و پردازش و منابع بیشتری رو در هر دو سمت کلاینت و سرور مصرف میکنه و کندتره، و شاید به همین دلیل درکل بیشتر سایتهای اینترنت از HTTP استفاده میکنن و نه HTTPS.

اگر کسی بتونه راهی ارائه کنه که موقع ثبت نام و لاگین، پسورد کاربر بصورت خام به سرور ارسال نشه و نشه از اطلاعات رد و بدل شده بین کلاینت و سرور اون رو بدست آورد، یک مسئلهء مهم حل شده. البته این پروتکل HTTP رو کاملا امن نمیکنه، ولی یک مسئلهء خاص و مهمی در استفاده از اون رو حل میکنه.

حتی اگر موقع ثبت نام پسورد ارسال بشه اما موقع لاگین های بعدی ارسال نشه بازم میتونه خیلی مفید باشه.

و بنده ایده ای بنظرم رسید که این مسئله رو به بهترین شکلی که نمیتونستم تصورش رو هم بکنم حل میکنه. یعنی در اون پسورد کاربر هیچوقت به سرور ارسال نمیشه. نه موقع ثبت نام و نه موقع لاگین. البته این سیستم نیاز به وجود جاوااسکریپت در سمت کلاینت داره.

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

شما دوستان خوب من هستید که باعث شدید روی این مسئله فکر کنم و این ایده بنظرم برسه، اما حتما درک میکنید که نمیتونم هیچ اطلاعات دیگری از چنین چیز مهمی رو همینطوری با کسی درمیان بذارم. حتی نمیتونم اشاره ای به هیچ جنبهء فنی ای بکنم. تنها میتونم بگم نیاز به انجام یکسری عملیات Cryptographic در سمت کلاینت داره و برای همین به جاوااسکریپت نیاز داره.

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

راستی من به هیچ وجه قصد ندارم چنین چیزی رو Patent کنم. اگر هم Patent کنم به دلایلی غیر از انحصار فکری روی اون خواهد بود.
من میخوام این الگوریتم آزاد باشه. ولی دوست دارم و فکر میکنم بتونم بابتش حداقل جایزه دریافت کنم (همش یخورده پول و اینا باشه بسه Big Grin).

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

بالاخره هرچیزی رو یه کسی یه زمانی حتی تصادفی اختراع کرده.
مگه ما چیمون کمه حالا که باور نکنیم Big Grin

ولی بشریت هرچی چیز ساده بوده تاحالا باید اختراع کرده باشه! در طول این همه زمان، این همه انسان.

دارم گیج و منگ میزنم Huh

شما هم که هیچی نمیگید Confused
  پاسخ
تشکر شده توسط : euruse
#2
شاید من بد گرفته باشم
اما یه قانون برای رمز عبور وجود داره که اگر از ssl استفاده نمیشه بهتره که رمزعبور توسط جاواسکریپت md5 بشه و بعد ارسال بشه ( یا هر روش هش دیگه ای )
من خودم همیشه این کار رو می کنم
صفحات توی وب در این مورد خیلی زیاد هست
مثلا
http://pajhome.org.uk/crypt/md5/
یا در دروپال
http://drupal.org/node/36793
یا این
http://www.webmastersucks.com/user-login...cript-md5/
البته امیدوارم من منظورت رو درست فهمیده باشم
البته این فقط در مورد md5 هست و بهتره حتما از روش های هش استفاده بشه. اگر از الگوریتم های قابل بازگشت استفاده میشه که از کلید استفاده می کنن. کلید حتما باید auto generate باشه و برای هر کاربر فرق کنه و توی سشن نگه داری کنه بحث امنیت سشن اینها هم که سر جای خودش هست
  پاسخ
تشکر شده توسط : Goback vejmad
#3
نقل قول:البته این فقط در مورد md5 هست و بهتره حتما از روش های هش استفاده بشه.
یعنی چی؟ متوجه نشدم...
مگه md5 هش نیست؟
وبلاگ: Yousha.Blog.ir

صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
http://gulfnews.com/opinion/thinkers/ira...i-1.500997
  پاسخ
تشکر شده توسط :
#4
(۱۳۹۰ آبان ۱۳, ۰۲:۳۳ ق.ظ)admin نوشته: البته این فقط در مورد md5 هست و بهتره حتما از روش های هش استفاده بشه.

سلام یه سوال وقتی کد جاوا اسکریپت رو میشه غیر فعال کرد اینکه هش کنیم یا نه زیاد اصولی بنظر نمیاد!! اینجوری واسه بعضی ها هش شده ارسال میشه واسه اونایی که غیر فعال کردن هم معمولی!! بعد سمت سرور به مشکل نمیخوره آیا؟؟

(۱۳۹۰ آبان ۱۳, ۰۱:۲۵ ق.ظ)vejmad نوشته: و بنده ایده ای بنظرم رسید که این مسئله رو به بهترین شکلی که نمیتونستم تصورش رو هم بکنم حل میکنه. یعنی در اون پسورد کاربر هیچوقت به سرور ارسال نمیشه. نه موقع ثبت نام و نه موقع لاگین. البته این سیستم نیاز به وجود جاوااسکریپت در سمت کلاینت داره.

منظور شما از این حرف آیا همین هش شده توسط جاوا هست؟ من بعید میدونم چون این راه رو حتی منی که در زمینه امنیت هم زیاد بلد نیستم میدونستم حتما ره دیگه ای مد نظرتون رسیده!
امیدوارم که جواب بده و موفق باشین
دنبالش رو بگیرین انشالله نتیجه بده نیوتن هم که سیب خورد تو سرش اگه میخواست ادامه نده الان نیوتن نبودWink
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط :
#5
نقل قول:اما یه قانون برای رمز عبور وجود داره که اگر از ssl استفاده نمیشه بهتره که رمزعبور توسط جاواسکریپت md5 بشه و بعد ارسال بشه ( یا هر روش هش دیگه ای )
من خودم همیشه این کار رو می کنم
صفحات توی وب در این مورد خیلی زیاد هست
یعنی میگی پسورد رو در سمت کلاینت md5 و ارسال میکنیم و سمت سرور هم همون هش md5 پسورد که موقع ثبت نام در دیتابیس ذخیره شده با این هش مقایسه میشه؟

  پاسخ
تشکر شده توسط :
#6
اینو نگاه کن توضیح داده چندتا راه هست که احتمالا بهترینش همین challenge - response هست

http://unitstep.net/blog/2008/03/29/a-ch...in-system/
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط : vejmad
#7
نقل قول:منظور شما از این حرف آیا همین هش شده توسط جاوا هست؟ من بعید میدونم چون این راه رو حتی منی که در زمینه امنیت هم زیاد بلد نیستم میدونستم حتما ره دیگه ای مد نظرتون رسیده!
باید این سوال رو از شما هم بپرسم:
« یعنی میگی پسورد رو در سمت کلاینت md5 و ارسال میکنیم و سمت سرور هم همون هش md5 پسورد که موقع ثبت نام در دیتابیس ذخیره شده با این هش مقایسه میشه؟ »

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

سیستم کامل و امن که واقعا پیچیده تر از اینه و پیاده سازیش خیلی مفصل تر هست، سیستم Challenge-Response نامیده میشه. ظاهرا بنده هم این سیستم رو دوباره اختراع کردم Big Grin

در «این صفحه» یک روش از این نوع معرفی شده. در بخش Adding MD5 to an Authentication System توضیح داده. اگر به کدش دقت کنید خیلی فرق داره.
ضمنا این روشی که در این صفحه معرفی کرده ظاهرا نسخهء قدیمی ولی متداول بوده که ضعفهای امنیتی قابل توجهی داره که خودش در بخش Risks لیست کرده.

روش دیگه ای رو در «این صفحه» معرفی کرده تحت عنوان Alternative System که با قبلی شباهت داره اما حساب شده تر و پیشرفته تره و بیشتر ضعفهای روش قبلی رو برطرف کرده (فقط یک مورد رو نتونسته حل کنه).
با مطالعهء دقیق متوجه شدم ایدهء بنده هم از نظر کلی دقیقا همین روش بوده (فقط در جرییات پیاده سازی تفاوت میکنه).

---------------------------

ضمنا «این منبع» که معرفی شد، ظاهرا از همون روش اول که ضعیف تر هست استفاده میکنه. حواستون باشه دوتا روش هست. یکی قدیمی و یکی ظاهرا جدیدتر. اون جدیده شاید متداول نباشه و خیلی تست نشده باشه، ولی از نظر تئوریک واقعا قویتر هست.

«این منبع» هم صرفا از هش ساده md5 استفاده میکنه، نه یک سیستم Challenge-Response. درمورد امنیتش هم که قبلا گفتم. کلا در مقابل روش Challenge-Response خیلی ضعیف تره.
  پاسخ
تشکر شده توسط :
#8
نه دیگه منم که گفتم مطمئنا روش شما همین هش ساده توسط md5 نیست بعدم مثال زدم از challenge - response
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط :
#9
آره میدونم.
تاحالا این قضیه رو جایی ندیده بودم و مطرح نشده بود، با اینکه روش خیلی خوبی هست (اما خب طبیعتا پیچیده و پیاده سازیش اونقدرها هم آسون نیست). واسه همین فکر کردم ممکنه ایده ای که بهش رسیدم اختراع باشه. ولی خودمم گفتم که در اکثر موارد ایده های ما قبلا اختراع شدن یا اصلا از اساس اشتباه/غیرعملی هستن.
میشه گفت در 99.9% موارد!!

مطمئنم همین الانش هم خیلی از برنامه نویسان از این روش و علت و مزایاش اطلاعی ندارن.

حالا خوب شد مثل اینکه پروژم خیلی کامل میشه.



البته خود Challenge-Response بصورت کلی رو که طبیعتا قبلا آشنایی داشتم. چون اساس خیلی از پروتکل های امنیتی هست و در مطالعهء مبحث پروتکل های امنیتی و رمزنگاری مسلما بهش برخورد میکنیم. اما به این شکل برای ثبت نام و لاگین کاربران وب تاحالا جایی ندیده بودم.
در سیستمهای دیگه شکل ظاهری این روش فرق میکنه. مثلا پسورد بنوعی از قبل در کلاینت و در سرور یا Peer دیگه ذخیره شده (چون حالت سایت و وب و ثبت نام نیست).
  پاسخ
تشکر شده توسط :
#10
حالا یه سوال دیگه این callenge باید ذخیره بشن بهتره تو دیتابیس ذخیره بشن یا تو یه فایل رو سرور(مثلا فایل txt)؟؟ اصلا آیا مهم هست که مقدارش دیده بشه؟
ادمین عزیز شما که از این روش استفاده میکنی کدوم راه رو انتخاب میکنی؟؟Blush
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان