گواهینامه های دیجیتالی - ایجاد یک ارتباط ایمن در برنامه های وب( بخش اول )

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

  • با استفاده از چه مکانیزمهائی می توان دستیابی کاربران به یک برنامه را کنترل و پس از شناسائی آنان ، امکان استفاده از برنامه را برای کاربران تائید شده و متناسب با سطح دستیابی فراهم نمود؟

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

در مجموعه مقالاتی که با عنوان "امنیت برنامه های وب " ارائه گردید، اولین محور امنیتی در رابطه با  برنامه های وب ، بررسی  و در این راستا با تمرکز بر روی پلت فرم دات نت مایکروسافت ، با روش های پیاده سازی آن  در برنامه های وب دات نت ، آشنا شدیم . در مجموعه مقالاتی که ارائه خواهد شد ، به بررسی محور دوم امنیت در برنامه های وب خواهیم پرداخت . در این رابطه لازم است در ابتدا با ملزومات لازم به منظور ایجاد یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده آشنا شده و در ادامه به بررسی نحوه پیاده سازی یک ارتباط ایمن در برنامه های وب دانت نت ، خواهیم پرداخت .

ضرورت ایجاد یک ارتباط ایمن بین سرویس گیرنده  و سرویس دهنده 
همانگونه که اشاره گردید ، برخی از برنامه های وب ، اطلاعات حساسی را از سرویس گیرنده اخذ و در ادامه ، اطلاعات دریافتی  بر اساس زیرساخت موجود برای سرویس دهنده ارسال می گردد. سرویس گیرنده نیز ممکن است اطلاعات حساسی را ( اغلب به منظور تائید دریافت ) برای سرویس گیرنده ارسال نماید . بنابراین  این نوع از برنامه ها نیازمند وجود یک کانال ارتباطی ایمن به منظور مبادله اطلاعات می باشند . به منظور آشنائی بیشتر با اهمیت و جایگاه یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده ، به بررسی تجارت الکترونیکی و از زاویه برنامه های وب و ارتباطات ایمن ، اشاره می گردد . 
اینترنت فرصتی استثنائی و طلائی را برای سازمان ها و موسسات ارائه دهنده کالا و یا خدمات فراهم نموده است که بتوانند با استفاده از زیرساخت موجود ، خدمات و یا کالای خود را در اخیتار متقاضیان و در عرصه جهانی قرار دهند .حجم فروش 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  ، آشنا خواهیم شد.

http://www.srco.ir/Articles/DocView.asp?ID=213

/ 0 نظر / 59 بازدید