عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
ايجاد يک ارتباط ايمن در برنامه های وب( بخش اول ) |
مديريت وب |
18155 |
22 |
4.1 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
ايجاد يک ارتباط ايمن در برنامه های وب ( بخش اول )
ايجاد يک ارتباط ايمن در برنامه های وب(
بخش اول )
پرداختن به مقوله امنيت در برنامه های وب با توجه به
ماهيت اين نوع از برنامه ها و جايگاه آنان در ارائه سرويس ها و خدمات
پيشرفته ای همچون تجارت الکترونيکی بسيار حايز اهميت است . زمانيکه در رابطه با
امنيت برنامه های وب بحث می شود، می بايست بر
روی دو محور اساسی متمرکز گرديد:
-
با استفاده از چه مکانيزمهائی می توان
دستيابی کاربران به يک برنامه را کنترل و پس از شناسائی آنان ، امکان استفاده از
برنامه را برای کاربران تائيد شده و متناسب با سطح دستيابی فراهم نمود؟
-
برخی از برنامه های وب ، اطلاعات حساس
متعددی را از طريق محيط انتقال و زير ساخت ايجاد شده ، ارسال و يا دريافت می
دارند . در اين رابطه از چه نوع مکانيزمهائی می بايست استفاده گردد تا اين اطمينان
حاصل شود که اطلاعات حساس ارسالی (نظير اطلاعات مربوط به کارت های اعتباری ) ، توسط
افراد غير مجاز قابل خواندن نبوده و امکان دستکاری آنان نيز وجود نداشته
باشد.دريافت کننده اطلاعات، می بايست از صحت اطلاعات ارسالی،اطمينان حاصل نمايد .
اين نوع از برنامه های وب ، نيازمند استفاده از يک ارتباط ايمن بين سرويس گيرنده و
سرويس دهنده می باشند . وجود يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده در
برنامه ها ی وب تجاری و يا سايت هائی که بر روی آنان کالا و يا خدماتی عرضه می گردد
، بسيار حائز اهميت بوده و از موارد حياتی در موفقيت آنان محسوب می گردد .
در مجموعه مقالاتی که با عنوان "امنيت برنامه های وب " ارائه گرديد، اولين
محور امنيتی در رابطه با برنامه های وب
، بررسی و در اين راستا با تمرکز بر روی پلت فرم دات نت
مايکروسافت ، با روش های پياده سازی آن
در برنامه های وب دات نت ، آشنا شديم . در مجموعه مقالاتی
که ارائه خواهد شد ، به بررسی محور دوم امنيت در برنامه های وب
خواهيم پرداخت . در اين رابطه لازم است در ابتدا با ملزومات لازم به منظور ايجاد يک
ارتباط ايمن بين سرويس گيرنده و سرويس دهنده آشنا شده و در ادامه به بررسی نحوه
پياده سازی يک ارتباط ايمن
در برنامه های وب دانت نت ، خواهيم پرداخت .
ضرورت ايجاد
يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده
همانگونه که اشاره گرديد ، برخی از برنامه های وب ، اطلاعات حساسی را از
سرويس گيرنده اخذ و در ادامه
، اطلاعات دريافتی بر اساس زيرساخت موجود برای سرويس
دهنده ارسال می گردد. سرويس گيرنده نيز ممکن است اطلاعات حساسی را ( اغلب به منظور
تائيد دريافت ) برای سرويس گيرنده ارسال نمايد . بنابراين اين نوع از برنامه
ها نيازمند وجود يک کانال ارتباطی ايمن به منظور مبادله اطلاعات می باشند . به
منظور آشنائی بيشتر با اهميت
و جايگاه يک ارتباط ايمن بين سرويس گيرنده و سرويس
دهنده ، به بررسی تجارت الکترونيکی و از زاويه برنامه های وب و ارتباطات ايمن ،
اشاره می گردد .
اينترنت فرصتی استثنائی و طلائی را برای سازمان ها و موسسات ارائه دهنده کالا و يا
خدمات فراهم نموده است که بتوانند با استفاده از زيرساخت موجود ، خدمات و يا کالای
خود را در اخيتار متقاضيان و در عرصه جهانی قرار دهند .حجم فروش
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 پيش بينی شده است ، استفاده
می گردد .
مسئله مديريت کليد
در هر سيستم رمزنگاری ،مجموعه ای از مسائل عملی و سوالات مختلف در
رابطه با وجود امنيت لازم ، ميزان اعتماد پذيری سيستم و رعايت حريم اطلاعات خصوصی
، مطرح می گردد. روش های رمزنگاری کليد عمومی و خصوصی که به آنان اشاره گرديد، دارای امکانات لازم به منظور پاسخگوئی وارائه اطمينان لازم در خصوص امنيت اطلاعات
می باشند . مثلا" مرورگرهای وب از کليد عمومی يک وب سايت به منظور ارسال شماره کارت
اعتباری برروی وب استفاده می نمايند . با روشی مشابه ، شخصی که به فايل ها و يا
اطلاعات حفاظت شده و رمز شده دستيابی پيدا می نمايد ، می تواند با استفاده از يک
کليد خصوصی ، اقدام به
رمزگشائی آنان نمايد . در عمل ، هر يک از مسائل فوق ،
نيازمند استفاده از يک کليد عمومی تضمين شده بوده که با استفاده از آن صحت عمليات
رمزنگاری بين دو طرف درگير در فرآيند رمزنگاری تضمين و امکان دخالت افراد غير مجاز
نيز سلب گردد . رويکرد فوق ، سوالات متنوع ديگری را ذهن ايجاد می
نمايد :
-
چگونه می توان اطمينان حاصل نمود که کليد عمومی استفاده شده توسط
مرورگر به منظور ارسال اطلاعات کارت اعتباری ، همان کليد عمومی مورد نظر وب سايت
دريافت کننده اطلاعات کارت اعتباری می باشد؟ ( کليد عمومی تقلبی نباشد ) .
-
چگونه می توان با اطمينان اقدام به مبادله کليدهای عمومی خود برای
متقاضيان نمود تا آنان با استفاده از آن اقدام به رمزنگاری و ارسال اطلاعات نمايند
؟
به منظور پاسخگوئی به اين نوع از
سوالات و رفع نگرانی های موجود ، می بايست فرآيند نسبت دهی يک کليد عمومی ( يک
ارتباط ايمن با يک کليد عمومی ، آغاز می گردد) به يک entity
( يک شی دلخواه که در يک تراکنش فعاليت دارد ) بصورت ايمن و مطمئن انجام شود (
Secure Binding ) .
در بخش دوم اين مقاله با امضای
ديجيتالی ، گواهينامه های ديجيتالی X.509 ،
گواهينامه ديجيتالی سرويس دهنده SSL و
پروتکل SSL ، آشنا خواهيم شد.