حسین خیراله پور
حسین خیراله پور
خواندن ۲ دقیقه·۱ سال پیش

امنیت داده در اندروید

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

روش های رمزنگاری داده:

در هر نرم افزاری رمزنگاری داده از اهمیت ویژه ای برخوردار هست و نرم افزارهای اندرویدی هم از این قایده مستثنا نیستن. ولی باتوجه به نوع کاری که در اندروید انجام میشه میتونیم از روش های مختلف رمزنگاری استفاده کنیم. بصورت کلی روش های رمزنگاری به دو دسته الگوریتم های برگشت پذیر و برگشت ناپذیر تقسیم میشن. برای تولید کلید تو روش های برگشت پذیر ما میخواییم با بیشترین امنیت ممکن این روش ها رو توی اندروید پیاده سازی کنیم؛ لذا از AndroidKeyStore استفاده میکنیم. حالا بصورت خیلی ساده به توضیح این روش ها میپردازیم:

  • الگوریتم های برگشت پذیر یا Reversible:

به الگوریتم هایی گفته میشه که ما یک متن رو رمزنگاری میکنیم و در آینده اون متن رمزشده با استفاده از الگوریتم های رمزنگاری دقیقا به همون متن اولیه برمیگرده رو الگوریتم برگشت پذیر میگن. این الگوریتم ها به دو دسته متقارن و نامتقارن تقسیم میشن:

  • الگوریتم های متقارن یا symmetric: الگوریتم هایی هستن که کلید رمزنگاری و رمزگشایی توی اونها دقیقا یکسان هست. ما توی این مقاله به نحوه پیاده سازی الگوریتم AES با استفاده از AndroidKeyStore میپردازیم.
  • الگوریتم های نامتقارن یا asymmetric: الگوریتم هایی هستن که کلید رمزنگاری و رمزگشایی باهم تفاوت دارن. ما توی این مقاله به نحوه پیاده سازی الگوریتم EC با استفاده از AndroidKeyStore میپردازیم.
  • الگوریتم های برگشت ناپذیر یا Irreversible:

به الگوریتم هایی میگن که ما یک متن رو رمزنگاری میکنیم اما در آینده به هیچ وجه قابل برگشت به متن اولیه نیستن رو الگوریتم برگشت ناپذیر میگن. ما توی این مقاله به نحوه پیاده سازی الگوریتم SHA توی اندروید میپردازیم. خب دیگه .. بریم سراغ اصل مطلب و پیاده سازی روش های گفته شده تو بالا:

امنیت اندرویداندرویدبرنامه نویس اندرویدامنیتامنیت داده
Senior Android Engineer at blu Bank
شاید از این پست‌ها خوشتان بیاید