PDA

View Full Version : تبادل اطلاعات به صورت امن



terrorhell
پنج شنبه 10 مهر 1393, 11:55 صبح
سلام
دوستان من دنبال راه کاری برای تبادل اطلاعات بین کاربر و سرور به صورت امن هستم

کارهای زیر رو انحام دادن تا الان :

ایجاد یک http proxy با استفاده از squid
استفاده از stunnel برای رمز نگاری اطلاعات

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

ممنون میشم راهنمایی کنید

Unique
پنج شنبه 10 مهر 1393, 13:48 عصر
چرا ssl نمیگیرید ؟

terrorhell
پنج شنبه 10 مهر 1393, 17:45 عصر
سلام
ssl invalid میتونم رو سرور ایجاد کنم .
ولی میخوام بدون هزینه باشه و همه کارها به صورت نرم افزاری پیاده بشه ( با ایده های هکر گریز :لبخند: بتونیم فایل هامونو به مقصد برسونیم )

aliphp1
پنج شنبه 10 مهر 1393, 18:36 عصر
تلاش کنید شاید تونستید یه کار بومی انجام بدید

terrorhell
پنج شنبه 10 مهر 1393, 19:08 عصر
جناب aliphp1 مرسی از نصیحتت :لبخند: ولی دنبال راهنمایی به این شکل نبودم دنبال نظر تخصصی بودم ( در هر صورت مرسی :قلب: )

alireza.stack
پنج شنبه 10 مهر 1393, 19:50 عصر
استفاده از squid برای برقراری امنیت؟؟

squid یه سیستم cache هستش ربطی به مباحث امنیتی ندارد و برای افزایش سرعت پاسخ استفاده می شود.

stunnel حرکت خوبی است و با SSL proxy که در اختیارتون قرار میده می تونید داده ها رو بصورت امن منتقل کنید.

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

روشهای دیگر در کل فقط کثیف کاری اسکریپت رو بیشتر می کند و overhead شبکه رو زیاد می کنند.

terrorhell
پنج شنبه 10 مهر 1393, 20:40 عصر
خب stunnel تمام درخواست های http رو از ssl عبور میده و رمز نگاری میشه
پس با توجه به نظر شما من یک ssl invalid تو سرور ایجاد کنم (https) بعد فرم آپلود رو از طریق اون https بگذرونم ؟

terrorhell
پنج شنبه 10 مهر 1393, 20:44 عصر
در ضمن اینکه شما فرض کن فرم آپلود از طریق پروتکل https انجام میشه و اینکه نظرتون در مورد این کدی که برای آپلود هست چیه ؟
http://pastie.org/1869362

ciph3r
پنج شنبه 10 مهر 1393, 21:56 عصر
اگر تحت وب هستش تمومی دیتا تو بنداز تو Session
اگر نه از SSL و یا اینم نه کانفیگ لینوکسی کن دستت باز میشه
شنود برای پکت های شبکه میشه و پکت شما در خصوص لایه 7 و HTTP هست که طرف زیاد باهاش درگیر نمیشه و خودت میتونی از یه رمز نگاری ساده استفاده کنی ولی بیس64 کن
یعنی با Encrypt بفرست و با Decrypt تحویل بگیر

terrorhell
پنج شنبه 10 مهر 1393, 22:04 عصر
سلام
جناب ciph3r من متوجه نشدم چی گقتین ممنون میشم کمی بیشتر توضیح بدین ؟؟

یعنی چی تمام دیتاهامو بندازم تو سشن ؟ من یک آپلود فایل دارم

ممنون میشم کمی جزئی تر توضیح بدین

aliphp1
پنج شنبه 10 مهر 1393, 22:19 عصر
جناب aliphp1 مرسی از نصیحتت :لبخند: ولی دنبال راهنمایی به این شکل نبودم دنبال نظر تخصصی بودم ( در هر صورت مرسی :قلب: )

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

aliphp1
پنج شنبه 10 مهر 1393, 22:25 عصر
اگر تحت وب هستش تمومی دیتا تو بنداز تو Session
اگر نه از SSL و یا اینم نه کانفیگ لینوکسی کن دستت باز میشه
شنود برای پکت های شبکه میشه و پکت شما در خصوص لایه 7 و HTTP هست که طرف زیاد باهاش درگیر نمیشه و خودت میتونی از یه رمز نگاری ساده استفاده کنی ولی بیس64 کن
یعنی با Encrypt بفرست و با Decrypt تحویل بگیر

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

مهرداد سیف زاده
پنج شنبه 10 مهر 1393, 22:27 عصر
پروتکل ssl‌اونقدرها هم امن نیست. دلیل به اون دلیل خون ریزی قلبی که آخرش صداش در اومد که گذاشته بودن تا راحی باشه برای هک کردن.
حالا در راهنمای خود ssl اومده که این شبکه امن است اما اگر در لحظه تبادل کلید کسی شبکه را sniff کند آنوقت پروتکل شما امن نخواهد و امکان شنود و decrypt کردن داده های وجود دارد.
به نظر شما یعنی سازمانهای جاسوسی میزارن شما دیتای امن رد و بدل کنید؟
خلاصه این که چیزی به اسم امنیت وجود ندارد و بیشتر این فناوری ها صرفا برای برقراری امنیت نسبی هست. فایلی که اومد روی شبکه یعنی public شده.

terrorhell
پنج شنبه 10 مهر 1393, 22:48 عصر
مرسی ار دوستان
ولی شما سازمان جاسوسی رو در نظر نگیر جون با این فکر هیچ وقت هیچی امن نیست ، شما اینو در نظر بگیر که بتونیم از دست هکر ها یی که مربوط به جایی نیستن رهایی پیدا کنیم:لبخند:

