این دیدگاه را به اشتراک بگذارید
مقایسه کنید چه کسی به متن رمزگشایی‌شده دسترسی دارد و بر به‌روزرسانی‌ها اثر می‌گذارد؛ نه فقط نام رمزها را.

پیام‌رسان رمزگذاری‌شدهٔ تحت وب لزوماً ناامن نیست و یک برنامهٔ بومی اندروید هم لزوماً امن نیست. هر دو می‌توانند رمزگذاری سرتاسری را پیاده‌سازی کنند و هر دو باید متنِ رمزگشایی‌شده را روی دستگاه کاربر پردازش کنند. مقایسهٔ معنادار این است که چه کسی می‌تواند بر کلاینت تأثیر بگذارد، محتوای نمایش‌داده‌شده را بخواند یا به کلیدهای آن دسترسی پیدا کند.

استفاده از الگوریتم‌هایی با نام یکسان ثابت نمی‌کند که دو کلاینت پیاده‌سازی یا امنیت یکسانی دارند. در مورد Livara، معماری امنیتی منتشرشده حفاظتِ در نظر گرفته‌شده را توضیح می‌دهد. این مقاله مرزهای اعتمادِ پلتفرم‌ها را مقایسه می‌کند، نه نتیجهٔ ممیزی مستقلِ هیچ‌یک از کلاینت‌ها را.

تفاوت‌هایی که ارزش بررسی دارند

سطح کلاینت وب کلاینت اندروید
تحویل کد کد سایت، وابستگی‌ها، حافظهٔ نهان مرورگر و رفتار به‌روزرسانی بستهٔ نصب‌شده و کانال به‌روزرسانی آن
نرم‌افزارهای جانبی افزونه‌های دارای مجوزهای مرتبط، کد تزریق‌شده به سایت سرویس‌های دسترس‌پذیری، صفحه‌کلیدها و سایر نرم‌افزارهای دارای دسترسی ویژه
ذخیره‌سازی نمایهٔ مرورگر و فضای ذخیره‌سازی محدود به مبدأ فضای ذخیره‌سازی برنامه، کنترل‌های سیستم‌عامل و تنظیمات پشتیبان‌گیری
دسترسی فیزیکی نشست بازِ مرورگر و رایانهٔ مشترک تلفنِ بازشده و نشست فعال برنامه
بررسی یکپارچگی اعتماد به تحویل کد سایت و امنیت مرورگر امضای بسته‌ها و، در صورت موجود بودن، هش‌های معتبرِ نسخه‌های منتشرشده

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

آیا افزونه‌ها می‌توانند پیام‌های چتِ رمزگذاری‌شده را بخوانند؟

افزونه‌ای با دسترسی مناسب به سایت می‌تواند از اسکریپت محتوا برای خواندن یا تغییر محتوای صفحه استفاده کند. مستندات اسکریپت‌های محتوای Chrome توضیح می‌دهد که این اسکریپت‌ها با DOM صفحه تعامل دارند. اگر پیامی در آنجا به‌شکل متنِ خوانا نمایش داده شود، اسکریپتی با مجوز مناسب ممکن است بدون شکستن رمزگذاری پیام به آن دسترسی پیدا کند.

افزونه‌ها معمولاً محیط جاوااسکریپتِ جداگانه‌ای دارند، اما این جداسازی، DOM قابل مشاهدهٔ صفحه را از آن‌ها جدا نمی‌کند. در مقابل، این ادعا هم نادرست است که هر وب‌سایت نامرتبطی در همان نمایهٔ مرورگر، خودکار می‌تواند چتِ سایت دیگری را بخواند. مرزهای مبدأ در مرورگر همچنان اهمیت دارند؛ عبور از آن‌ها به تعاملی مجاز، آسیب‌پذیری یا نوع دیگری از دسترسی نیاز دارد.

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

نمای نزدیک و محوِ نوار ابزار مرورگر زیر نور بنفش.

WebCrypto چه چیزی فراهم می‌کند و چه چیزی نه؟

مشخصات رمزنگاری وبِ W3C عملیات رمزنگاری را در اختیار برنامه‌های وب می‌گذارد. این مشخصات، پروتکلی را که با آن عملیات ساخته می‌شود تأیید نمی‌کند و اسکریپت مخرب را هم بی‌خطر نمی‌سازد.

کلیدِ غیرقابل استخراج، خروجی‌گرفتنِ معمول از داده‌های کلید از طریق API را محدود می‌کند. کدی با دسترسی مناسب همچنان ممکن است آن کلید را برای عملیات مجاز به کار ببرد یا متنِ رمزگشایی‌شدهٔ حاصل را بخواند. بنابراین غیرقابل استخراج بودن، دفاعی کامل در برابر محیطِ به‌خطر‌افتادهٔ برنامه نیست. در دسترس بودن الگوریتم‌ها نیز به پیاده‌سازی مرورگر بستگی دارد؛ پشتیبانی را باید بررسی کرد، نه اینکه از نام یک مشخصات فنی نتیجه گرفت.

