اکثر گوشی های هوشمند جدید در مرورگر اینترنتی خود امکان تایید SSL را دارند و در صورتیکه مشکلی در گواهینامه امنیتی وجود داشته باشه، به کاربر اخطار می دهند. برای مثال مرورگر های اندروید در بررسی SSL بسیار سختگیرند.
به علاوه همگی با اون قفل کنار نوار آدرس مرورگر آشناییم که نشان از امن بودن صفحه و معتبر بودن گواهینامه SSL می ده. این نکته هنگام خرید با استفاده از اپلیکیشن ها وجود نداره و ما نشانگر خاصی که بهمون بگه اتصال امنه نمی بینیم. برای مثال می تونیم تفاوت مراجعه به سایت آمازون در مرورگر و اپلیکیشن این سرویس رو در تصویر زیر ببینیم.
هنگام خرید با استفاده از مرورگر، من می تونم مطمئن بشم که در صفحه امنی قرار دارم چون پیغام خطایی از مرورگر دریافت نکردم و نشانگر قفل هم کنار نوار آدرس دیده می شه. در صورتیکه خرید رو بخوام از طریق اپلیکیشن انجام بدم باید به توسعه دهنده اعتماد کنم و بر اساس اون بگم که اتصال و اطلاعات من امنه.
هرچند من به آمازون اعتماد می کنم اما اپلیکیشن های خرید زیادی وجود دارند که به اندازه ای که باید امن نیستند و از کانال های امنی اطلاعات رو ارسال و دریافت نمی کنند. هنگام امن کردن اطلاعات در نرم افزار گوشی ها اشباهات متعددی می تواند رخ دهد و توسعه دهنده فاکتورهای زیادی رو باید کنترل کنه و روش های از پیش تعیین شده ای برای انجام پرداخت وجود نداره.
با مرورگر، اتصال یا امنه و یا نیست و توسعه دهنده کار زیادی نباید انجام بده. کافیه که مطمئن بشه گواهینامه معتبر در مسیر درستی در سرور قرار گرفته. وقتی بحث اتصال امن مطرح می شه، هرچه “creative license” کمتری برای توسعه دهنده درنظر گرفته بشه، بهتره.
تنها راهی که من میتونم مطمئن بشم اپلیکیشن از SSL استفاده می کنه اینه که اون رو با واسطه پروکسی فعال کنم، چیزی شبیه MITM Proxy و آدرس هایی که اطلاعات بهشون ارسال می شه رو به دست بیارم و در نهایت با openssl این آدرس رو چک کنم تا گواهینامه رو نشون بده و اعتبار سنجی کنه.
1 | openssl s_client -showcerts -connect www.amazon.com:443 |
هرچند این روش برای تست نفوذ مناسبه اما به هیچ عنوان روش دوست داشتنی و قابل انجامی برای کاربرهای عادی نیست. اگر راه آسونتر و بهتری برای سنجش امنیت اتصال اپلیکیشن های گوشی های هوشمند سراغ دارید، در کامنت ها بگید.
ترجمه آزادی از تریپوایر
ی راه خیلی راحت ترم هست.استفاده از این http://zap.zscaler.com/
توی سایت اپ+سیستم عامل مورد نظرو چک میکنی.
ی راه دیگه استفاده از mallodroid هست.که اس اس ال هایی که مشکل دارنو مشخص میکنه.(خودم تست نکردم)
ی راه دیگه استفاده از shark for root هست.(اینم تست نکردم)
سلام مجدد.
یه سوالی که برام پیش اومد اینه که تو این دستور
openssl s_client -showcerts -connect http://www.amazon.com:443
اون s_client چیه دقیقا !؟
ممنون جستار جالبی بود
ممنون. برای سوالی که پرسیدی می تونی به این آدرس بری:
https://www.openssl.org/docs/apps/s_client.html
ولی به طور خلاصه جواب اینه:
s_client یه کلاینته برای متصل شدن به یه هاست با استفاده از SSL/TLS
اون آپشن های بعدی هم یکیش برای مشخص کردن آدرس و پورته: -connect host:port
یکی دیگه اش هم برای نشون دادن کل زنجیره گواهینامه سروره: -showcerts
کلی آپشن دیگه هم وجود داره برای این کلاینت که در صورت نیاز می شه استفاده کرد. مثلا می شه یه پروتکل رو محدود کرد و نتیجه بقیه پروتکل ها رو دید: -no_ssl2, -no_ssl3, -no_tls1