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

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

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

امنیت
سیستم عامل اندروید بصورت پیشفرض یکسری امکانات قابل توجه امنیتی برای محافظت از برنامه ها دارد.مثل قرنطینه (application sandboxxing) یا فضای حافظه جدا برای اطلاعات و دستور های یک برنامه.در کل میتوان گفت که اگر برنامه شما از شبکه استفاده نکند و با فایل سیستم هم کاری انجام ندهد بطور پیشفرض ایمن است .

 

اما زمانی که بخواهید کمی پیچیده تر کار کنید باید راهکار های امنیتی خود را داشته باشید و نکته مهم این است که بدانید : “این راهکار ها هیچوقت بطور کامل برنامه شما را ایمن نمیکنند “ .شما فقط باید تلاش کنید تا نفوذ به برنامه تان سخت و سختر شود.در ادامه می خواهیم چند راهکار ساده اما مهم برای تامین امنیت برنامه ای که مینویسید را ذکر کنیم.

1 – از حافظه داخلی برای ذخیره کردن اطلاعات مهم استفاده کنید
خب این یک راه ساده ،کارآمد و ضروریست.برای هر برنامه اندروید یک مسیر مخصوص روی حافظه داخلی وجود دارد کهسایر برنامه های روی دستگاه به آن دسترسی ندارند. نام این مسیر بستگی به نام پکیج برنامه دارد.البته تا جایی که امکان دارد باید اطلاعات کمتری ذخیره شود و در صورت امکان همه چیز روی سرور (اگر برنامه با سروری در ارتباط است ) ذخیره شود.امااگر قصد داریم اطلاعات حساسی را روی دستگاه ذخیره کنیم برای بدست آوردن مسیر مخصوص برنامه می توانیم از دستور ()GetFileDir استفاده کنیم.

2 – اطلاعات روی حافظه خارجی را رمز گذاری کنیدامنیت
حجم حافظه داخلی معمولا محدود است ، به همین دلیل گاهی اوقات مجبور میشوید اطلاعات را روی حافظه خارجی ذخیره کنید.از آنجاییکه اطلاعات روی حافظه خارجی میتواند در دسترس همه باشد نیاز است که قبل از ذخیره سازی آنها را رمزنگاری کنید.یکی از الگوریتم های مشهور در این زمینه AES” با یک کلید 256 بیتی” است . شما میتوانید با استفاده از بسته javax.crypto که در android sdk موجود است کد رمزنگاری را بنویسید که کار دشواری می تواند باشد ، همچنین میتوانید از کتابخانه های ساده تر استفاده کنید ، مثل نمونه ای که فیس بوک ارائه کرده است بنام FaceBook ‘s Conceal.

3 – از اینتنت ها (Intents) برای ارتباط استفاده کنید.
برنامه نویس های حرفه ای که تازه وارد حیطه اندروید می شوند خیلی وقت ها برای ارتباط همزمان با سایر برنامه ها از روش هایی مثل سوکت ها ، پایپ های نامگذاری شده و یا فایل های اشتراکی استفاده می کنند ، این روش ها نه تنها سخت و غیر اصولی هستند بلکه می توانند جایگاهی برای تهدیدات امنیتی باشند.راه ساده تر و ایمن تر برای ارتباط با سیار پردازش ها ، استفاده از اینتنت ها است.

برای اطلاعات بیشتر در مورد اینتنت ها (Intents) این لینک را مطالعه کنید.

برای ارسال اطلاعات به یک قسمت از یک برنامه ابتدا باید یک Intent جدید بسازید و بعد از متد ()SetComponent اش استفاده کنید .تا نام برنامه دیگر و کومپوننتش (Component) را تنظیم کنید و بعد با استفاده از ()PutExtra اطلاعات مورد نظرتان را اضافه کنید به آن Intent .
به عنوان مثال قطعه کد زیر نشان می دهد چگونه رشته ی “Hello World “ را به یک Activity دیگر به نام MyActivity از یک برنتمه دیگر که نام بسته اش my.other.app است، ارسال کنید.

// Create an intent
Intent intent = new Intent();

// Specify the component name
intent.setComponent(
new ComponentName(“my.other.app”,”my.other.app.MyActivity”)
);

// Add data
intent.putExtra(“DATA”, “Hello World!”);

// Send the intent to the activity
startActivity(intent);

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

دیدگاهتان را بنویسید

بستن منو