برای کاربران، پرسش‌های عملی این است که آیا مرورگر و سیستم‌عامل به‌روزند، آیا مبدأ درست است، کدام افزونه‌ها به سایت دسترسی دارند و برنامه با کلیدهای ماندگار و خروج از حساب چگونه برخورد می‌کند.

آیا کد تازهٔ وب همیشه به‌معنای آخرین اصلاحیه است؟

خیر. تحویل از طریق وب می‌تواند به‌روزرسانی‌ها را سریع کند، اما حافظهٔ نهان، سرویس‌ورکرها و زبانه‌هایی که مدت زیادی باز می‌مانند می‌توانند بر اینکه چه کدی در حال اجراست اثر بگذارند. این روش همچنین مستلزم اعتماد به فرایند تحویل کدِ سایت است. برنامهٔ نصب‌شده هم خطرهای خودش را دارد: تأخیر در به‌روزرسانی‌ها، به‌خطر‌افتادن امضا یا توزیع و نسخه‌های سیستم‌عاملِ بدون پشتیبانی.

هر دو نوع کلاینت را از مسیرهای رسمی‌شان به‌روز نگه دارید. فرض نکنید بارگذاری دوبارهٔ صفحه ثابت می‌کند وصلهٔ امنیتی اعمال شده، یا امضای بسته ثابت می‌کند برنامه هیچ آسیب‌پذیری‌ای ندارد.

چگونه یک فایل دانلودیِ اندروید را بررسی کنیم؟

امضاهای بستهٔ اندروید و هش منتشرشدهٔ فایل به پرسش‌های متفاوتی پاسخ می‌دهند. مستندات رسمی apksigner تأیید امضا را شرح می‌دهد. مقایسهٔ SHA-256 می‌تواند نشان دهد که آیا فایل دانلودشده با مرجع مشخصی تطابق دارد، اما خود آن مرجع باید قابل اعتماد باشد.

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

صرفاً به این دلیل که وبلاگی برنامه‌های بومی را امن‌تر می‌خواند، نسخهٔ جایگزینی را از خارج از مسیر رسمی نصب نکنید. مسیر رسمی توزیع و دقیقاً همان نسخه‌ای را که قصد نصبش را دارید تأیید کنید.

چک‌لیست انتخاب پلتفرم

  • رایانهٔ مشترک؟ نشست چت خصوصی را باز نگذارید؛ نشست‌های ذخیره‌شده و رفتار خروج از حساب را بررسی کنید.
  • افزونه‌های زیاد؟ دسترسی به سایت را کاهش دهید یا برای کارهای حساس از نمایه‌ای پاک استفاده کنید.
  • دستگاه تحت مدیریت؟ پیش از استفاده از حساب‌های شخصی، سیاست مدیریت و نظارتِ سازمان را بشناسید.
  • سرویس‌های نامطمئن اندروید؟ دسترسی‌های دسترس‌پذیری، اعلان‌ها، صفحه‌کلید و پشتیبانی از راه دور را بررسی کنید، بدون اینکه ابزارهای کمکیِ موردنیازتان را بی‌تمایز غیرفعال کنید.
  • تاریخچهٔ بلندمدت؟ پیش از حذف هر چیزی، بدانید کلیدها و نسخه‌های پشتیبان پس از پاک‌سازی فضای ذخیره‌سازی مرورگر یا نصب دوبارهٔ برنامه چگونه باقی می‌مانند.
  • گفت‌وگوی پرخطر؟ هویت مخاطب را از مسیری مستقل و قابل اعتماد تأیید کنید و امنیت دستگاه‌های هر دو طرف را در نظر بگیرید.

برای تصمیم‌گیری جامع‌تر، از چک‌لیست پیام‌رسان امن استفاده کنید. انتخاب هیچ‌یک از این دو پلتفرم، کپی‌برداری از سوی گیرنده، دسترسی دستگاه مخرب یا فراداده‌ای را که سرویس نگه می‌دارد از بین نمی‌برد.

پرسش‌های متداول

آیا افزونهٔ مرورگر باید رمزگذاری را بشکند؟

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

آیا برنامهٔ اندروید همیشه انتخاب امن‌تری است؟

خیر. وضعیت دستگاه، پشتیبانی به‌روزرسانی، منبع نصب و نرم‌افزارهای دارای دسترسی ویژه اهمیت دارند. محیطی را که واقعاً در اختیار دارید مقایسه کنید.

آیا تطابق مقدار بررسی، امن بودنِ ساخت را ثابت می‌کند؟

تحت فرض‌های تابع هش، برابری با هشِ مرجع را ثابت می‌کند. اما مشخص نمی‌کند که مرجع اصیل است یا کد امن است.

منابع

APK لیوارا را خودتان تأیید کنید
ادامهٔ این موضوعامنیت اندروید و دستگاه ↗پیام‌رسانی خصوصی ↗
پایان مقالهادامهٔ مطالعه ↗