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

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

استفاده از رمزنگاری در صفحات وب

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

برای مثال به کد زیر دقت کنید :

در کد بالا در صورتی که من به منظور تزریق اقدام کنم طبق معمول همچین URL ای رو میزدیم :

base64-encoding-on-a-page

همانطور که میبینید من از یک نوع کد گذاری بسیار سطحی استفاده کردم اما برای یک نفوذگری که اطلاعاتی نداره این آسیب پذیری بدون استفاده از هیچ تابعی Patch شده است … اما کد بالا ایمن نیست .. نفوذگر در صورتی که بتونه الگوریتم رمزنگاری رو به دست بیاره و کد های خودشو تزریق کنه مانند گذشته میتونه اقدام به نفوذ کنه .. اما استفاده از رمزنگاری در نگاه سطحی بسیار مفید به نظر میرسید !

اما در صورتی که از رمزنگاری های پیشرفته تر استفاده کنیم و نفوذگر نتواند آن را decode کند چه راحت از ورودی های خودمان در برنامه محافظت کردیم ؟!

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

استفاده از رمزنگاری در پایگاه داده

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

ما فرض رو میگیریم که سایت ما توسط آسیب پذیری SQL Injection مورد نفوذ قرار گرفته اما تا زمانی که نفوذگر به گذرواژه دسترسی پیدا نکند به صفحه مدیریت نمیتواند وارد شود. از طرفی امکان بروزرسانی مقدار رو در mysql / php را دارا نیست. بنابراین اطلاعات بدرد بخوری را نمیتواند پیدا کند.

سیستم های مدیریت محتوا معروف مانند WordPress از رمزنگاری در پایگاه داده استفاده میکند. در ورژن های قبلی وردپرس نفوذگران از User Activation Code به منظور تغییر پسورد در صفحه فراموشی پسورد استفاده میکردند .

هش چیست؟

password-hash-1

هش ها عبارت های برهم ریخته ای هستند که هیچوقت decrypt نمیشوند . از الگوریتم های هش معروف میتوان به sha1 و md5 اشاره کرد. لازم به ذکر هست که طبق توضیحاتی که در پست MD5 Hash Injection دادیم برای هش ها بهتر هست از الگوریتم های sha استفاده شود. استفاده از هش نوع md5 به علت وجود دیتابیس های هش بزرگ در سطح اینترنت توصیه نمیشود.

 

ارسال نظر

ایمیل شما منتشر نخواهد شد. پر کردن ورودی ها الزامی است. *

*

4 × چهار =