ورود

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



slr560
چهارشنبه 12 شهریور 1393, 21:41 عصر
سلام

وقتی اطلاعات بین وب سرویس و گوشی اندرویدی ردوبدل میشه بصورت رمزگذاری شده نیس
چجوری میشه این نوع اتصال رو امن کرد؟
استفاده از ssl? چجوری و با چه کلاسی؟
هر متدی هست لطفا مطرح کنید

saeed_g21
چهارشنبه 12 شهریور 1393, 22:04 عصر
تاحالا استفاده نکردم ولی فکر کنم 100% بایستی SSL باشه

slr560
چهارشنبه 12 شهریور 1393, 22:05 عصر
خب این که کاملا مشخصه
ولی چجوری؟ چجوری پیاده سازی میکنن؟

harani
چهارشنبه 12 شهریور 1393, 23:33 عصر
http://security.stackexchange.com/questions/31024/encrypt-data-within-mobile-app-and-send-to-web-service

slr560
چهارشنبه 12 شهریور 1393, 23:38 عصر
http://security.stackexchange.com/questions/31024/encrypt-data-within-mobile-app-and-send-to-web-service

قسمتیشو خوندم ولی زیاد متوجه نشدم
اصن قابل پیاده سازی هست؟

saeidpsl
چهارشنبه 12 شهریور 1393, 23:48 عصر
یه پسورد برا اجازه دادن تعریف میکنی و اون پسورد رو کد میکنی از این تاپیک (http://barnamenevis.org/showthread.php?460023-Decompile-And-Anti-Decompile&p=2059636&viewfull=1#post2059636) استفاده کن برا کد کردن
نمونه اینجوری "exmple.com/users.php?password=test&id=1" سمت سرور پسورد رو چک کنه اگه درست بود بقیه کار رو انجام بده همین.:چشمک:

slr560
چهارشنبه 12 شهریور 1393, 23:57 عصر
یه پسورد برا اجازه دادن تعریف میکنی و اون پسورد رو کد میکنی از این تاپیک (http://barnamenevis.org/showthread.php?460023-Decompile-And-Anti-Decompile&p=2059636&viewfull=1#post2059636) استفاده کن برا کد کردن
نمونه اینجوری "exmple.com/users.php?password=test&id=1" سمت سرور پسورد رو چک کنه اگه درست بود بقیه کار رو انجام بده همین.:چشمک:

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

saeidpsl
پنج شنبه 13 شهریور 1393, 00:03 صبح
اتفاقا میخواستم قبلنا یه سوالی در رابطه با نرم افزاری که معرفی کردی بپرسم
ببین من درست میگم یا نه:
این میاد یه استرینگ میگیریه و اونو با یه کلید رمز میکنه . شایدم رمز نمیکنه و میاد فقط مبهم میکنه
اونوقت با چه سطح امنیتی رمز میکنه؟؟؟ AES?

سطح بالا !
اینجا (http://www.zelix.com/klassmaster/features.html)ببین چه گفته

saeidpsl
پنج شنبه 13 شهریور 1393, 00:14 صبح
بهترین DashO (https://www.preemptive.com/products/dasho) است مخصوص برا اندروید

slr560
پنج شنبه 13 شهریور 1393, 09:39 صبح
بهترین DashO (https://www.preemptive.com/products/dasho) است مخصوص برا اندروید
این چیزی که شما معرفی کردید ۱۴ روز free هست و بعدش انگار باید پرداخت داشته باشی
نوشته از جاوا ۱.۶ و ۱.۷ پشتیبانی میکنه. پس ۱.۸ چی شد؟ :متفکر:
همون Zelix هست این درسته؟

saeidpsl
پنج شنبه 13 شهریور 1393, 10:02 صبح
این چیزی که شنا معرفی کردید ۱۴ روز free هست و بعدش انگار باید پرداخت داشته باشی
نوشته از جاوا ۱.۶ و ۱.۷ پشتیبانی میکنه. پس ۱.۸ چی شد؟ :متفکر:
همون Zelix هست این درسته؟

اره گفتم فقط بدونی کدوم بهتره کرک شده پیدا نکردم
خوب ما string رو باید کد کنیم پس نگران ورژن جاوا نباش

slr560
پنج شنبه 13 شهریور 1393, 10:29 صبح
اره گفتم فقط بدونی کدوم بهتره کرک شده پیدا نکردم
خوب ما string رو باید کد کنیم پس نگران ورژن جاوا نباش

پس با این حال واسه ما قابل استفاده نیس. این ۱۴ روز به چه صورته؟ یعنی تو این ۱۴ روز هیج محدودیتی برای کد کردم استرینگ نداره؟

saeidpsl
پنج شنبه 13 شهریور 1393, 11:34 صبح
خوب از این (http://barnamenevis.org/showthread.php?460023-Decompile-And-Anti-Decompile&p=2059636&viewfull=1#post2059636) استفاده کن کارش عالیه

hamid_hr
پنج شنبه 13 شهریور 1393, 11:47 صبح
من برا امن کردن اطلاعات یه یوزر و یه پسوورد و به صورت کد شده میکنم و یه پارامتر دیگه ای هم دارم که هش این دو تا رو میگیره و اونم کد میکنم و میفرستم
طرف وب سرویس اول یوزر و پسوورد رو به صورت خام در میارم و هش رو میگیرم و با هش اون که فرستاده مقایسه میکنم و اگه برابر بود میفهمم تست درسته
البته یه مقادیری هم به صورت ثابت ه یوزر و پسوور اضافه میکنم بعد هش میگیرم و طرف سرور همون مقادیرو اضافه میکنم و هش میگیرم و بعد مقایسه میکنم

فقط نمیشه با این روش جلوی حمله تکرار رو گرفت
اونم فک کنم باید یه کانتر بزارم و وقتی کلاینت چیزی میفرسته کانترشم بفرسته البته کد شده و تو هش هم شرکت کنه این کانتر و طرف سرور هم همینطوری تغییر
بعد اونطرف همین کانتر رو چک کنه که قبلا این یوزر این کانترو نفرستاده باشه

Nevercom
پنج شنبه 13 شهریور 1393, 22:33 عصر
من برا امن کردن اطلاعات یه یوزر و یه پسوورد و به صورت کد شده میکنم و یه پارامتر دیگه ای هم دارم که هش این دو تا رو میگیره و اونم کد میکنم و میفرستم
طرف وب سرویس اول یوزر و پسوورد رو به صورت خام در میارم و هش رو میگیرم و با هش اون که فرستاده مقایسه میکنم و اگه برابر بود میفهمم تست درسته
البته یه مقادیری هم به صورت ثابت ه یوزر و پسوور اضافه میکنم بعد هش میگیرم و طرف سرور همون مقادیرو اضافه میکنم و هش میگیرم و بعد مقایسه میکنم

فقط نمیشه با این روش جلوی حمله تکرار رو گرفت
اونم فک کنم باید یه کانتر بزارم و وقتی کلاینت چیزی میفرسته کانترشم بفرسته البته کد شده و تو هش هم شرکت کنه این کانتر و طرف سرور هم همینطوری تغییر
بعد اونطرف همین کانتر رو چک کنه که قبلا این یوزر این کانترو نفرستاده باشه
یکی از ساده ترین راه ها و البته بسیار موثر برای جلوگیری از Brute Force Attack، ایجاد وقفه در پاسخگویی هست

فرض کنید وب سرویسی دارید که پس از لاگین یک کلید ایمن (مثلاً SHA512) به کلاینت میده و با استفاده از اون تایید هویتش می کنه.
در این سیستم متد لاگین در وب سرویس مستعد حمله هست، از اونجایی که این حملات با آزمون و خطای بسیار زیاد می تونن موفق به کشف پسورد بشن، می تونیم با ایجاد یک وقفه در پاسخگویی کارشون رو بسیار دشوار کنیم.
فرض کنید وقفه رو روی یک ثانیه تنظیم کنیم، یعنی پس از دریافت درخواست لاگین، بعد از یک ثانیه نتیجه عملیات رو اعلام کنیم.
در این حالت برای تست ۱۰۰٫۰۰۰ کلمه ی عبور نزدیک به ۲۸ ساعت زمان نیاز هست.

باید ایجاد یک وقفه ی منطقی میتونید ایمنی سیستم رو بیشتر کنید و در عین حال کیفیت سیستم چندان افت نکنه.

hamid_hr
شنبه 15 شهریور 1393, 09:37 صبح
یکی از ساده ترین راه ها و البته بسیار موثر برای جلوگیری از Brute Force Attack، ایجاد وقفه در پاسخگویی هست

عزیزم طرف با چند تا ترد همزمان مثلا 100 بار درخواست رو به وب سرویس میفرسته
با این کار زمان تقسیم بر 100 میشه

Nevercom
شنبه 15 شهریور 1393, 15:19 عصر
عزیزم طرف با چند تا ترد همزمان مثلا 100 بار درخواست رو به وب سرویس میفرسته
با این کار زمان تقسیم بر 100 میشه
درسته، با افزایش تعداد درخواست های موازی تاثیر این مورد کم میشه.
اما ایده ی اصلی اینجا، زمان هست. برای یک روبوت زمان خیلی مطرح هست، هرچقدر بتونید تعداد تلاش برای دریافت پسور رو کمتر کنید، ایمنی رو بیشتر کردید.
قطعاً یک راه حل ایمن، از ترکیبی از روش ها استفاده می کنه

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

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

به هرحال هرچقدر بتونید این پروسه رو برای روبوت کندتر کند، احتمال لو رفتن پسورد یک اکانت کاهش پیدا می کنه

slr560
شنبه 15 شهریور 1393, 15:34 عصر
اینایی که میگین واسه زمانی هست که آدرس وب سرویس لو بره و مورد حمله قرار بگیره
درست میگم؟ چجوری میشه آدرس وب سرویس رو encrypt یا مبهم کرد که با دیکامپایل کردن برنامه هم کسی بدستش نیاره؟
این ابزار Zelix که یکی از دوستان معرفی کردن کاربرد داره؟
اصن از قسمت یوزر و پسورد خود نرم افزار حمله میتونه صورت بگیره؟

roboman78
پنج شنبه 24 اردیبهشت 1394, 13:27 عصر
سلام آیا راهی برای اینکریپت آدرس وب سرویس وجود داره؟

saeidpsl
پنج شنبه 24 اردیبهشت 1394, 13:33 عصر
اینایی که میگین واسه زمانی هست که آدرس وب سرویس لو بره و مورد حمله قرار بگیره
درست میگم؟ چجوری میشه آدرس وب سرویس رو encrypt یا مبهم کرد که با دیکامپایل کردن برنامه هم کسی بدستش نیاره؟
این ابزار Zelix که یکی از دوستان معرفی کردن کاربرد داره؟
اصن از قسمت یوزر و پسورد خود نرم افزار حمله میتونه صورت بگیره؟
من تست کردم 101% جواب میده

roboman78
پنج شنبه 24 اردیبهشت 1394, 13:48 عصر
سلام آیا راهی هست که بشه لینکی که تو دابل کوتیشن هست رو کاری کرد که وقتی دیکامپاییل میشه دیده نشه؟
واسه اینکریپت استرینگ هم یه سر به این نرم افزار بزنین خیلی راحت ریسورسو نشون میده
http://www.farsroid.com/apk-editor-pro-android/

roboman78
پنج شنبه 24 اردیبهشت 1394, 17:02 عصر
ببخشید الان بهتره تو استربنگ بزارم یا دابل کوتیشن؟؟؟

slr560
پنج شنبه 24 اردیبهشت 1394, 17:20 عصر
ببخشید الان بهتره تو استربنگ بزارم یا دابل کوتیشن؟؟؟

شما توی هر چی بزاری و encrypt کنی خیلی راحت میشه ادرس وبسرویس رو پیدا کردم
خیلی ساده با تحلیل برنامه اندرویدی توی دسکتاپ از طریق برنامه های مث wireshark و ...
مهم این نیس ادرست لو بره یا نره. مهم اینه سمت سرورت جوری باشه که اگرم لو رفت نشه بهش نفوذ کرد
برای اینکه کمی کارو واسه مهاجم سخت کنی باید استرینگ های ادرس رو بپیچونی
برای این کار ادرس رو به ۱۰ قسمت بشکون و با اسم های متفاوت و بی معنی توی Strings قرار بده. حالا توی جاوا با + بهم بچسبون و لینک بده

roboman78
پنج شنبه 24 اردیبهشت 1394, 20:21 عصر
ممنون ببخشید لینکی واسه بالا بردن امنیت سرور دارین؟