Unique
جمعه 11 مهر 1393, 01:19 صبح
تنها راه شما ssl هست و اگه واقعا توانایی خرید یک DV Certificate با سالی ۱۵ هزار تومن را ندارین کلا نگاهتون به این تجارت مشکل داره و اونم اساسی ! اگه دنبال راه حل هستین که این بتنها راه حل هستش و اگه دنبال گیک بازی (یعنی خودتون میخواین راه حل ابتکاری بزنید. [سوء تفاهم نشه]) هستین که نظری ندارم.



پروتکل ssl‌اونقدرها هم امن نیست. دلیل به اون دلیل خون ریزی قلبی که آخرش صداش در اومد که گذاشته بودن تا راحی باشه برای هک کردن
Bug تیو هر چیزی هست و همیشه در پشتی و این چیزا وجود داره اما فعلا که همه دارند اطمینان میکنند و اگه به این الکی ها هم بود که سایت هایی مثل Paypal کلی به مشکل میخوردن



حالا در راهنمای خود ssl اومده که این شبکه امن است اما اگر در لحظه تبادل کلید کسی شبکه را sniff کند
مگه private key را رد و بدل میکنند ؟ تا اونجا که من میدونم private key اصلا توی ارتباط مطرح میشه و سمت گیرنده اطلاعات باهاش Decrypt میشه. میشه من را راهنمایی کنید ؟

مهرداد سیف زاده
جمعه 11 مهر 1393, 06:35 صبح
در ssl حالت نا متقارن هست. یعنی اطلاعات با کلیدی که در سرور هست رمز میشه و سرور در لحظه اتصال یک کلید برای رمز گشایی به کاربر میده(البته سر پارامترهای دیگر امنیتی هم بحث میکنن) خب اگر در لحظه ارسال کلید از سرور به کلاینت کسی شبکه رو sniff کنه از همون کلید میتونه برای decode کردن داده ها استفاده کنه. در واقع شخص گیرنده اطلاعات از سرور به غیر از خود کلاینت فرد میانی دیگری هم خواهد بود.

aliphp1
جمعه 11 مهر 1393, 10:16 صبح
امنیت در هیچ سطحی صد درصد نیست
فقط همیشه باید از مواردی که ضریب اطمینان بالاتری دارند استفاده کنیم
که دراین مورد هم فعلا ssl تنها راه هست

terrorhell
جمعه 11 مهر 1393, 15:35 عصر
مرسی از همه دوستان فقط اینکه صحبت هایی که تا الان شد همش در مورد بخش سرور بود و ssl

بیاید در مورد همون دستکاری فایل ها در حال انتقال صحبت کنیم مثلا فایل قبل از ارسال کارهایی روش انجام بشه که اگر هم sniff شد کارو واسه هکر سخت کنه یا فایل spilit بشه موفع ارسال و هر قسمت فایل در یک جایی از سرور بشینه و مثلاً اینکه با رمز نکاری های مختقل فایل رو طوری رمز نگاری کنیم که موقعی هم که به سرور میرسه اگر مدیر سرور قصد استفاده داشته باشه باید از نرم افرار خاصی یا کلید خاصی برای استفاده از اون فایل استفاده کنه

مرسی:قلب:

Unique
جمعه 11 مهر 1393, 15:36 عصر
در ssl حالت نا متقارن هست. یعنی اطلاعات با کلیدی که در سرور هست رمز میشه و سرور در لحظه اتصال یک کلید برای رمز گشایی به کاربر میده(البته سر پارامترهای دیگر امنیتی هم بحث میکنن) خب اگر در لحظه ارسال کلید از سرور به کلاینت کسی شبکه رو sniff کنه از همون کلید میتونه برای decode کردن داده ها استفاده کنه. در واقع شخص گیرنده اطلاعات از سرور به غیر از خود کلاینت فرد میانی دیگری هم خواهد بود.

متاسفانه خیلی در این زمینه اطلاعات ندارم ولی با صحبت شما امنیت SSL از کشک هم کشک تر میشه.

Unique
جمعه 11 مهر 1393, 15:52 عصر
مرسی از همه دوستان فقط اینکه صحبت هایی که تا الان شد همش در مورد بخش سرور بود و ssl

دوست عزیز ssl کل مسیر از کلاینت تا سرور و بالعکس هستش. و بهترین راه حل همینه.

اما اگه واقعا میخواین خودتون چنین کاری بکنید فقط با HTML5 و مرورگر هایی که اون را پشتیباین میکنند میشه چنین کاری کرد.
این صفحات را بخونید متوجه میشین :
http://stackoverflow.com/questions/6181001/manipulating-and-uploading-form-file-data-using-html5-technology
https://gist.github.com/thoraxe/465b9e1418b6270d5dc6

به صورت ترکیبی از این روش ها استفاده کنید وفایل را encrypt و ارسال کنید. اما باید از پارامتر های متفاوت برای هر کاربر توی ایجاد salt یا keypass استفاده کنید چون کل روش شما روی کلاینت باز و قابل دیدنه و میشه فهمید چطور اطلاعات را decrypt کرد و فقط salt یا pass phrase ی که برای هر کاربر متفاوت هست باید استفاده بشه. مثلا fingerprint (https://github.com/Valve/fingerprintjs) راه حل خوبیه اما در کل خیلی خیلی هم صد درصدی نیست.

terrorhell
جمعه 11 مهر 1393, 17:34 عصر
این سایت رو پیدا کردم http://www.jcryption.org

به نظرم چیز جالبی اومد ... نظرتون چیه ؟