چکیده گسترش استفاده از تکنولوژی وب و توسعه برنامه هایی که برای کارکرد درین بستر تولید میشوند مباحث مربوط به امنیت پایگاههای داده ای بعد جدیدتری پیدا کرده اند.
هر چند از آغاز پیداش پایگاههای داده همواره امنیت و تامین آن یک دغدغه مهم و پیاده سازی مناسب و کارای آن یک خصوصیت بنیادی در پایگاههای داده بوده است اما بهر روی بحث امنیت (Security)همواره در سایه مقولاتی همچون عملکرد مناسب (Functionality) ، کارایی (Performance) و قابلیت اطمینان (Reliability) قرار میگرفت.
به عبارتی هنوز هم چندان عجیب نیست اگر ببینیم یک برنامه رده سازمانی (Enterprise Level) با تعداد زیادی Client بدون هیچگونه ملاحظه امنیتی تولید شده و مورد استفاده باشد.
حتی میتوان درین زمینه مثالهای جالبتری یافت.
اغلب برنامه های Client-Server با نام کاربری sa(System Administrator) به پایگاههای داده متصل میشوند.
از دید امنیتی این مطلب یک فاجعه محسوب میشود.
هیچ تغییر و یا خرابکاری ای قابل ردیابی نیست، همه کاربران به همه اطلاعات دسترسی دارند و الی آخر.
اجازه دهید یک فرض اساسی را مطرح کنیم.
مدیران IT یک سازمان بر دو دسته اند: مدیران نوگرایی که به صورت داوطلبانه سازمان را به سمت ارائه خدمات عمومی و گسترده هدایت میکنند و به همین دلیل تکنولوژی وب را به عنوان تنها بستر موجود برای ارائه این خدمات میپذیرند و مدیران سنتی محافظه کاری که قابلیت اطمینان و کارایی سیستم جاری را تحت هیچ شرایطی حاضر نیستند در معرض خطر قرار دهند.
وب از نظر این گروه دوم کماکان یک تکنولوژی مشکوک غیر قابل اطمینان است.
در واقع دلایل فنی این گروه دوم هنوز هم چشمگیر و قابل اعتناست، به خصوص گروهی که از mainframe ها صحبت میکنند.
قابلیت اطمینان 0.99999 هنوز هم در دنیای غیر Mainframe یک رویاست و این پایان نامه به بررسی مسائل مربوط به امنیت وب سرور و وب سایت های در فضای مجازی اینترنت می پردازد.
واژههای کلیدی: امنیت وب سرور، امنیت وب سایت، فایروال 1-1- مقدمه 1-1-1- تعریف وب سرور 1-یک برنامه کامپیوتری است که مسئول قبول کردن درخواستهای http از مشتریان است که همان مرور گرهای وب هستند و پاسخ ها را به همراه یک سری اطلاعات به آنها پست میکنند.
این پاسخ ها همان صفحات Html هستند.بطور مثال اگر در صفحه مرور گرتان آدرس http://fa.wikipedia.org/index.php را وارد کنید ، یک درخواست به دامنه ای که نامش fa.wikipedia.org است ، فرستاده میشود.
آنگاه سرور صفحه index.php را برای شما میفرستد.
2-یک کامپیوتراست که یک برنامه ی کامیپوتری را اجرا میکند و کارای اش همانند مطالبی است که دربالا گفته شد.
هر کامپیوتری میتواند با نصب نرم افزار سرور به وب سرور تبدیل شود.
1-1-2- ویژگی های مشترک در عمل بسیاری از وب سرورها، ویژگیهای زیر را نیز پیاده سازی میکنند: 1-شناسایی : درخواست شناسایی اختیاری فبل از اجازه دسترسی به انواع منابع 2-نه تنها مفاهیم استاتیک (مفاهیم فایلی که بر روی سیستم فایلی وجود دارد) بلکه مفاهیم داینامیک را با یک یا چند ساختار نیز مانند SSI, CGI, SCGI, FastCGI, JSP, PHP, ASP, ASP.NET اداره میکند.
3- پشتیبانی از HTTPS تا به کاربران اجازه دهد اتصالات مطمئنی به سرور را بر روی پورت 443 به جای 80 برقرار کنند.
4-فشرده سازی مطالب تا بتوان از حجم پاسخها کم کرد.
( توسط کد سازی GZIP ) 5-پشتیبانی از فایلهای بزرگ تا بتواند فایلهای بزرگتر از 2 گیگا بایت را سرویس دهی کند.
6-کنترل کردن پهنای باند : تا سرعت پاسخها را محدود کند و شبکه را پر ازدحام نکند و قادر باشد تعداد بیشتری مشتری را سرویس دهی کند.
1-2- سرورهای اینترنتی 1-2-1- آپاچی (Apache) : این وب سرور در توسعه و همگانی شدن وب جهانی نقش بسیار مهمی داشته است .
این وب سرور که به زبان C نوشته شده است دارای قابلیت cross- platform بوده و بر روی ماشین های مختلف قابل اجرا میباشد .
دلیل انتخاب این اسم برای این وب سرور را نیز دو مورد ذکر کرده اند اول اینکه به یکی از قبایل قدیمی بومی آمریکا که به خاطر مقاومت و مهارت در ساخت ابزار آلات جنگی مشهور میباشند احترام گذاشته شود و ثانیا به این دلیل که (Root)ریشه پروژه به صورت یک سری پچ (Patch)میباشد .
این وب سرور در یک گروه و به صورت کد باز (open source) گسترش یافت و از سال 1996 به عنوان محبوب ترین وب سرور برای HTTP در وب جهانی شناخته شده بود ولی در سال 2005 میدان مبارزه را به IIS مایکروسافت باخت و در حال حاضر نزدیک به 49 % بازار وب سرور های جهان را به خود اختصاص داده است همچنین MAC OS آن را به عنوان وب سرور اصلی در پشتیبانی از WEB OBJECT خود برگزیده است .
این وب سرور دارای ماژولهای امنیتی بسیار خوبی از جمله mod_access, mod_auth, mod_digest میباشد .
آپاچی برای میزبانی هر دو نوع وب ایستا و وب پویا مناسب است .
1-2-2- IIS وب سروری است که ارائه دهنده آن شرکت مایکروسافت میباشد و آخرین نسخه آن 7.0IIS است .در واقع IIS مجموعه ای از سرویس های اینترنتی است که بصورت یکجا نمایش داده شده است .
طبق آخرین آماری که منتشر شد بعد از وب سرور آپاچی بیشترین محبوبیت را بین کاربران داشته است و هم اکنون نزدیک به 36% بازار وب سرور های جهان را در اختیار دارد .
پلت فرمی که این وب سرور پشتیبانی میکند Microsoft Windows میباشد و در محیط های دیگر کار نمیکند .
برای اولین بار مایکروسافت آن را در یک پروژه آکادمیک در دانشگاه اسکاتلند به صورت مجانی عرضه کرد .
وسپس برای اولین بار از آن در Windows NT استفاده کرد که در آن قابلیتActive Server Page یا صفحه های فعال سرور را به آن افزود .
بعدها با تکامل نسخه های ویندوز ، IIS هم تکامل پیدا کرد و در نسخه شماره 6.0 آن مایکروسافت پشتیبانی از IPV 6.0 را نیز به آن اضافه کرد .
3- مقایسه مشخصات امنیتی وب سرورهای آپاچی و IIS قبل از مقایسه باید به این نکته اشاره کنیم که به دلیل مجتمع بودن وب سرور IIS با سیستم عامل راه انداز آن ، و دارا بودن مسائل Integration مسائل امنیتی در این وب سرور بهتر رعایت شده است یعنی همان سیستمی که مسائل امنیتی را برای کابران سیستم اصلی فراهم میکند برای سیستم IIS هم کار میکند ولی آپاچی چون حالت Cross-platform دارد چنین قابلیتی را دارا نمی باشد .
1-2-3- مقایسه عملکردهای امنیتی وب سرور های Apache و IIS قابلیت آپاچی IIS Secure Login Yes Yes SSL Yes Yes Basic Authentication Yes Yes Digest Authentication Yes Yes LDAP Authentication Yes Yes Passport Authentication Yes No Active Directory Authentication Yes Only with third-partym odules 1-3- ایجاد یک ارتباط ایمن در برنامه های وب زمانیکه در رابطه با امنیت برنامه های وب بحث می شود، می بایست بر روی دو محور اساسی متمرکز گردید: با استفاده از چه مکانیزمهائی می توان دستیابی کاربران به یک برنامه را کنترل و پس از شناسائی آنان ، امکان استفاده از برنامه را برای کاربران تائید شده و متناسب با سطح دستیابی فراهم نمود؟
برخی از برنامه های وب ، اطلاعات حساس متعددی را از طریق محیط انتقال و زیر ساخت ایجاد شده ، ارسال و یا دریافت می دارند .
در این رابطه از چه نوع مکانیزمهائی می بایست استفاده گردد تا این اطمینان حاصل شود که اطلاعات حساس ارسالی (نظیر اطلاعات مربوط به کارت های اعتباری ) ، توسط افراد غیر مجاز قابل خواندن نبوده و امکان دستکاری آنان نیز وجود نداشته باشد.دریافت کننده اطلاعات، می بایست از صحت اطلاعات ارسالی،اطمینان حاصل نماید .
این نوع از برنامه های وب ، نیازمند استفاده از یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده می باشند .
وجود یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده در برنامه ها ی وب تجاری و یا سایت هائی که بر روی آنان کالا و یا خدماتی عرضه می گردد ، بسیار حائز اهمیت بوده و از موارد حیاتی در موفقیت آنان محسوب می گردد .
در مجموعه مقالاتی که با عنوان "امنیت برنامه های وب " ارائه گردید، اولین محور امنیتی در رابطه با برنامه های وب ، بررسی و در این راستا با تمرکز بر روی پلت فرم دات نت مایکروسافت ، با روش های پیاده سازی آن در برنامه های وب دات نت ، آشنا شدیم .
در مجموعه مقالاتی که ارائه خواهد شد ، به بررسی محور دوم امنیت در برنامه های وب خواهیم پرداخت .
در این رابطه لازم است در ابتدا با ملزومات لازم به منظور ایجاد یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده آشنا شده و در ادامه به بررسی نحوه پیاده سازی یک ارتباط ایمن در برنامه های وب دانت نت ، خواهیم پرداخت .
1-3-1- ضرورت ایجاد یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده همانگونه که اشاره گردید ، برخی از برنامه های وب ، اطلاعات حساسی را از سرویس گیرنده اخذ و در ادامه ، اطلاعات دریافتی بر اساس زیرساخت موجود برای سرویس دهنده ارسال می گردد.
سرویس گیرنده نیز ممکن است اطلاعات حساسی را ( اغلب به منظور تائید دریافت ) برای سرویس گیرنده ارسال نماید .
بنابراین این نوع از برنامه ها نیازمند وجود یک کانال ارتباطی ایمن به منظور مبادله اطلاعات می باشند .
به منظور آشنائی بیشتر با اهمیت و جایگاه یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده ، به بررسی تجارت الکترونیکی و از زاویه برنامه های وب و ارتباطات ایمن ، اشاره می گردد .
اینترنت فرصتی استثنائی و طلائی را برای سازمان ها و موسسات ارائه دهنده کالا و یا خدمات فراهم نموده است که بتوانند با استفاده از زیرساخت موجود ، خدمات و یا کالای خود را در اخیتار متقاضیان و در عرصه جهانی قرار دهند .حجم فروش online در سال 2002 ، نشاندهنده رشد چشمگیر تجارت الکترونیکی است : امریکا 47 / 43 میلیارد دلار ، اروپا 29 / 28 میلیارد دلار ، آسیای جنوب شرقی 15 میلیارد دلار ، امریکای لاتین 3 / 2 میلیارد دلار و افریقا ، 4 میلیون دلار .
بر اساس گزارش DoC)Department of Commerce) امریکا ، فروش Online در سه ماهه چهارم سال 2002 بالغ بر 33 / 14 میلیارد دلار بوده که نسبت به مدت مشابه در سال 2001 ، بیش از 2 / 28 درصد رشد و نسبت به سه ماهه سوم سال 2002 ، بیش از 3 / 29 درصد را داشته است .
علیرغم وجود مزایا و فرصت های تجاری online ، در این رابطه چالش ها و مسائل خاصی وجود داشته که می بایست به دقت بررسی و راهکار مناسب برای آنان انتخاب گردد.
بر اساس مطالعه ای که توسط موسسه Yankelovich Partners ، انجام شده است ، هشتاد و پنج درصد افراد شرکت کننده درنظر سنجی ، به این موضوع اشاره داشته اند که آنان اطمینان لازم در خصوص ارسال شماره کارت اعتباری خود را در اینترنت ندارند.
خریداران صرفا" پس از حصول اطمینان از وجود امنیت لازم ، اقدام به ارسال اطلاعات و خرید کالا و یا خدمات از طریق وب سایت ها ی مربوطه می نمایند.
بدیهی است شرط اولیه موفقیت سایت های تجاری Online ، افزایش ضریب اعتماد کاربران می باشد .در این راستا، ایجاد یک زیرساخت ارتباطی ایمن ، جایگاه و اهمیت خاص خود را پیدا می کند .
به منظور ایمن سازی تجارت الکترونیکی ، می بایست از یک زیرساخت قابل اعتماد و ایمن ، استفاده گردد.
با استفاده از رمزنگاری PKI) Public Key Infrastructure ) و تکنولوژی امضای دیجیتالی از طریق گواهینامه های دیجتالی SSL) Secure Sockets Layer) ، امکان تائید کاربران ، پیوستگی و انسجام داده ها ، حصول اطمینان از عدم خواندن و یا دستکاری اطلاعات ارسالی و سایر ملزومات امنیتی لازم در خصوص تجارت الکترونیکی، فراهم می گردد .به منظور ایجاد یک زیرساخت ایمن برای فعالیت های تجاری ، به دو عنصر مهم زیر نیاز می باشد : گواهینامه های دیجیتالی برای سرویس دهندگان وب تا امکان تائید ، پیوستگی و محرمانگی گواهینامه های دیجیتالی برای سرویس دهندگان وب تا امکان تائید ، پیوستگی و محرمانگی اطلاعات در زمان رمزنگاری ، فراهم گردد .
یک سیستم مدیریت پرداخت online ایمن که امکان فعالیت های تجاری online را برای وب سایت های مربوطه فراهم و بصورت اتوماتیک درخواست ها را مدیریت نماید (دریافت ، پردازش ، پرداخت ) .
در ادامه با عناصر لازم به منظور ایجاد یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده ، آشنا خواهیم شد .
رمزنگاری کلید عمومی و گواهینامه دیچِیتالی رمزنگاری کلید عمومی و سیستم زیربنائی SSL از جمله ملزومات مورد نیاز برای هر زیرساخت مطمئن در تجارت الکترونیکی می باشند.
رمزنگاری ، فرآیندی است که در آن اطلاعات بگونه ای تبدیل می گردند که برای تمامی افراد ( به غیر از گیرندگان تائید شده )، نامفهوم و