رمز نگاری داده ها و بررسی الگوریتم های مناسب طبق استاندارد افتا

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

 

در سومین بخش از دوره تخصصی امنیت نرم افزار طبق سند الزامات امنیتی افتا، بررسی میکنیم که چه داده هایی را به چه روش هایی باید بصورت رمزنگاری شده ذخیره کنیم. در واقع تمامی داده هایی که برای احراز هویت کاربران (شامل نام کاربری، کلمه عبور و…) و داده هایی که بیانگر اطلاعات شخصی و محرمانه افراد (شامل کدملی، موبایل، کد پستی و…) و داده های مورد نیاز احراز هویت سایر سیستم ها (پنل پیامک، درگاه پرداخت، APIها، درگاه های انتقال فایل FTP و…) را باید بصورت رمزنگاری شده ذخیره یا انتقال دهیم.

مناسب ترین الگوریتم رمزنگاری مطرح شده AES (Advanced Encryption Standard) می باشد که باید با طول کلید 128 یا 192 یا 256 با مد های CBC, GCM, یا CTR استفاده شود. از این الگوریتم برای رمزنگاری اطلاعات داده های مورد نیاز یا فایل ها استفاده می کنیم.

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

با استفاده از روش های مختلفی می توان از داده ها Hash گرفت اما الگوریتم های SHA-1, SHA-256, SHA-384, SHA-512 مورد تایید و قابل قبول در سند امنیتی می باشند.

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

چنانچه نیاز به دمو نرم افزار یا مشاوره در خصوص رمز نگاری داده ها و بررسی الگوریتم های مناسب طبق استاندارد افتا دارید، فرم زیر را تکمیل نمایید:
این فیلد را پر کنید
این فیلد را پر کنید
این فیلد را پر کنید