چکیده گسترش استفاده از تکنولوژی وب و توسعه برنامه هایی که برای کارکرد درین بستر تولید میشوند مباحث مربوط به امنیت پایگاههای داده ای بعد جدیدتری پیدا کرده اند.
هر چند از آغاز پیداش پایگاههای داده همواره امنیت و تامین آن یک دغدغه مهم و پیاده سازی مناسب و کارای آن یک خصوصیت بنیادی در پایگاههای داده بوده است اما بهر روی بحث امنیت (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 از جمله ملزومات مورد نیاز برای هر زیرساخت مطمئن در تجارت الکترونیکی می باشند.
رمزنگاری ، فرآیندی است که در آن اطلاعات بگونه ای تبدیل می گردند که برای تمامی افراد ( به غیر از گیرندگان تائید شده )، نامفهوم و عملا" غیرقابل استفاده باشند .
در فرآیند فوق ، از فرمول های ریاضی (الگوریتم های رمزنگاری ) و اعداد ( کلید ) ، به منظور رمزنگاری و رمزگشائی اطلاعات استفاده می گردد .
رمزنگاری کلید خصوصی ( private key ) منداولترین نوع رمزنگاری مبتنی بر کلید ، رمزنگاری "کلید خصوصی" است .
به این نوع رمزنگاری ، متقارن ، سنتی ، رمز مشترک ، کلید رمز ، نیز گفته می شود .
در این نوع رمزنگاری ، فرستنده و گیرنده از کلید استفاده شده به منظور رمزنگاری اطلاعات ، آگاهی دارند.
رمزنگاری کلیدخصوصی ، گزینه ای مناسب به منظور مبادله اطلاعات بر روی اینترنت و یا ذخیره سازی اطلاعات حساس در یک بانک اطلاعاتی ، ریجستری و یا یک فایل می باشد .
از روش فوق ، به منظورایمن سازی ارسال اطلاعات در شبکه های عمومی استفاده می گردد ( از گذشته تا کنون ) .
ایده اولیه و اساسی در چنین سیستم هائی ، "اشتراک یک رمز" بوده و دو گروه شرکت کننده در مبادله اطلاعات ، بر روی یک "کلید رمزمشترک " ، با یکدیگر توافق می نمایند.
بدین ترتیب امکان رمزنگاری و رمزگشائی پیام ها برای هر یک از آنان با توجه به آگاهی از "کلید رمز " ، فراهم می گردد .
شکل زیر نحوه عملکرد رمزنگاری کلید خصوصی را نشان می دهد .
رمز نگاری کلید خصوصی رمزنگاری متقارن و یا کلید خصوصی دارای چندین نقطه ضعف می باشد.
مبادله کلیدهای رمز در شبکه های بزرگ امری دشوار و مشکل است .علاوه بر این ، اشتراک کلیدهای رمز ، مستلزم این واقعیت است که فرستندگان و گیرندگان می بایست معتبر بوده و قبل از برقراری ارتباط ، آشنائی لازم را نسبت به یکدیگر داشته باشند( با تمام افرادیکه قصد ارتباط ایمن با آنان وجود داشته باشد ) .
همچنین ، این نوع سیستم های رمزنگاری ، نیازمند استفاده از یک کانال ایمن به منظور توزیع کلیدهای " رمز" می باشند .
در صورتیکه چنین کانال ایمنی وجود داشته باشد ، چرا از آن به منظور ارسال تمامی پیام رمز استفاده نشود ؟
درسیستم های مبتنی بر وب که دارای تعاملات گذرا و کاربران متعددی می باشند، به امکانات قدرتمندتری در ارتباط با رمزنگاری نیاز خواهد بود.بنابراین ، رمزنگاری مبتنی بر کلید، عملا" به منظورایجاد یک ارتباط ایمن به تنهائی کافی نخواهد بود.
توزیع و عرضه کلید ( یکی از مسائل مهم در ارتباط با مدیریت کلید ) ، از جمله مسائل مهم و درعین حال موثر به منظور شناخت سیستم های رمزنگاری جدید می باشد.
رمزنگاری کلید خصوصی دارای نقشی مهم در پروتکل SSL است( به همراه رمزنگاری کلید عمومی نامتقارن ) .
رمزنگاری کلید عمومی ( Public Key ) رمزنگاری کلید عمومی که از آن با نام رمزنگاری نامتقارن نیز یاد می گردد ، دارای یک تفاوت مهم با رمزنگاری کلید خصوصی است .
رمزنگاری کلید عمومی از دو کلید متفاوت استفاده می نماید : یک کلید برای رمزنگاری و کلیدی دیگر برای رمزگشائی .
در رمزنگاری کلید خصوصی ، فرض بر این است که فرستنده و گیرنده دارای آگاهی لازم دررابطه با کلید استفاده شده در فرآیند رمزنگاری می باشند .
در رمزنگاری کلید عمومی ، با استفاده از یک روش کاملا" ایمن یک کلید برای ارسال کننده اطلاعات ایجاد و وی با استفاده از کلید فوق ، اقدام به رمزنگاری و ارسال پیام رمز شده برای گیرنده می نماید .
امکان رمزگشائی پیام رمز شده صرفا" توسط دریافت کننده ، امکان پذیر خواهد بود.
در رمزنگاری کلید عمومی ، سیستم یک زوج کلید خصوصی و عمومی ایجاد می نماید .
کلید عمومی برای شخصی که از آن به منظور رمزنگاری یک پیام استفاده می نماید ، ارسال می گردد.
وی پس از رمزنگاری پیام با استفاده از کلید عمومی که دراختیار دارد ، پیام رمز شده را ارسال می نماید .
دریافت کننده با استفاده از کلید خصوصی ، اقدام به رمزگشائی پیام می نماید .( ماهیت کلید خصوصی استفاده شده در رمزنگاری کلید عمومی ، مشابه کلید خصوصی استفاده شده در رمزنگاری کلید خصوصی نمی باشد ) .حتی اگر یک فرد مزاحم ، به کلید عمومی دستیابی پیدا نماید وی نمی تواند با استفاده از آن اقدام به رمزگشائی پیام رمز شده نماید ، چراکه رمزگشائی پیام ، صرفا" با استفاده از کلید خصوصی امکان پذیر می باشد .
برخلاف رمزنگاری کلید خصوصی ، کلید های استفاده شده در رمزنگاری کلید عمومی چیزی بمراتب بیشتر از رشته های ساده می باشند .
کلید در این نوع رمزنگاری دارای یک ساختار خاص با هشت فیلد اطلاعاتی است : از دو فیلد آن به منظور رمزنگاری با استفاده از کلید عمومی استفاده می گردد و شش فیلد دیگر به منظور رمزگشائی پیام با استفاده از کلید خصوصی مورد استفاده قرار می گیرد.
در سیستم رمزنگاری کلید عمومی با توجه به عدم ضرورت مبادله رمز مشترک ، اولین مسئله در مدیریت کلید برطرف می گردد.
رمزنگاری کلید عمومی ، شامل مراحل زیر است : مرحله اول : وب سایت مورد نظر ، یک زوج کلید عمومی و خصوصی را ایجاد می نماید .
رمز نگاری کلید عمومی (مرحله اول) مرحله دوم : وب سایت موردنظر ، کلید عمومی را برای کاربر ارسال می نماید .
رمز نگاری کلید عمومی (مرحله دوم) مرحله سوم : کاربر از کلید عمومی به منظور رمزنگاری داده مورد نظر خود استفاده می نماید (مثلا" شماره کارت اعتباری) رمز نگاری کلید عمومی (مرحله سوم) مرحله چهارم : کاربر پیام رمز شده ( در این مثال عدد رمز شده ) را برای سرویس دهنده ارسال می نماید .
رمز نگاری کلید عمومی (مرحله چهارم) مرحله پنجم : سرویس دهنده با استفاده از کلید خصوصی ، پیام رمز شده دریافتی را رمزگشائی می نماید .
رمز نگاری کلید عمومی (مرحله پنجم) سیستم های مدرن رمزنگاری یک رویکرد ترکیبی در سیستم های جدید رمزنگاری از ترکیب رمرنگاری مبتنی بر کلید عمومی و کلید خصوصی ، استفاده می گردد.
هر یک از روش های فوق دارای مزایای خاص خود بوده که با استفاده و ترکیب مزایای موجود در هر یک می توان یک مدل جدید رمزنگاری را ایجاد نمود.
حجم عملیات محاسباتی در مدل رمزنگاری کلید عمومی بالا می باشد ( در مقایسه با مدل رمزنگاری کلید خصوصی ) .
با توجه به سرعت مناسب مدل رمزنگاری کلید خصوصی ( متقارن ) در رابطه با حجم گسترده ای از اطلاعات ، در سیستم های رمزنگاری پیشرفته ، عموما" از مدل رمزنگاری کلید عمومی به منظور عرضه کلید استفاده شده و در ادامه از مدل رمزنگاری خصوصی به منظور رمزنگاری حجم بالائی از اطلاعات استفاده می گردد .
از سیستم های پیشرفته رمزنگاری در پروتکل SSL و به منظور ایمن سازی تراکنش های وب و یا ایمن سازی مدل نامه های الکترونیکی نظیر S/MIME که در محصولاتی نظیر مرورگر نت اسکیپ و IE پیش بینی شده است ، استفاده می گردد .
مسئله مدیریت کلید در هر سیستم رمزنگاری ،مجموعه ای از مسائل عملی و سوالات مختلف در رابطه با وجود امنیت لازم ، میزان اعتماد پذیری سیستم و رعایت حریم اطلاعات خصوصی ، مطرح می گردد.
روش های رمزنگاری کلید عمومی و خصوصی که به آنان اشاره گردید، دارای امکانات لازم به منظور پاسخگوئی وارائه اطمینان لازم در خصوص امنیت اطلاعات می باشند .
مثلا" مرورگرهای وب از کلید عمومی یک وب سایت به منظور ارسال شماره کارت اعتباری برروی وب استفاده می نمایند .
با روشی مشابه ، شخصی که به فایل ها و یا اطلاعات حفاظت شده و رمز شده دستیابی پیدا می نماید ، می تواند با استفاده از یک کلید خصوصی ، اقدام به رمزگشائی آنان نماید .
در عمل ، هر یک از مسائل فوق ، نیازمند استفاده از یک کلید عمومی تضمین شده بوده که با استفاده از آن صحت عملیات رمزنگاری بین دو طرف درگیر در فرآیند رمزنگاری تضمین و امکان دخالت افراد غیر مجاز نیز سلب گردد .
رویکرد فوق ، سوالات متنوع دیگری را ذهن ایجاد می نماید : چگونه می توان اطمینان حاصل نمود که کلید عمومی استفاده شده توسط مرورگر به منظور ارسال اطلاعات کارت اعتباری ، همان کلید عمومی مورد نظر وب سایت دریافت کننده اطلاعات کارت اعتباری می باشد؟
( کلید عمومی تقلبی نباشد ) .
چگونه می توان با اطمینان اقدام به مبادله کلیدهای عمومی خود برای متقاضیان نمود تا آنان با استفاده از آن اقدام به رمزنگاری و ارسال اطلاعات نمایند ؟
امنیت وب سرورها در شبکه مقدمه با ورود اینترنت، مسئله امنیت مورد توجه بخش های مختلف آن قرار گرفت.
یکی از این بخش ها و شاید مهم ترین بخش، قسمت سرورهای آن بود.
در این متن ضمن معرفی انواع سرور ها به طور خاص به مسئله امنیت در وب سرور ها پرداخته و سعی کرده ایم تا با معرفی و مشکلات امنیت آن ، کاربران و دانشجویان علاقمند را با اکثر این مشکلات آشنا سازیم.
در ادامه به بحث در مورد چگونگی آشنایی با آسیب پذیری، مانند اسکنرهای آسیب پذیری و چگونگی برخورد با این مشکلات و حملات، مانند استفاده از فایروال ها پرداخته ایم.
شماتیکی از وب سرور ها به گزارش گروه ویژه امنیت ملی استفاده از شبکههای کامپیوتری در سالیان اخیر روندی تصاعدی پیدا کرده است.
شبکههای کامپیوتری، زیر ساخت مناسب برای سازمانها و موسسات را در رابطه با تکنولوژی اطلاعات فراهم مینمایند.
مقوله تکنولوژی اطلاعات به همان اندازه که جذاب و موثر است، در صورت عدم رعایت اصول امنیت به همان میزان و یا شاید بیشتر، نگران کننده و مسئله آفرین خواهد بود.
اغلب سازمانهای دولتی و خصوصی در کشور، دارای وب سایت اختصاصی خود در اینترنت میباشند.
سازمانها برای ارائه وب سایت، یا خود امکانات مربوطه را فراهم نموده و با نصب تجهیزات سخت افزاری و تهیه پهنای باند لازم، اقدام به عرضه سایت خود در اینترنت نمودهاند یا از امکانات مربوط به شرکتهای ارائه دهنده خدمات میزبانی استفاده مینمایند.
بدون تردید سرویس دهنده وب یکی از مهمترین نرم افزارهای موجود در دنیای اینترنت محسوب میگردد.
کاربرانی که به سایت یک سازمان یا موسسه متصل و درخواست اطلاعاتی را مینمایند، خواسته آنان در نهایت در اختیار سرویس دهنده وب گذاشته میشود.
سرویس دهنده وب، اولین نقطه ورود اطلاعات و آخرین نقطه خروج اطلاعات از یک سایت است.
نصب و پیکربندی مناسب چنین نرم افزار مهمی، بسیار حائز اهمیت بوده و تدابیر امنیتی خاصی را طلب مینماید.
تعریف سرور به سرویسگیرندهها و استفاده کنندگان از سرویسها، میزبان و به سرویس دهندهها و ارائه کنندگان سرویس، سرور گفته میشود.
سرورها بسته به نوع خدماتی که ارائه میدهند دستهبندیهای متفاوتی دارند.
به عنوان مثال، به سرورهای زیر نگاهی بیاندازید: Mail Server: سروری که به کاربران شبکه خدمات ایمیل را ارائه میدهد.
DHCP Server: سروری که به کاربران شبکه به طور خودکار آدرس IP میدهد.
DNS Server: سروری که امکان تبدیل درخواست کاربران شبکه، را برای دسترسی به سایتهای اینترنت، با ارائه آدرس واقعی سایت مزبور میدهد، بدین ترتیب دیگر نیازی به حفظ بودن آدرسهای IP سایتها نخواهد بود.
Web Server: سروری که خدمات تحت وب را از قبیل میزبانی وب و … را ارائه میدهد.
وب سرور در واقع به دو معنی است: برنامه کامپیوتری که مسئول قبول کردن درخواستهای Http از مشتریان است که همان مرورگرهای وب هستند و پاسخها را به همراه یک سری اطلاعات به آنها پست میکنند.
این پاسخها صفحات Html هستند.
بطور مثال اگر در صفحه مرورگر آدرس http://piau.ac.ir/index.php را وارد کنید، یک درخواست به دامنهای که نامش piau.ac.ir است، فرستاده میشود.
آنگاه سرور صفحه index.php را میفرستد.
کامپیوتری است که یک برنامهی کامیپوتری را اجرا میکند و کارایی اش همانند مطالبی است که در بالا گفته شد.
هر کامپیوتری میتواند با نصب نرم افزار سرور به وب سرور تبدیل شود.
در عمل بسیاری از وب سرورها، ویژگیهای زیر را نیز پیادهسازی میکنند: شناسایی: درخواست شناسایی اختیاری قبل از اجازه دسترسی به انواع منابع نه تنها مفاهیم استاتیک (مفاهیم فایلی که بر روی سیستم فایلی وجود دارد) بلکه مفاهیم دینامیک را با یک یا چند ساختار مانند SSI, CGI, SCGI ,FastCGI, JSP ,PHP ,ASP ,ASP.NET اداره میکند.
پشتیبانی از HTTPS تا به کاربران اجازه دهد اتصالات مطمئنی به سرور را بر روی پورت ۴۴۳ به جای ۸۰ برقرار کنند.
فشردهسازی مطالب تا بتوان از حجم پاسخها کم کرد (توسط کدسازیGZIP ).
پشتیبانی از فایلهای بزرگ تا بتواند فایلهای بزرگتر از ۲ گیگا بایت را سرویسدهی کند.
کنترل کردن پهنای باند: تا سرعت پاسخها را محدود کند و شبکه را پر ازدحام نکند و قادر باشد تعداد بیشتری مشتری را سرویس دهی کند.
ترجمه مسیر : وب سرورها قادرند تا کامپوننت مسیر URL را به منابع فایل سیستم محلی (برای درخواستهای استاتیک) و نام برنامه داخلی یا خارجی (برای درخواستهای دینامیک) نگاشت کنند برای مثال کاربر آدرس زیر را درخواست میکند: http://www.example.com/path/file.html مرورگر وب کاربر آنرا به یک اتصال به http://www.example.com با درخواست http 1.1 ترجمه میکند: GET/path/file.html.php HTTP/1.1 HOST:http://www.example.com وب سرور بر روی http://www.example.com، مسیر درخواستی را به آدرس مسیر اصلی اضافه میکند.
آنگاه اگر وب سرور فایلی داشته باشد، آن را خوانده و پاسخ را که مجموعهای از مطالب فایل است به عنوان پاسخ میفرستد.
انواع وب سرور وب سرور داخلی روی شبکه Intranet وب سرور خارجی روی شبکه Internet روی شبکه خصوصی قرار میگیرند.
از اطلاعات مختص به شرکت نگهداری میکند.
دسترسی به این سرور فقط از طریق کاربران داخلی است.
روی شبکه عمومی قرار میگیرد.
از اطلاعات کالاها، خدمات و تجارت شرکت نگهداری میکند.
دسترسی به این سرور از طریق تمام کاربران امکان پذیر که ریسک بالایی دارد.
وب سرور اینترانت وب سرور اینترنت سرورهای اینترنتی سهم استفاده بازار، از نرم افزارهای وب سرور، در زیر نشان داده شده است که در برآورد Netcraft در ژانویه ۲۰۰۹ منتشر شده است.
سهم استفاده بازار، از نرم افزارهای وب سرور آپاچی (Apache) آپاچی یک برنامه اجرایی HTTP Server در محیط کامپیوتری است، که به دلیل برخی از امکانات ویژهای که دارد به سرعت در حال گسترش است.
میتوان گفت که آپاچی برای برنامه نویسان حرفهای برنامهای فوق العاده است که به لحاظ امنیتی نیز به حفاظت سرورها و برنامههای موجود در آنها کمک میکند.
متداولترین استفاده از ویژگیهای این برنامه htaccess است، که طراحان حرفهای در محیط لینوکس از آن بهره میگیرند.
برای نمونه زمانی که بخواهند اولین صفحه در سایت صفحه بخصوصی باشد با یک دستور در آن پرونده (فایل) این امر ممکن میگردد یا زمانی که صاحب سایت مایل نیست که فایلهای موجود در سرور وی توسط دیگران دزدیده شود و بخواهد که مانع از پیوند مستقیم آنها شود آپاچی کمک میکند تا به خواستشان برسند.
زمانی که برنامه نویس بخواهد که محل واقعی صفحات دیده نشود نیز این برنامه مورد استفاده قرار میگیرد.
این وب سرور در همگانی شدن وب نقش بسیار مهمی داشته است.
این وب سرور که به زبان C نوشته شده، دارای قابلیت Cross- Platform بوده و بر روی ماشینهای مختلف قابل اجرا میباشد.
دلیل انتخاب این اسم برای این وب سرور را نیز دو مورد ذکر کردهاند.
اول اینکه به یکی از قبایل قدیمی بومی آمریکا که به خاطر مقاومت و مهارت در ساخت ابزار آلات جنگی مشهور میباشند احترام گذاشته شود و ثانیا به این دلیل که ریشه پروژه به صورت یک سری پچ میباشد.
این وب سرور در یک گروه و به صورت کد باز گسترش یافت و از سال ۱۹۹۶ به عنوان محبوبترین وب سرور برای HTTP در وب جهانی شناخته شده بود ولی در سال ۲۰۰۵ میدان مبارزه را به IIS مایکروسافت باخت و در حال حاضر نزدیک به ۴۹% بازار وب سرورهای جهان را به خود اختصاص داده است.
همچنین MAC OS آن را به عنوان وب سرور اصلی در پشتیبانی از WEB OBJECT خود برگزیده است.
این وب سرور دارای ماژولهای امنیتی خوبی از جمله mod_access, mod_auth, mod_digest میباشد.
آپاچی برای میزبانی هر دو نوع وب ایستا و وب پویا مناسب است.
یکی از کاربردیترین موارد مربوط به آپاچی برای برنامه نویسان استفاده از پرونده (فایل)htaccess است.
برنامه نویس میتواند با اعمال تغییراتی در این پرونده که بر هر شاخهای قابل اضافه شدن است، دستورات ویژه آن شاخه را به سرور ارایه دهد.
برای نمونه اگر بخواهد که در صورت وارد کردن نشانی aa.html نام آن باقی بماند ولی در واقع پرونده main.php?page=bb اجرا شود به وسیله این پرونده قادر به اعمال دستورش خواهد بود.
امروزه عموماً میتوانید آپاچی را در بستههای نرمافزاری لینوکسی که استفاده میکنید، بیابید.
تنها کافیست به برنامهای که مربوط به نصب بستههای نرمافزاری است مراجعه کنید و بسته آپاچی را انتخاب کنید.
به عنوان مثال در لینوکس دبیان یا اوبونتو کافیست به داخل نرمافزار سیناپتیک بروید و بعد از انتخاب آپاچی آن را نصب کنید.
در لینوکس زوزه باید به YaST در قسمت اضافه و حذف نرمافزارها بروید و از آنجا آپاچی را نصب کنید.
پس از اجرای برنامه نصب خودکار، برنامه آماده استفاده است ولیکن هر فرد بنابر نیازهایی که دارد میتواند مشخصات سرور خود را تغییر دهد.
فایل httpd.conf حاوی اطلاعات سرور است که معمولاً با برنامه PHP همخوانی ندارد که با اضافه کردن چند دستور قابل اجرا است.
برای تعریف برنامه PHP دستورات زیر در پرونده مذکور اضافه میشود.
ScriptAlias /php/ “c:/php/” AddType application/x-httpd-php.php Action application/x-httpd-php “/php/php.exe” IIS وب سروری است که ارائه دهنده آن شرکت مایکروسافت میباشد و آخرین نسخه آن IIS7.0 است.
در واقع IIS مجموعهای از سرویسهای اینترنتی است که بصورت یکجا نمایش داده شده است.
طبق آخرین آماری که منتشر شد بعد از وب سرور آپاچی بیشترین محبوبیت را بین کاربران داشته است و هم اکنون نزدیک به ۳۶% بازار وب سرورهای جهان را در اختیار دارد.
پلتفرمی که این وب سرور پشتیبانی میکند Microsoft Windows میباشد و در محیطهای دیگر کار نمیکند.
ورژنهای مختلف آن را در زیر میبینیم § IIS 1.0, Windows NT 3.51 available as a free add-on § IIS 2.0, Windows NT 4.0 § IIS 3.0, Windows NT 4.0 Service Pack 3 § IIS 4.0, Windows NT 4.0 Option Pack § IIS 5.0, Windows 2000 § IIS 5.1, Windows XP Professional,Windows MCE § IIS 6.0, Windows Server 2003 and Windows XP Professional x64 Edition § IIS 7.0, Windows Server 2008 and Windows Vista برای اولین بار مایکروسافت آن را در یک پروژه آکادمیک در دانشگاه اسکاتلند به صورت مجانی عرضه کرد.
و سپس برای اولین بار از آن در Windows NT استفاده کرد که در آن قابلیتActive Server Page یا صفحههای فعال سرور را به آن افزود.
بعدها با تکامل نسخههای ویندوز، IIS هم تکامل پیدا کرد و در نسخه شماره ۶٫۰ آن مایکروسافت پشتیبانی از IPV 6.0 را نیز به آن اضافه کرد.