یکشنبه, ۹ اردیبهشت, ۱۴۰۳ / 28 April, 2024
مجله ویستا

ایجاد یک ارتباط ایمن در برنامه های وب


ایجاد یک ارتباط ایمن در برنامه های وب
پرداختن به مقوله امنیت در برنامه های وب با توجه به ماهیت این نوع از برنامه ها و جایگاه آنان در ارائه سرویس ها و خدمات پیشرفته ای همچون تجارت الکترونیکی بسیار حایز اهمیت است . زمانیکه در رابطه با امنیت برنامه های وب بحث می شود، می بایست بر روی دو محور اساسی متمرکز گردید:
با استفاده از چه مکانیزمهائی می توان دستیابی کاربران به یک برنامه را کنترل و پس از شناسائی آنان ، امکان استفاده از برنامه را برای کاربران تائید شده و متناسب با سطح دستیابی فراهم نمود؟
برخی از برنامه های وب ، اطلاعات حساس متعددی را از طریق محیط انتقال و زیر ساخت ایجاد شده ، ارسال و یا دریافت می دارند . در این رابطه از چه نوع مکانیزمهائی می بایست استفاده گردد تا این اطمینان حاصل شود که اطلاعات حساس ارسالی (نظیر اطلاعات مربوط به کارت های اعتباری ) ، توسط افراد غیر مجاز قابل خواندن نبوده و امکان دستکاری آنان نیز وجود نداشته باشد.دریافت کننده اطلاعات، می بایست از صحت اطلاعات ارسالی،اطمینان حاصل نماید . این نوع از برنامه های وب ، نیازمند استفاده از یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده می باشند . وجود یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده در برنامه ها ی وب تجاری و یا سایت هائی که بر روی آنان کالا و یا خدماتی عرضه می گردد ، بسیار حائز اهمیت بوده و از موارد حیاتی در موفقیت آنان محسوب می گردد .
در مجموعه مقالاتی که با عنوان "امنیت برنامه های وب " ارائه گردید، اولین محور امنیتی در رابطه با برنامه های وب ، بررسی و در این راستا با تمرکز بر روی پلت فرم دات نت مایکروسافت ، با روش های پیاده سازی آن در برنامه های وب دات نت ، آشنا شدیم . در مجموعه مقالاتی که ارائه خواهد شد ، به بررسی محور دوم امنیت در برنامه های وب خواهیم پرداخت . در این رابطه لازم است در ابتدا با ملزومات لازم به منظور ایجاد یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده آشنا شده و در ادامه به بررسی نحوه پیاده سازی یک ارتباط ایمن در برنامه های وب دانت نت ، خواهیم پرداخت .
●ضرورت ایجاد یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده
همانگونه که اشاره گردید ، برخی از برنامه های وب ، اطلاعات حساسی را از سرویس گیرنده اخذ و در ادامه ، اطلاعات دریافتی بر اساس زیرساخت موجود برای سرویس دهنده ارسال می گردد. سرویس گیرنده نیز ممکن است اطلاعات حساسی را ( اغلب به منظور تائید دریافت ) برای سرویس گیرنده ارسال نماید . بنابراین این نوع از برنامه ها نیازمند وجود یک کانال ارتباطی ایمن به منظور مبادله اطلاعات می باشند . به منظور آشنائی بیشتر با اهمیت و جایگاه یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده ، به بررسی تجارت الکترونیکی و از زاویه برنامه های وب و ارتباطات ایمن ، اشاره می گردد .
اینترنت فرصتی استثنائی و طلائی را برای سازمان ها و موسسات ارائه دهنده کالا و یا خدمات فراهم نموده است که بتوانند با استفاده از زیرساخت موجود ، خدمات و یا کالای خود را در اخیتار متقاضیان و در عرصه جهانی قرار دهند .حجم فروش online در سال ۲۰۰۲ ، نشاندهنده رشد چشمگیر تجارت الکترونیکی است : امریکا ۴۷ / ۴۳ میلیارد دلار ، اروپا ۲۹ / ۲۸ میلیارد دلار ، آسیای جنوب شرقی ۱۵ میلیارد دلار ، امریکای لاتین ۳ / ۲ میلیارد دلار و افریقا ، ۴ میلیون دلار . بر اساس گزارش DoC)Department of Commerce) امریکا ، فروش Online در سه ماهه چهارم سال ۲۰۰۲ بالغ بر ۳۳ / ۱۴ میلیارد دلار بوده که نسبت به مدت مشابه در سال ۲۰۰۱ ، بیش از ۲ / ۲۸ درصد رشد و نسبت به سه ماهه سوم سال ۲۰۰۲ ، بیش از ۳ / ۲۹ درصد را داشته است .
علیرغم وجود مزایا و فرصت های تجاری 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 ) .
رمزنگاری ، فرآیندی است که هدف اصلی آن تبدیل اطلاعات بگونه ای است که برای تمامی افراد بجزء افراد تائید شده ، اطلاعات نامفهوم و عملا" غیرقابل استفاده باشد . در فرآیند فوق ، از فرمول های ریاضی (الگوریتم های رمزنگاری ) و اعداد ( کلید ) ، به منظور رمزنگاری و رمزگشائی اطلاعات استفاده می شود .
الگوریتم های رمزنگاری به دو گروه عمده تقسیم می گردند :
●الگوریتم های محدود : در این نوع الگوریتم ها ، محور امنیت اطلاعات بر محرمانه نگه داشتن الگوریتم استفاده شده در فرآیند رمزنگاری استوار است .
● الگوریتم های مبتنی بر کلید : در این نوع الگوریتم ها ، کلید محرمانه تلقی شده و الگوریتم می تواند در دسترس عموم باشد .
در این رابطه از دو مدل رمزنگاری عمده استفاده می گردد :
۱ـ کلید خصوصی ( متقارن ) : فرستنده و گیرنده از یک کلید یکسان به منظور رمزنگاری و رمزگشائی استفاده می نمایند .
۲ـ کلید عمومی ( نامتقارن ) : به ازای هر کاربر از دو کلید استفاده می شود. یکی از کلیدها عمومی بوده و در دسترس همگان قرار داشته و کلید دوم بصورت محرمانه می باشد.
●ویژگی مدل رمزنگاری کلید خصوصی
۱ـ رمزنگاری و رمزگشائی داده با استفاده از کلید یکسانی انجام می شود .
۲ـ تمامی کاربرانی که در یک گروه عضویت داشته و قصد اشتراک داده را بین خود دارند ، می بایست دارای کلید یکسانی باشند .
۳ـ در صورتیکه یک کلید د چار مشکل گردد ( لورفتن ) ، تمامی کلید ها می بایست تعویض و با کلیدی جدید جایگزین گردند .
۴ـ مهمترین مسئله در ارتباط با این مدل رمزنگاری ، عدم وجود امنیت لازم به منظور توزیع کلید است .
●ویژگی مدل رمزنگاری کلید عمومی
۱ـ عدم استفاده از کلیدهای مشابه
۲ـ هر کاربر دارای یک زوج کلید ( عمومی ، خصوصی ) می باشد . از کلید عمومی به منظور رمزنگاری داده و از کلید خصوصی به منظور رمزگشائی داده استفاده می گردد.
۳ـ این مدل رمزنگاری تقریبا" ۵۰۰ مرتبه کندتر از رمزنگاری کلید خصوصی ( متقارن ) است .
۴ـ از مدل رمزنگاری عمومی به منظور مبادله کلید خصوصی و امضای دیجیتال استفاده می شود .
●Hash
یک Hash که به آن Checksum ، پیام Digest و یا اثرانگشت ، نیز گفته می شود ، فرآیندی است که بصورت ریاضی حجم یک جریان از داده را به یک طول ثابت کاهش می دهد ( معمولا" ۱۲۸ و یا ۱۶۰ بیت ) . عملکرد hash ، مشابه اثرانگشت یک شخص می باشد. اثرانگشت ، پارامتری منحصربفرد به منظور تشخیص هویت افراد بوده و در ادامه با استفاده از آن امکان دستیابی به سایر مشخصات افراد نظیر : رنگ چشم ، قد ، جنسیت و سایر موارد دلخواه ، فراهم می گردد . اکثر توابع Hash از لحاظ رمزنگاری دارای عملکردی مشابه توابع رمزنگاری می باشند . در حقیقت ، برخی توابع hash صرفا" تغییرات اندکی را در توابع رمزنگاری ایجاد نموده اند . اکثر عملیات با دریافت یک بلاک از داده شروع و در ادامه با استفاده از یک فرآیند تکرارشونده و بکارگیری یک الگوریتم رمزنگاری ، تغییرات لازم در ارتباط با بیت ها ، اعمال می شود. hash ، دارای ویژگی های مهم زیر می باشد :
۱ـ امکان استنتاج ورودی از طریق خروجی وجود ندارد .
۲ـ نمی توان دو ورودی را پیدا کرد که به ازای آنان خروجی یکسانی تولید گردد : احتمال تولید مقادیر Hash یکسان برای دو مجموعه متفاوت از داده ها کمتر از ۰۰۱ . / درصد است .
الگوریتم های hashing ، از یک تابع ایمن رمزنگاری نظیر Message Digest ۵)MD۵) و یا Secure Hash Algoritm)SHA) به منظور تولید یک مقدار Hash مرتبط با داده ورودی استفاده می نمایند . Hash ، یک نوع خاص از رمزنگاری یک طرفه است . برخی افراد ، hashing را به عنوان یک مدل رمزنگاری تلقی می نمایند . Hashing عملا" یک مدل رمزنگاری نمی باشد چراکه Hash نمی تواند رمزگشائی گردد ( بدست آوردن مقدار ورودی با اسنتاد و آنالیز مقدار خروجی ) .
●امضای دیجیتال
امضای دیجیتال ، ماحصل رمزنگاری مقدار Hash داده مبادله شده بوده و روشی ایمن به منظور امضای الکترونیکی اطلاعات با استفاده از کدها ویا علائمی است که از لحاظ الکترونیکی معادل یک امضای دستی می باشند. امضای دیجیتالی، مبتنی بر ترکیب ایده سنتی Hashing داده و رمزنگاری کلید عمومی است .یک مرکز معتبر صدور گواهینامه های دیجیتال ، گواهینامه های دیجیتالی صادرشده را به کلیدهای عمومی مربوط به هر یک نسبت می دهد . فرآیند امضاء ، مخالف فرآیند رمزنگاری است : از کلید خصوصی به منظور رمزنگاری Hash و از کلید عمومی برای بررسی صحت امضاء ( رمزگشائی ) استفاده می شود .
●فرآیند امضای داده توسط فرستنده پیام :
۱ـ دریافت پیام اولیه و محاسبه یک مقدار Hash با استفاده از یک الگوریتم hashing
۲ـ رمزنگاری Hash توسط یک تابع رمزنگاری و اعمال کلید خصوصی توسط فرستنده پیام ( پیام اولیه به همراه مقدار Hash رمز شده ، یک پیام دیجیتالی امضاء شده را تشکیل می دهند ) .
۳ـ ارسال پیام دیجیتالی امضاء شده برای گیرنده
●فرآیند بررسی صحت امضاء ارسالی همراه داده :
۱ـ پس از دریافت پیام توسط گیرنده ، در ابتدا ، Hash رمز شده با استفاده از کلید عمومی فرستنده رمزگشائی می گردد ( Hash رمزگشائی شده ) .
۲ـ محاسبه محلی مقدار Hash پیام ارسالی با استفاده از یک الگوریتم Hashing
۳ـ مقایسه نتایج بدست آمده در مراحل قبل : Hash رمزگشائی شده با مقدارمحلی Hash مقایسه و در صورتیکه نتیجه یکسان باشد ، صحت و اعتبار پیام ارسال شده توسط فرستنده تائید می گردد .
لازم است به این موضوع دقت شود که ضرورتی به رمزنگاری محتوی پیام وجود نداشته و صرفا" امضای دیجیتالی رمز می گردد( مگر اینکه شرایط خاصی در ارتباط با محرمانگی محتوی وجود داشته باشد که در چنین مواردی می بایست محتوی نیز رمزنگاری گردد ) . در صورتیکه به هر دلیلی محتوی پیام توسط افراد غیرمجاز تغییر داده شود ، Hash رمز شده اولیه با مقداری که بصورت محلی مجددا" محاسبه می گردد ، مطابقت نداشته و صحت امضای فرستنده تائید نمی گردد . همچنین ، ایجاد یک امضای تقلبی عملا" غیرممکن است ، چراکه افراد غیر مجاز آگاهی لازم در ارتباط با کلید خصوصی را دارا نمی باشند ( رمزنگاری
مقدار محاسبه شده Hash با در نظر گرفتن کلید خصوصی فرستنده انجام خواهد شد ) .
●گواهینامه دیجیتال
قبل از اینکه کاربر B پیامی شامل امضای دیجیتال مربوط به کاربر A را قبول نماید ( پذیرش ) ، می بایست اطمینان لازم در خصوص تعلق کلید عمومی به کاربر A را کسب نموده و مطمئن گردد که شخص دیگری خود را به عنوان کاربر A ، وانموده نکرده باشد. یکی از روش های موجود به منظور حصول اطمینان از ارسال پیام توسط کاربر A ، استفاده از یک مرکز معتبر به منظور تائید تعلق کلید عمومی به کاربر A ، می باشد. چنین مراکزی CA) Certification Authority) نامیده می شوند. پس از تائید هویت کاربر A ، مرکز صدور گواهینامه های دیجیتال ، پیامی شامل نام و کلید عمومی A صادر می نماید . این پیام ، گواهینامه دیجیتال نامیده می شود. گواهینامه دیجیتال ، یک فایل الکترونیکی است که بصورت منحصربفرد افراد و یا وب سایت ها را بر روی اینترنت شناسائی و امکان ارتباطات ایمن و محرمانه را فراهم می نماید.عملکرد گواهینامه دیجیتال ، مشابه کارت شناسائی و یا گواهینامه رانندگی است . کارت های شناسائی با توجه به مجوزهای یک سازمان مسئول ، صادر می گردند . زمانیکه یک فرد درخواست یک کارت ملی را می نماید ، یک موسسه مسئول ، بررسی لازم در ارتباط با هویت فرد متقاضی را انجام و پس از طی مراحل قانونی ( و ملزم نمودن متقاضی به تبعیت از قوانین موجود ) ، کارت شناسائی وی صادرمی گردد . زمانیکه یک کارت شناسائی نظیر یک گواهینامه رانندگی صادر و به دیگران ارائه می گردد ، آنان قادر به شناسائی مالک آن می باشند. این نوع کارت ها دارای مزایای امنیتی زیر می باشند :
۱ـ شامل اطلاعات شخصی به منظور تسهیل در شناسائی و ردیابی صاحب کارت
۲ـ شامل عکس و در صورت لزوم امضای مالک آن بوده تا امکان شناسائی موثرتر صاحب آن فراهم گردد .
۳ـ شامل اطلاعات لازم و مورد نیاز در ارتباط با شناسائی و تماس با مرکز صادرکننده مجوز
۴ـ مقاوم در مقابل دستکاری و جعل
۵ـ صادر شده توسط یک مرکز مجاز تا در صورت بروز شرایطی خاص نظیر گم شدن و یا سرقت ، امکان باطل نمودن آن وجود داشته باشد.
گواهینامه های دیجیتال توسط مراکز مجاز و معتبر ( CA) صادر و از آنان به منظور حصول اطمینان از شناسائی online موجودیت های متفاوت نظیر افراد ، سایت ها و یا کامپیوترها ، استفاده می گردد . یک گواهینامه دیجیتال شامل اطلاعات متفاوتی در ارتباط با تشخیص هویت مالک آن بوده تا بتواند وی را به عنوان یک موجودیت بر روی شبکه ، شناسائی نماید . گواهینامه دیجیتال یک ساختمان داده تعریف شده بر اساس استاندارد X.۵۰۹ می باشد . در این ساختمان داده اطلاعات متنوعی ذخیره می گردد. یک CA ، از کلید خصوصی خود به منظور شناسائی و تائید گواهینامه های صادر شده توسط خود ، استفاده می نماید . یکی از اطلاعات مهمی که در ساختمان داده فوق ، قرار می گیرد ، امضای دیجیتال مربوط به CA می باشد . CA ، یک مقدار Hash را در ارتباط با گواهینامه صادر شده ، ایجاد و آن را با استفاده از کلید خصوصی خود رمز و در نهایت آن را در گواهینامه صادر شده قرار می دهد . هر یک از کاربران می توانند به منظور اطمینان از معتبر بودن گواهینامه دیجیتالی صادر شده ، از تابع hash به همراه کلید عمومی CA استفاده نمایند. PKI ( زیرساخت کلید عمومی ) ، از فرمت X.۵۰۹ نسخه شماره سه گواهینامه دیجیتال استفاده می نماید . شکل زیر ساختار اطلاعات موجود در گواهنیامه دیجیتال را با استفاده از فرمت X.۵۰۹ نشان می دهد .●شماره نسخه : شماره نسخه فرمت گواهینامه را نشان می دهد ( مثلا" نسخه شمار ه سه )
●شماره سریال گواهنیامه : یک شماره سریال منحصربفرد که توسط CA ، در نظر گرفته شده تا در ادامه امکان ردیابی آن و باطل نمودن آن وجود داشته باشد.
●شناسه الگوریتم گواهینامه : الگوریتم های رمزنگاری کلید عمومی و hashing که مراکز CA از آنان به منظور تائید دیجیتالی گواهینامه ها استفاده می نمایند .
‌●مرکز صادر کننده : نام مرکز صادرکننده CA را مشخص می نماید.
●مدت اعتبار : تاریخ شروع و سررسید گواهینامه را مشخص می نماید .
●Subject : نام مالک گواهینامه را مشخص می نماید.
●اطلاعات کلید عمومی subject : کلید عمومی و لیستی از الگوریتم های رمزنگاری کلید عمومی را مشخص می نماید .
●شناسه منحصربفرد صادرکننده : اطلاعات اختیاری که در صورت ضرورت بصورت منحصربفرد اطلاعات صادرکننده را مشخص می نماید .
●‌شناسه منحصربفرد مالک گواهینامه : اطلاعات اختیاری که در صورت ضرورت بصورت منحصربفرد اطلاعات صاحب گواهینامه را مشخص می نماید .
●ضمائم : اطلاعات اضافه ای که زیر ساخت PKI درصورت ضرورت استفاده می نماید.
●امضای دیجیتال مجاز گواهینامه : امضای دیجیتالی CA که در آخرین مرحله ایجاد گواهینامه ، تولید می گردد .
استفاده از گواهینامه های دیجیتال ، اعتبار یک کلید عمومی و انتساب آن به یک فرد معتبر را امکان پذیر می نماید. بدین ترتیب وضعیت مدیریت کلید بهبود یافته و گیرندگان گواهینامه های دیجیتال قادر به تائید CA ، با توجه به آگاهی از کلید عمومی آن می باشند. گیرندگان گواهینامه های دیجیتال ، در مقابل اینکه از کلیدهای عمومی متعلق به تمامی کاربران آگاهی داشته باشند ، با آگاهی از صرفا" یک کلید عمومی (مربوط به CA ) ، قادر به تائید هویت ارسال کنندگان اطلاعات ،خواهند بود.
●مراکز CA ، دارای ویژگی های زیر می باشند :
۱ـ در صورت تائید CA صادرکننده گواهینامه توسط کاربر ، امکان تائید گواهینامه نیز وجود خواهد داشت .
۲ـ مسئولیت تائید و معتبرسازی تمامی مشترکین
۳ـ مسئولیت صدور و مدیریت گواهینامه ها ( درخواست های ارسالی توسط نامه الکترونیکی و یا اینترفیس های وب ) .
۴ـ مسئولیت ابطال و یا تمدید گواهینامه های صادر شده
۵ـ مسئولیت ایجاد سیاست ها و رویه ها
۶ـ چندین CA می تواند در یک ساختار سلسله مراتبی وجود داشته باشد. در صورتیکه CA ریشه معتبر شناخته گردد، هر یک از مراکز CA در سطوح پائین تر نیز معتبر شناخته خواهند ش.د
●مشاهده گواهینامه های دیجیتال
برای مشاهده آخرین وضعیت گواهینامه های دیجیتال بر روی سیستم خود ، برنامه IE را فعال نموده و از طریق منوی Tools گزینه Internet Options را فعال و درادامه با انتخاب Content Tab و فعال نمودن Certificate می توان از وضعیت گواهینامه های دیجیتال ، آگاهی یافت .
●انتقال اطلاعات حساس بر روی یک شبکه مستلزم بکارگیری مکانیزمی است که سه ویژگی زیر را تضمین نماید:
۱ـ امنیت:
داده ارسالی نمی بایست توسط افراد غیر مجاز، استفاده ( خواندن ) گردد .
۲ـ هویت :
افراد شرکت کننده در ارتباط همان افرادی می باشند که ادعا می نمایند .
۳ـ غیرجعلی بودن اطلاعات :
داده دریافت شده در مقصد با داده ارسال شده در مبداء یکسان بوده و اطلاعات دستکاری نشده باشد.
تکنولوژی هائی که یک ارتباط ایمن را ارائه می نمایند ، می بایست مبتنی بر مکانیزمی باشند که سه ویژگی فوق را تضمین نمایند . اینگونه تکنولوژی ها ، عموما" از الگوریتم های رمزنگاری استفاده نموده و با رمز نمودن اطلاعات ، عملا" امکان رمزگشائی و دستیتابی به داده اولیه توسط افراد غیر مجاز را سلب می نمایند. یکی از بهترین الگوریتم های رمزنگاری در حال حاضر ، " رمزنگاری کلید نامتقارن ( کلید عمومی ) " است . نحوه عملکرد این مدل رمزنگاری ساده بوده ولی در آن از الگوریتم های پیچیده ریاضی استفاده شده است .مدل رمزنگاری فوق ، قادر به تامین سه ویژگی اشاره شده می باشد . در ادامه با این مدل رمزنگاری بیشتر آشنا شده و نحوه برخورد آن در جهت تامین هر یک از ویژگی های فوق را بررسی می نمائیم .
●رمزنگاری کلید عمومی ( نامتقارن )
فرض کنید دو کاربر قصد مبادله اطلاعات بر روی یک شبکه را با استفاده از یک روش ایمن داشته باشند . گیرنده دارای دو کلید است که از لحاط ریاضی به نوعی با یکدیگر مرتبط شده اند. کلید ، نوع خاصی از داده است که امکان رمزنگاری و یا رمزگشائی داده را فراهم می نماید. دوکلید فوق دارای یک ارتباط و وابستگی خاص با یکدیگر می باشند . در صورتیکه داده با استفاده از یکی از آنان رمز گردد ، صرفا" با استفاده از کلید دوم ، امکان رمزگشائی داده رمز شده و بازیابی اطلاعات اولیه ، وجود خواهد داشت ( و بالعکس ) . کلیدی که معمولا" بین کاربران مبادله می گردد ، " کلید عمومی" و کلیدی که نزد افراد نگهداری می گردد ، " کلید خصوصی" ، نامیده می شود.
دریافت کننده ،کلید خصوصی خود را هرگز آشکار ( فاش کردن ) نمی نماید ولی می تواند در صورت تمایل کلید عمومی خود را در اختیار افراد دیگر قرار دهد . در صورتیکه شخصی (فرستنده ) قصد ارسال داده محرمانه برای شخص دیگری (گیرنده) را داشته باشد ، وی در ابتدا اطلاعات را با استفاده از کلیدعمومی گیرنده، رمز و در ادامه اطلاعات رمز شده را برای گیرنده ارسال می نماید. صرفا" فردی ( یک گیرنده ) که دارای کلید خصوصی مرتبط با کلید عمومی استفاده شده در مبداء به منظور رمزنگاری می باشد ، قادر به رمزگشائی اطلاعات خواهد بود . شکل زیر مراحل لازم به منظور مبادله داده به صورت ایمن با استفاده از مدل رمزنگاری نامتقارن ( کلید عمومی ) را نشان می دهد :
●رمزنگاری کلید عمومی و امنیت
روش رمزنگاری کلید عمومی ، مبتنی بر رابطه ریاضی بین کلیدهای عمومی و خصوصی بوده و دارای قدرت مناسب و تضمین لازم در خصوص ارائه امنیت بالا در مقابل تهاجمات اطلاعاتی است .ارتباط ریاضی بین کلید عمومی و خصوصی بسیار پیچیده می باشد . رابطه موجود مبتنی بر مضرب اعداد بزرگ است . مضرب استفاده شده یک عدد دویست رقمی می باشد که با توجه به امکانات سخت افزاری موجود به چهار میلیارد سال زمان به منظور تشخیص ارتباط موجود بین دو کلید ، نیاز می باشد( با این فرض که زمان اجرای هر دستورالعمل یک میکروثانیه در نظر گرفته شود) . همانگونه که ملاحظه می گردد امنیت روش رمزنگاری فوق ، بسیار بالا می باشد.رمزنگاری کیلد عمومی، زیرساخت اساسی و اولیه در یک ارتباط ایمن بر روی یک شبکه را فراهم نموده و از آن در پروتکل های ارتباطی ایمن نظیر SSL)Secure Socket Layer) استفاده می گردد. پروتکل SSL ، یک مدل handshake امنیتی است که از آن به منظور ارائه یک ارتباط ایمن بین سرویس دهنده و سرویس گیرنده ، استفاده می گردد .
●رمزنگاری کلید عمومی و تشخیص هویت
رمزنگاری کلید عمومی علیرغم دارا بودن پتانسیل لازم در خصوص ایجاد یک ارتباط ایمن ،تضمین لازم در خصوص اینکه فرستنده همان شخصی است که ادعا می نماید را ارائه نمی نماید .در چنین وضعیتی ، به مدلی به منظور بررسی و تائید هویت افراد ، نیاز می باشد.فرض کنید شما نامه ای الکترونیکی را از شخصی دریافت نموده اید که می دانید متعلق به یکی از دوستانتان است . به منظور ممانعت از خواندن متن نامه توسط افراد غیر مجاز ، از مدل رمزنگاری کلید عمومی که به آن اشاره گردید ، استفاده می گردد. بدین ترتیب اطمینان لازم در خصوص عدم خواندن اطلاعات محرمانه شما توسط سایر افراد، حاصل می گردد. اما یک سوال باقی می ماند و آن اینکه چگونه مطمئن می گردید که نامه ارسالی ، توسط دوست شما ارسال شده است ؟ کلید عمومی شما می تواند توسط هر شخص دیگر دریافت گردد و چنین شخصی می تواند خود را به عنوان دوست شما قلمداد نموده و یک نامه جعلی را برای شما ارسال نماید . در چنین مواردی ، تشخیص هویت و شناسائی فرد ارسال کننده پیام بسیار حائز اهمیت می باشد . صرفا" با حصول اطمینان از شناسائی و تائید فرد ارسال کننده است که می توان به صحت نامه ارسال شده ، اطمینان نمود .
موضوع فوق ، یکی از مسائل اساسی و مهم در برنامه های وب تجارت الکترونیکی محسوب می گردد . در چنین برنامه های تشخیص و شناسائی افراد درگیر در یک ارتباط بسیار حائز اهمیت می باشد . کاربران تمایل دارند که از سایت هائی کالائی را خریداری نمایند که نسبت به هویت و معتبر بودن آنان اطمینان لازم وجود داشته باشد و فروشندگان نیز می بایست اطمینان حاصل نمایند که مشتریان و خریداران آنان ، دقیقا" همان افرادی می باشند که ادعا می نمایند . به عبارت دیگر ، هویت خریداران کالا و یا خدمات می بایست قبل از خرید ،شناسائی و تائید گردد . مسئله تشخیص هویت می تواند به به سایر موارد نیز تعمیم یابد که در آن هدف تشخیص هویت فردی است که قفصد مبادله اطلاعات با آن وجود دارد . تشخیص هویت ، مکانیزمی به منظور شناسائی یک فرد ، سازمان ، شرکت و یا موسسه می باشد . در حقیقت از این طریق یک موجودیت واقعی نظیر انسان و یا یک شرکت به یک موجودیت اینترنتی نظیر یک وب سایت ، یک مرورگر وب و یا یک برنامه پست الکترونیکی ، مپ می گردد .
دراین رابطه و به منظور ارائه راهکار مناسب در جهت تشخیص هویت وشناسائی افراد درگیر در یک ارتباط ، می توان از همان روش رمزنگاری کلید عمومی (نامتقارن) که در بخش قبل به آن اشاره گردید، استفاده نمود. چیزی که با استفاده از کلید عمومی رمز می شود را می توان صرفا" با استفاده از کلید خصوصی رمزگشائی نمود. عکس حالت فوق نیز صادق است . یعنی چیزی که با استفاده از کلید خصوصی رمز می شود را می توان صرفا" با استفاده از کلید عمومی رمزگشائی نمود. بنابراین با تعویض نقش زوج کلید ( عمومی ، خصوصی ) می توان مکانیزمی را به منظور بررسی و تشحیص هویت افراد ایجاد نمود. فرستنده ، اقدام به ارسال پیامی می نماید که با استفاده از کلید خصوصی خود آن را رمز نموده است ، گیرنده با استفاده از کلید عمومی فرستنده ، قادر به رمزگشائی پیام ارسالی می باشد . بدین ترتیب اطمینان لازم در خصوص دریافت پیام از صاحب واقعی مرتبط با کلید خصوصی ، فراهم می گردد. شکل زیر نحوه تشخیص هویت افراد را نشان می دهد .●رمزنگاری کلید عمومی و غیرجعلی بودن اطلاعات
بررسی هویت افراد مستلزم فرآیند دیگری به منظور تشخیص اصالت داده ارسالی ( غیرجعلی بودن ) نیز می باشد.در این رابطه هدف ، حصول اطمینان از این موضوع است که داده دریافتی ، همان داده ارسال شده توسط فرستنده است. با توجه به ماهیت رمزنگاری کلید عمومی ، در صورتیکه یک پیام جعل گردد، دریافت کننده قادر به رمزگشائی آن با استفاده از کلید عمومی فرستنده ، نخواهد بود. علیرغم موضوع فوق ، در برخی حالات ، ممکن است قصد ارسال داده شفاف (Plain ) وجود داشته باشد. در چنین مواردی لازم است ، گیرنده امکان تشخیص هویت ارسال کننده و غیر جعلی بودن پیام را دارا باشد. با استفاده از یک امضای دیجیتالی به افراد اجازه داده شود که بررسی لازم در خصوص جعلی نبودن یک داده شفاف (plain ) را انجام دهند.
یک امضای دیجیتالی ، مشابه یک امضای دستی و معمولی بوده و می توان از آن به منظور تائید هویت فرستده و اطمینان از عدم تغییر داده ( سند ؛ یک پیام ، یک عنصر نرم افزاری ) در زمان ارسال ، استفاده نمود.
امضای دیجیتال از رشته ای که hash و یا Checksum نامیده می شود ، مشتق شده و پس از محاسبه با استفاده از داده ورودی ، با استفاده از کلید خصوصی فرستنده ، رمز می گردد. hash مشابه یک اثرانگشت بوده و با استفاده از الگوریتم های Hash که حجم بالائی از داده را دریافت و بخش بمراتب کوچکتری را برمی گردانند ( معمولا" یک طول ثابت ) ، ایجاد می شود.الگوریتم های Hash ، تضمین لازم در خصوص عدم محاسبه یک مقدار hash یکسان برای داده های ورودی متفاوت را ارائه می نمایند.
مکانیزم امضای دیجیتال ، به صورت منخصربفرد رشته hash را به سند و کلید خصوصی مالک سند ، نسبت می دهد . عدم جعلی بودن یک سند می تواند با رمزگشائی امضای دیجیتال با استفاده از کلید عمومی فرستنده ( شناسائی هویت فرستنده پیام ) ، محاسبه محلی hash و مقایسه آن با چیزی که دریافت شده است ، محقق گردد . شکل زیر نحوه ایجاد ، بررسی و تائید امضای دیجیتال را نشان می دهد :
فرآیند تولید امضای دیجیتالی برای یک سند، signing نامیده می گردد .فرآیند فوق ، محتوی یک سند را تغییر نداده و صرفا" یک امضای دیجیتالی تولید که می توان آن را همراه سند و یا بصورت جداگانه ارسال نمود.
●گواهینامه ها و مراکز صدور گواهینامه ها
همانگونه که ملاحظه گردید ، رمزنگاری کلید عمومی ، مکانیزم لازم به منظور تامین سه ویژگی اشاره شده ( امنیت ، تشخیص هویت ، عدم جعلی بودن ) را در رابطه با ایجاد یک ارتباط ایمن ، ارائه می نماید . در سه ویژگی اشاره شده ، توزیع کلید عمومی و تطبیق آن با کلید خصوصی مربوطه از ارکان بسیار مهم در مدل رمزنگاری کلید عمومی محسوب می گردد . به عبارت دیگر ، در صورت تمایل برای ارسال یک پیام رمز شده برای فردی خاص ، می بایست پردازش لازم در خصوص کلید عمومی وی صورت پذیرد.در مواردیکه یک سند sign شده دریافت می گردد ، مجددا" نیازمند پردازش کلید عمومی به منظور بررسی صحت و عدم جعلی بودن آن ، می باشد.
در صورت دریافت یک کلید عمومی ، آیا اطمینان لازم در خصوص این موضوع وجود دارد که فرد ارسال کننده ،همان شخصی است که انتظار داریم ؟ همواره این امکان وجود خواهد داشت که یک کلید عمومی اشتباها" برای افراد ارسال گردد . فراموش نکنیم که رمزنگاری کلید متقارن ، صرفا" تضمین لازم در خصوص تطبیق کلیدها را ارائه نموده و در رابطه با تعلق(مالکیت ) یک کلید عمومی به شخصی خاص ، سکوت می نماید.
گواهینامه ها ( تائیدیه ها) ، امکانات لازم در خصوص برطرف نمودن چنین مسائلی را ارائه می نمایند . تکنولوژی گواهینامه ، امکان شناسائی منحصربفرد افراد را فراهم می نماید . پس از شناسائی یک فرد و تائید گواهیینامه ، امکان تائید آنان توسط یک برنامه معتبر و امین و یا سرویس دهنده ، فراهم خواهد شد . تکنولوژی گواهینامه محدود به تائید فرد خاصی نمی باشد .از تکنولوژی فوق ، به منظور تائید اسنادی نظیر نامه های الکترونیکی و یا سایر برنامه ها ئی که قادر به حمایت از رمزنگاری گواهینامه می باشند ، استفاده می گردد .
●یک گواهینامه چیست ؟
گواهیینامه دیجیتال ،رکوردی منحصربفرد مشتمل بر اطلاعاتی ضروری به منظور بررسی هویت یک فرد و یا یک سازمان می باشد . گواهینامه های دیجیتال از فرمت استاندارد X.۵۰۹ تبعیت می نمایند . استاندارد فوق ، برخی از ملزومات موردنیاز گواهینامه را تشریح می نماید : فرمت نسخه استفاده شده توسط گواهینامه ، شماره سریال گواهینامه ، شناسه الگوریتم استفاده شده به منظور تائید گواهینامه ،مرکز صادرکننده گواهینامه ، تاریخ صدور و سررسید اعتبار گواهینامه ، مشخصات صاحب گواهینامه ، کلید عمومی صاحب گواهینامه ، امضای دیجیتال مرکز صادر کننده گواهینامه .
هر یک از فیلدهای اطلاعاتی فوق متناظر با فیلدهای خاصی در ساختار تعریف شده برای یک گواهنیامه می باشد. گواهینامه ها ، ممکن است شامل اطلاعات دیگری نظیر آدرس پستی ، آدرس پست الکترونیکی ، نام کشور ، سن ، جنسیت نیز باشند . اطلاعات اضافی فوق اختیاری بوده و بستگی به نوع خاص گواهینامه دارد .
●مراکز صدور گواهینامه (CA:Certificate Authority )
مراکز صدور گواهینامه که از آنان با عنوان CA نیز نام برده می شود ،مراکزی امین و معتبر بوده که مسئولیت تطبیق کلیدها ی عمومی به منظور شناسائی و تائید هویت را برعهده دارند. به عبارت دیگر ، مراکز فوق تعلق یک کلید عمومی خاص به یک کاربر معتبر را تائید می نمایند . مراکز CA ، مسئولیت صدور ، ابطال و تمدید یک گواهینامه را برعهده دارند. مراکز CA ،همچنین می بایست رویه های بسیار دقیق و سختگیرانه ای را به منظور تائید افراد و سازمان ها ئی که درخواست گواهنیامه می نمایند را نیز دنبال نمایند .بدین ترتیب ، پس از تائید یک فرد و یا سازمان توسط یک مرکز معتبر و امین CA ، امکان تطبیق کلید ( انطباق کلید عمومی با کلید خصوصی مرتبط با آن ) آنان از یک مرکز ایمن ، فراهم می گردد. عملکرد چنین مراکزی نظیر دفاتراسناد رسمی در اینترنت است .
در ساختار گواهینامه ، دو فیلد اطلاعاتی مرتبط با CA نیز وجود دارد : نام صادرکننده گواهینامه و امضای دیجیتالی صادرکننده . وجود فیلدهای فوق در گواهینامه صادر شده ، تضمین لازم در خصوص تعلق کلید عمومی به صاحب آن را ارائه می نماید.بدین ترتیب مسئله امین بودن از افراد به مراکز CA منتقل می گردد.وجود یک مرکز امین و معتبر ، از جمله مهمترین دلایل حضور CA ، محسوب می گردد . در حال حاضر ، سازمان های متعددی ، اقدام به صدور گواهینامه می نمایند و هر روز نیز تعداد آنان افزایش می یابد . زمانیکه دو کاربر و یا دو سازمان قصد مبادله گواهینامه را داشته باشند ، هر یک از آنان می تواند هویت طرف مقابل خود را با استفاده از تائیدیه مراکز CA و گواهینامه های صادرشده توسط مراکز CA ، انجام دهد. هر گواهینامه شامل کلید عمومی مربوط به خود نیز می باشد ، بنابراین می توان از آن به منظور رمزنگاری داده برای ارسال به صاحب گواهینامه استفاده نمود. گواهینامه ها همچنین شامل امضای دیجیتال مرکز CA صادرکننده گواهینامه نیز می باشند. یک امضای دیجیتال با استفاده از کلید خصوصی مولف سند ایجاد می گردد . بنابراین به منظور بررسی یک گواهینامه که توسط یک مرکز CA خاص تائید شده است ، به کلید عمومی مرکز CA نیز نیاز خواهد بود. کلید ها ی عمومی اکثر مراکز CA به همراه مرورگرها ، برنامه های پست الکترونیکی و سایر پکیج های نرم افراری توزیع می گردد .
●انواع گواهینامه ها
در اینترنت از چهار نوع گواهینامه دیجیتال استفاده می گردد که هر یک دارای حوزه عملکردی خاص خود می باشند :
۱ـ گواهینامه های سرویس دهنده ، که از آنان با نام Server IDs نیز نام برده می شود،به سرویس دهندگان امکان استفاده از یک پروتکل ایمن ارتباطی نظیر SSL را خواهند داد . گواهینامه های فوق ، امکان شناسائی سرویس دهنده و یا وب سایت مربوطه را برای کاربران نیز فراهم می نماید( قبل از ارسال اطلاعات محرمانه توسط کاربران ) .
۲ـ گواهینامه های شخصی ، مسولیت شناسائی افراد را برعهده داشته و ممکن است به منظور تائید کاربران در یک سرویس دهنده و یا فعال نمودن نامه الکترونیکی ایمن، مورد استفاده قرارگیرند.
۳ـ گواهینامه های ناشر نرم افزار ، به منظور تائید نرم افزارهای توزیع شده بر روی اینترنت استفاده می گردند.
۴ـ گواهینامه های مراکز CA ، باعث شناسائی یک CA می گردند. مراکز CA را می توان به دو گروه عمده تقسیم نمود : مراکز CA ریشه و مراکز CA میانی . تفاوت بین این دو گروه بشرح زیر است :
یک مرکز CA ریشه ، قادر به صدور هر نوع گواهینامه بوده و شناسائی و تائید آنان توسط خود مرکز انجام می شود. یک مرکز CA میانی ، قادر به صدور هر نوع گواهینامه بجزء یک گواهینامه برای خودش ، می باشد.گواهینامه صادر شده توسط یک مرکز CA ریشه ، تنها نوع گواهینامه ای است که صادرکننده و مالک گواهینامه متعلق به یک محل بوده و مشابه یکدیگر می باشند. اینچنین مراکز ، می توانند برای یک مرکز CA میانی دیگر ، گواهینامه صادر نمایند و یک مرکز CA میانی نیز می تواند یک گواهینامه برای یک مرکز CA میانی دیگر صادر نماید . نوع گواهینامه صادر شده توسط یک مرکز CA برای مرکز CA دیگر ، گواهینامه CA نامیده می شود . ماحصل فرآیند فوق ، ایجاد یک ساختار سلسله مراتبی CA است . یکی از مزایای مهم ساختار سلسله مراتبی فوق ، بررسی و تائید گواهینامه در تعدادی اندک از مراکز ریشه CA ، می باشد. به عبارت دیگر در صورتیکه یک مرکز CA تائید گردد ، تمامی مراکز زیرمجموعه ( مراکز میانی CA ) نیز تائید خواهند شد .
●دریافت یک گواهینامه سرویس دهنده
در صورتیکه تصمیم به گرفتن یک گواهینامه وجود داشته باشد ، می بایست با یک مرکز CA تماس گرفته شود. فرآیند دریافت یک گواهینامه که Enrollment ( ثبت نام ) نامیده می شود ، با توجه به نوع گواهینامه متفاوت می باشد . همانگونه که اشاره گردید ، یک گواهینامه سرویس دهنده ، مسئولیت شناسائی یک سرویس دهنده را با استفاده از پروتکل SSL برای یک ارتباط ایمن بر روی وب ، برعهده دارد. زمانیکه یک مرورگر ارتباط خود را با یک سرویس دهنده وب تائید شده از طریق پروتکل HTTPS ( نسخه ایمن پروتکل HTTP ) برقرار می نماید ، کلید عمومی سرویس دهنده را از طریق گواهینامه مربوطه خود دریافت می نماید . بدین ترتیب مرورگر ، قادر به شناسائی ایمن صاحب سرویس دهنده و استفاده از کلید عمومی وی به منظور رمزنگاری داده می باشد .به منظور فعال نمودن یک سرویس دهنده وب برای استفاده از SSL و گواهینامه ها ، می بایست یک رویه خاص با توجه به نوع سرویس دهنده وب و مرکز صادر کننده CA ، دنبال گردد. مراحل دریافت یک گواهینامه به شرح ذیل می باشد :
یک گواهینامه سرویس دهنده به یک Domain اینترنت نسبت داده می شود ، بنابراین لازم است از ثبت Domain وب سایت مربوطه ، اطمینان حاصل نمود ( قبل از اقدام به دریافت یک گواهینامه می بایست Domain ثبت گردد) .
با استفاده از ابزارهای ارائه شده همراه نرم افزار سرویس دهنده ، می بایست یک زوج کلید و یک Certificate Signing Request )CSR) ، ایجاد گردد. ماحصل عملیات فوق تولید کلید خصوصی و عمومی مرتبط با سرویس دهنده می باشد . فرآیند فوق بسیار مهم می باشد ، چراکه CSR تولید شده شامل یک نسخه از کلید عمومی سرویس دهنده می باشد .در زمان تولید CSR ، می بایست اطلاعات دیگری نظیر URL وب سایت ، نام شرکت و یا سازمان متقاضی و آدرس مربوطه ، نیز مشخص گردد. ماحصل عملیات فوق ، یک فایل ASCII بوده که شامل درخواست گواهینامه با استفاده از یک فرمت شناخته شده با نام PKCS#۱۰ می باشد .
در ادامه،می توان CSR را به مرکز CA انتخاب شده ، ارسال نمود.بدین منظور می توان از روش های متفاوتی نظیر ارسال توسط نامه الکترونیکی و یا استفاده از فرم های ثبت نام Online موجود بر روی وب سایت مرکز CA ، استفاده نمود.
پس از ارسال CSR به مرکز CA ،بررسی لازم در خصوص اطلاعات انجام و در صورت لزوم درخواست اطلاعات تکمیلی می گردد. پس از اتمام مراحل بررسی ، CA یک گواهینامه را بهمراه اطلاعات ذیربط نظیر : کلید عمومی ، تاریخ سررسید و سایر موارد ، صادر و آن را با استفاده از کلید خصوصی خود ، Sign و در ادامه آن را برای متقاضی ارسال و یا بر روی یک وب سایت مستقر تا امکان دریافت آن فراهم گردد.گواهینامه دریافت شده یک فایل ASCII شامل داده با فرمت استاندارد PKCS#۷ ، می باشد.
در مرحله آخر، می بایست گواهینامه صادر شده بر روی سرویس دهننده وب ، نصب گردد. بدین منظور می توان از مستندات ارائه شده به همراه سرویس دهنده وب استفاده نمود.به منظور حفاظت از گواهینامه صادرشده ، لازم است یک نسخه Backup از آن تهیه گردد. در صورتیکه گواهینامه سرویس دهنده گم گردد ، می بایست یک CSR جدید ارسال و مراحل فوق مجددا" تکرار گردد.


همچنین مشاهده کنید