PDA

View Full Version : زیرساختارهای امنیتی مدرن برای مبادلات در شبکه اینترنت



Best Programmer
دوشنبه 06 بهمن 1382, 05:13 صبح
دکتر شهرام بختیاری، استادیار پژوهشکده الکترونیک دانشگاه صنعتی شریف در یک مقاله‌علمی، زیرساختارهای امنیتی مدرن برای مبادلات در شکبه اینترنت را مورد بررسی قرار داده است.
به گزارش خبرنگار گروه فنی مهندسی خبرگزاری دانشجویان ایران (ایسنا) در این مقاله آمده است: استفاده از رایانه امروزه جزو کارهای روزمره بسیاری از افراد قرار گرفته و در کشورهای پیشرفته، سیستم‌های رایانه‌ای جزو لاینفک زندگی افراد جامعه می‌باشند. در کشورهای در حال توسعه از جمله ایران، فرهنگ استفاده از رایانه با سرعت زیادی در حالت شکل‌گیری است و پیش‌بینی می‌شود که در آینده‌ی نه‌چندان دور، شاهد همه‌گیر شدن استفاده از رایانه در ایران باشیم.
در عصر کنونی استفاده از رایانه به تنهایی قابلیت زیادی را برای کاربران فراهم نمی‌کند بلکه عمدتا رایانه‌ها از طریق خطوط تلفنی ( dial-up ) و یا شبکه‌های محلی (lan) به یکدیگر متصل هستند. استقبال جهانی از شبکه اینترنت و وجود ابزار و استانداردهای مختلف، زمینه‌ای را فراهم آورده تا بتوان کاربران را به راحتی با یکدیگر ارتباط داد و منابع و اطلاعات الکترونیکی را درمیان آنها از طریق خطوط شبکه‌ای توزیع نمود. حتی مشاهده می‌شود که بسیاری از اطلاعات با ارزش از قبیل اطلاعات مالی (خرید و فروش) و یا اطلاعات سری نیز از طریق شکبه اینترنت بین کاربران رد و بدل می‌شوند.
دو مساله مهم که کاربران شبکه‌های کامپیوتری با آنها دست به گریبانند عبارتند از :
‌١- حفظ حریم خصوصی و محرمانگی: کاربران علاقمند هستند که کارها و ارتباطات آنها غیر قابل ردیابی توسط دیگران باشد و همچنین پیام‌هایی که آنها در شبکه می‌فرستند و یا دریافت می‌نمایند، قابل فهم توسط مداخله‌گرانی که داده‌های رد و بدل شده در مسیر شکبه را شنود می کنند، نباشد.
‌٢- احراز هویت و عدم انکار: کاربران جهت پاره‌ای از مسائل نیاز دارند که از صحت هویت طرف مقابل، اطمینان حاصل نمایند و مطمئن شوند که کاربری که با آن تماس گرفته‌اند واقعا همان فردی است که انتظارش را داشته‌اند. همچنین در بعضی از مسائل، ارسال کننده‌ی یک پیام نباید بتواند پیامی را که فرستاده انکار نماید. این ابزار همان امضای معمولی افراد را شبیه سازی می نماید.
رمزنگاری به عنوان یک از روش‌های قابل اعتماد جهت فراهم آوردن سرویس‌های فوق قابل استفاده می‌باشد. کلمه لاتین cryptography به معنی علم نوشتن به رمز می‌باشد. ولی امروز به صورت کلی‌تری جهت فراهم آوردن ابزارهایی که می‌توانند سرویس‌هایی را برای امنیت اطلاعات و داده‌ها ارائه نمایند، استفاده می‌شود. امروزه رمزنگاری جزو روش‌های الزامی در فراهم نمودن امنیت سیستم‌ها و شبکه‌های کامپیوتری می‌باشد و مانند قدیم، منحصر به سیستم‌های نظامی و بانکی نمی‌شود. در عصر شبکه‌های کامپیوتری، هر فرد می‌تواند از منابع اطلاعاتی خود با استفاده از ابزارهای امنیتی که عمدتا توسط سیستم‌های رمزنگاری فراهم می‌شوند، محافظت نمایند.

- سیستمهای رمزنگاری متقارن و نامتقارن
با وجود اینکه امروزه سیستم‌های رمزنگاری برای کاربردهای مختلفی مورد استفاده قرار می‌گیرند ولی در ابتدا چنین سیستم‌هایی تنها جهت اختفا و به عنوان ابزاری برای به وجود آوردن محرمانگی پیام، طراحی شده بودند. در یک سناریوی کلی می توان فضایی را در نظر گرفت که در آن، کاربر A قصد ارسال پیام P به کاربر B را دارد.
روش کار بدین ترتیب است که ابتدا کاربر A ا زالگوریتم E جهت رمز نمودن پیام P استفاده می نماید. الگوریتم‌های رمزنگاری، نیاز به یک کلید رمزنگاری (Ke) دارند تا بتوانند از پیامی مانند P، یک خروجی مانند C تولید نمایند که با پیچیدگی زیادی وابسته به هر دوی P و Ke باشد. کاربر B که پیام C را دریافت می‌کند با استفاده از الگوریتم رمزگشایی D و با استفاده از کلید رمزگشایی (Kd) اقدامه به بازنمودن پیام C می‌نماید و نتیجه، پیام P خواهد بود.
فرق اساسی میان سیستم‌های رمزنگاری متقارن و نامتقارن این است که در سیستم‌های رمزنگاری متقارن Kd یا مساوی Ke است و یا به راحتی از آن استنتاج می شود. در نتیجه کافی است هر دو کاربر A و B، کلید Ke را بدانند تا بتوانند پیام‌هایشان را توسط آن رمز نموده و سپس رمزگشایی نمایند. با توجه به اینکه Ke تنها برای A و B شناخته شده است لذا وقتی کاربر B پیام را باز می‌کند، مطمئن می‌شود که پیام فوق از طرف A است (خاصیت احراز هویت) . با این وجود A به راحتی می‌تواند ارسال پیام فوق را انکار نماید زیرا B نیز می‌تواند چنان پیامی را به همان شکل، رمز نماید.
در سیستم‌های رمزنگاری نامتقارن، کلیدی‌های رمزگذاری و رمزگشایی متفاوت هستند. در حقیقت هر کاربر دارای یک زوج کلید می‌باشد که یکی کلید عمومی و دیگری کلید خصوصی می‌باشد. فرض بر این است که کلید خصوصی، تنها توسط آن کاربر شناخته شده است ولی کلید عمومی برای همه افرادی که قصد ارتباط با آن کاربر را دارند معلوم است. حال اگر A قصد ارسال پیامی محرمانه به B را داشته باشد، پیام را توسط کلید عمومی B رمز می‌کند و‌آن را ارسال می نماید. کاربر B پیام رمز شده را توسط کلید خصوصی خود، رمزگشایی می‌نماید. با توجه به اینکه تنها B کلید خصوصی را داراست لذا هیچ فرد دیگری نمی‌تواند به محتوای پیام دسترسی پیدا کند. برای ایجاد خاصیت احراز هویت می‌توان پیام را توسط کلید خصوصی رمز نمود تا هر فردی که کلید عمومی آن کاربر را داراست بتواند رمز را باز نموده و در نتیجه هویت کاربر فوق احراز شود. البته در عمل به‌جای اینکه متن، توسط کلید خصوصی رمز شود، توسط یک تابع در هم ساز (hash function)، یک جمع‌آزما با طول ثابت (مثلا ‌١٢٨ بیت) ایجاد می‌شود و سپس جمع‌آزما رمز می‌شود.

- مقایسه الگوریتم‌های رمزنگاری متقارن و نامتقارن
الگوریتم‌های رمزنگاری متقارن و نامتقارن از جنبه‌های مختلفی قابل مقایسه هستند. با توجه به اینکه هدف ایجاد امنیت قوی در شکبه اینترنت می‌باشد لذا امنیت، سادگی و همچنین افزایش توانایی‌های سیستم، دارای اهمیت بیشتری می‌باشند.
از لحاظ امنیت مشکل می توان سیستم‌های متقارن و نامتقارن را مقایسه نمود. سیستم‌های رمز نامتقارن، عمدتا بر اساس یک مساله سخت ریاضی بنیان نهاده شده‌اند و تا وقتی آن مساله ریاضی حل نشده، سیستم دارای امنیت لازم می‌باشد. به عنوان مثال یکی از مسایل ریاضی که سیستم‌های رمز بر آن استوار هستند مساله تجزیه اعداد بزرگ می‌باشد. با توجه به اینکه در سیستم‌های رمز نامتقارن، با اعداد بزرگ کار می‌شود لذا اینگونه سیستم‌ها در مقایسه با سیستم‌های رمز متقارن معمولا از سرعت نسبتا پایینی برخوردار هستند.
با وجود سرعت نسبتا کم الگوریتم‌های نامتقارن، سادگی کار با آنها و توانایی‌هایی که فراهم می‌آورند آنها را برای استفاده از یک سیستم بزرگ و همه‌گیر جذب می‌نمایند. کلیدهای استفاده شده در الگوریتم‌های نامتقارن، راحت‌تر از الگوریتم‌های متقارن قابل توزیع هستند. اگر فرض کنیم در شبکه n کاربرد وجود دارد و همه کاربران بخواهند توسط الگوریتم متقارن با یکدیگر ارتباط امن داشته باشند، نیاز به ‌٢/(n (n-1 کلید می‌باشد که بین هر دو کاربر به اشتراک گذاشته شده است. در مقابل، اگر از الگوریتم نامتقارن استفاده شده باشد، به n زوج کلید (عمومی و خصوصی) نیاز می‌باشد. در ضمن چون در الگوریتم‌های نامتقارن، تنها کلید عمومی هر کاربر باید در شبکه توزیع شود لذا بر خلاف الگوریتم‌های متقارن که در آنها بایستی کلیدها به طور امن (محرمانه) توزیع شوند، در الگوریتم‌های نامتقارن مشکل اساسی وجود ندارد.

- سازماندهی یک ساختار کلید عمومی
با مروری بر روند اعمال امنیت شبکه در چند دهه‌ی اخیر دیده می‌شود که دیوار آتش ( firewall )، جزو اولین روش‌های حفاظت در شبکه بوده‌ است. سیستم‌های تشخیص نفوذگران ( Intrusion Detection Systems ) و شبکه‌های خصوصی - مجازی ( Virtual Private Networks ) نیز پس از آن پا به عرصه وجود گذاشتند. در عصر کنونی ساختار کلید عمومی و یا اصطلاحا (PKI)، Public Key Infrastructure به‌عنوان بهترین روش برای اعمال امنیت در شبکه شناخته شده است.
در این قسمت قصد بر این است که ملزومات طراحی و سازماندهی یک ساختار کلی برای شبکه اینترنت بیان شود که هر کاربر دارای یک زوج کلید مربوط به یکی از الگوریتم‌های نامتقارن باشد. با وجود اینکه امروزه ساختار کلید عمومی بسیار مطرح است ولی هنوز شاهد استفاده از روش‌های قدیمی در شبکه اینترنت برای بسیاری از کارهای حساس و حتی خرید و فروش می‌باشیم. البته به‌دلیل عدم هماهنگی در روش‌های فوق و پیروی نکردن از یک ساختار کلی و استاندارد، نیاز به یک سیستم هماهنگ و کارا احساس می‌شود.
- مشکلاتی که در شبکه اینترنت وجود دارد
یکی از ساده‌ترین مثال‌هایی که نشان دهنده‌ی ضعف شبکه اینترنت است؛ پست الکترونیکی می‌باشد. سناریویی را در نظر بگیرید که در آن کاربر A قصد ارسال پست الکترونیکی به کابر B را دارد. وقتی نامه از مبدا رها می‌شود معمولا چندین گره را پشت سر می‌گذارد و نهایتا به گروه مقصد یعنی کاربر B می‌رسد. در این ارسال مشکلات فروانی ممکن است اتفاق بیافتند که مهمترین آنها عبارتند از:
‌١) اگر ایجاد ارتباط فقط از طریق اینترنت ممکن است پس چگونه می‌توان آدرس کاربر B را به دست آورد به طوری که مطمئن بود آدرس صحیح است؟
‌٢) چگونه می‌توان اطمینان حاصل نمود که پیام ارسالی در بین راه (گره‌های عبوری) بازبینی نشده‌اند و پیام محرمانه باقی مانده؟
‌٣) چگونه هویت فرستنده‌ی پیام توسط گیرنده‌ی پیام احراز می‌گردد؟ به‌عبارت دیگر، کاربر B از کجا بفهمد که پیام فوق واقعا از طرف کاربر A ارسال گردیده؟
یکی دیگر از مشکلات اساسی که هم اکنون در شبکه اینترنت وجود دارد؛ انتقال اطلاعات از طریق FTP، HTTP و حتی TELNET می‌باشد. البته گونه‌ای از سرویس‌ها و ابزارهای تکمیلی ساخته شده‌اند که تا حدی اینگونه مشکلات را رفع می‌نمایند ولی هنوز مکررا دیده می‌شود که اطلاعات رد و بدل شده در شبکه اینترنت بدون امنیت (محرمانگی و احراز هویت) می‌باشد و حتی دیده می‌شود که مثلا کلمه عبور استفاده شده در پروتکل‌های FTP و یا TELNET به صورت ساده در شبکه ارسال می‌شود و توسط هر فردی قابل کپی برداری می‌باشد.
مهمترین مشکلی که شبکه اینترنت با آن دست به گریبان است؛ عدم یک سیستم و ساختار کلی جهت ایجاد ارتباطات امن برای کارهای حساس از قبیل تجارت الکترونیکی می‌باشد. در حال حاضر بسیاری از شرکت‌ها از طریق شبکه اینترنت اقدام به فروش کالاهای خود نموده‌اند که عمدتا به کالاهای ارزان قیمت محدود می‌شوند، زیرا اولا هنوز اعتماد لازم بین کاربران بوجود نیامده و ثانیا بسیاری از پروتکل‌های استفاده شده، از امنیت کافی برخوردار نیستند.

- راه‌کارهای امنیتی
از سالها قبل، کارهای زیادی برای ایجاد امنیت در شبکه اینترنت انجام شده است. به عنوان مثال PGP، SFTP، SHTTP، Secure Shell و Kerberos نمونه‌های عملی هستند که مورد استفاده قرار گرفته‌اند، ولی هیچ‌یک قابلیت‌های لازم برای یک سیستم همه‌گیر با توانایی‌های لازم برای نیازهای جدید کاربران اینترنت را ندارند.
یکی از معروفترین استانداردهایی که می‌تواند منجر به ساختار کلی مورد نظر شود، استاندارد X.509 می‌باشد. این استاندارد که توسط ISO/ITU تهیه شده، جهت ایجاد یک چارچوب برای PKI ارائه شده است و مبتنی بر استاندارد X.500 می‌باشد. استاندارد X.500 برای ایجاد سرویس دایرکتوری ( Directory service ) برای شبکه‌های بزرگ کامپیوتری ارائه گردیده است.
استاندارد X.509 به‌عنوان یکی از قدیمی‌ترین ساختارهای مبتنی بر کلید عمومی در سال ‌١٩٨٨ میلادی ظاهر شد که متعاقب آن، نسخه‌های ‌٢ و ‌٣ نیز ارایه شدند. این استاندارد هم اکنون در بعضی از سیستم‌ها و پروتکل‌ها مورد استفاده قرار گرفته و SET و SSL نیز از آن بهره‌ می‌برند. در این استاندارد برای هر کاربر، یک گواهی صادر می‌شود که از آن طریق می‌توان بسیاری از نیازهای امنیتی را برطرف نمود. تولید گواهی ( Certification ) و عمل تعیین اعتبار ( Validation ) دو عامل اصلی موردنیاز در PKI می‌باشند. هدف در عمل اول ایجاد ارتباط بین کاربر (یا شرکت) و کلید عمومی آن بوده و در عمل دوم نیز هدف، تعیین اعتبار گواهی می‌باشد.
- خصوصیات PKI
با توجه به مطالب ذکر شده، ‌PKI را می‌توان به صورت مجموعه‌ی سخت‌افزار، نرم‌افزار، کاربران، سیاست‌ها و رویه‌هایی که برای ایجاد مدیریت، ذخیره، توزیع و انهدام گواهی مبتنی بر رمزنگاری با کلید عمومی مورد نیاز می‌باشند تعریف نمود.
خصوصیاتی که در یک سیستم PKI مورد نیاز می‌باشند عبارتند از:
‌١) محرمانگی (Confidentiality): شامل محرمانگی محتوای پیام و عدم امکان شناسایی گیرنده و فرستنده پیام توسط نفر سوم.
‌٢) تمامیت (integrity): شامل دست‌نخوردگی پیام، اطمینان از رسیدن پیام به مقصد و اطمینان از عدم دریافت بیش از یک نسخه پیام توسط گیرنده.
‌٣) احراز هویت (authentication): شامل اطمینان از اینکه پیام دریافت شده، از کسی ارسال شده باشد که پیام نشان می‌دهد و اطمینان از اینکه پیام ارسال شده را کسی دریافت می‌کند که فرستنده مدنظر دارد.
‌٤) عدم انکار (non - repudiation): شامل عدم امکان انکار دریافت پیام، توسط گیرنده پیام و عدم امکان انکار ارسال پیام، توسط فرستنده پیام.
‌٥) کنترل (control): شامل وجود قوانین مدون و منابع مورد اطمینان و همچنین امکان دنبال کردن و ثبت خطا در روند سیستم.
‌٦) در دسترس بودن (availability): اطمینان از فعال بودن سیستم در تمام اوقات.
- نحوه توزیع کلید عمومی

روش‌های موجود جهت توزیع کلید عمومی یک کاربر عبارتند از:
‌١) ارسال مستقیم توسط کاربر.
‌٢) ذخیره در دفترچه تلفن.
‌٣) ذخیره در یک گره که با احراز هویت، قابل دریافت باشد.
‌٤) استفاده از گواهی.
با یک بررسی مختصر معین می‌شود که روش چهارم از دیگر روش‌ها بهتر است. زیرا ضمن اینکه هویت صاحب کلید در موقع دریافت کلید عمومی قابل احراز می‌باشد، از ایجاد ترافیک در گره‌های خاص (bottle - neck) نیز جلوگیری می‌شود.
- طرح اصلی یک PKI مطلوب
برای طراحی یک سیستم PKI کامل و امن، نیاز است که ابزارهای آن با دقت انتخاب شده و مشکلات احتمالی آن دقیقا مورد بررسی قرار گیرند. یکی از ابزارهای اصلی در چنین سیستمی، توزیع کلید عمومی می‌باشد که طبق توضیحات مربوط به قسمت قبل، این سرویس توسط گواهی قابل حل می‌باشد.
- گواهی برای کاربران سیستم
حداقل اطلاعاتی که در یک گواهی مورد نیاز می‌باشند عبارت است از اطلاعات شناسنامه‌ای صاحب گواهی، کلید عمومی صاحب گواهی، اطلاعات شناسه‌ای صادرکننده گواهی (CA:Certificate Authority) و امضای صادر کننده‌ی گواهی. با توجه به اینکه این طرح یک طرح ملی بوده و قابل گسترش در سطح جهانی می‌باشد لذا نمی‌توان انتظار داشت که تنها یک صادرکنند‌ی گواهی برای تمام کاربران وجود داشته باشد. روش‌های مختلفی برای حل این مشکل وجود دارد که روش سلسله مراتب بصورت cross - reference به عنوان مطلوبترین روش در نظر گرفته می‌شود. در این روش یک صادرکننده‌ی اولیه وجود دارد که کلیه کاربران یک جامعه یا گروه به آن اطمینان دارند. دلیل اینکه چنین ساختاری در نظر گرفته شده، امکان آسان و امن احراز هویت گواهی یک کاربر توسط کاربران دیگر می‌باشد. در روش فوق نیاز نیست که هر کاربر برای تائید هر کلید عمومی، مستقیما به صادرکننده‌ی آن کلید مراجعه نماید.

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

جهت سازگاری با استانداردهای جهانی، گواهی کاربران را طبق استاندارد X.509 تعریف می نمائیم. براساس این استاندارد، یک گواهی دارای اقلام زیر می‌باشد:
1- شماره‌ نسخه استاندارد: عددی صحیح که نشان دهنده‌ی نسخه‌ای از استاندارد می‌باشد که در گواهی استفاده گردیده است. در حال حاضر بالاترین نسخه، 3 می‌باشد.
2- شماره شناسایی: شماره شناسایی گواهی می‌باشد و فرض می‌شود که یک صادرکننده‌ی گواهی هیچ‌گاه دو گواهی با شماره شناسایی یکسان صادر نمی‌نماید.
3- شماره شناسایی الگوریتم امضا: شناسه‌ای است که به تعیین الگوریتم صادرکننده‌ی گواهی برای امضا کردن می‌پردازد.
4- نام صادر کننده‌ی گواهی: نام صادر کننده گواهی طبق استاندارد X.500.
5- تاریخ اعتبار: شامل تاریخ شروع و خاتمه اعتبار گواهی.
6- نام صاحب گواهی: نام صاحب گواهی طبق استاندارد X.500.
7- کلید عمومی صاحب گواهی:‌ شامل شناسه‌ای که الگوریم نامتقارن استفاده شده و همچنین کلید عمومی متناظر با آن الگوریتم برای صاحب گواهی را معین نماید.
اقلام لیست شده در بالا حداقل اطلاعات لازم در یک گواهی می‌باشند. در بالا نام صادر کننده‌ی گواهی و نام صاحب گواهی، طبق استاندارد X.500 می‌باشد که جهت یکتا بودن نام، شامل اطلاعات سلسله مراتبی کاربر طبق فرمتی مشابه آدرس وب (URL) می‌باشند. موارد اصلی که در فرمت X.500 مورد استفاده قرار می‌گیرند شامل کشور، نام کاربر، مکان، سازمان و واحد سازمانی می‌باشند.
در نسخه‌ی دوم از استاندارد X.509 به دلیل اینکه ذخیره نام، طبق استاندارد X.500 ممکن است همیشه یک کاربر را به طور یکتا معین ننماید (مثلا وقتی کاربری از شرکتی اخراج شده و کاربر جدیدی با همان نام استخدام شده)، لذا برای هر یک از صادر کننده‌های گواهی و صاحب گواهی یک شناسه یکتا در نظر گرفته شده است.
- روش محافظت از کلید خصوصی کاربران
یکی از مهمترین قسمت‌هایی که باید به طور جدی مورد توجه قرار گیرد؛ اطمینان از محرمانگی کلید خصوصی کاربران می‌باشد. اگر به نحوی کلید خصوصی یک کاربر توسط کاربر دیگری مورد شناسایی قرار گیرد، کلیه کارهایی که توسط سیستم رمزنگاری نامتقارن امکان‌پذیر است، توسط کاربر فوق قابل انجام خواهد بود. بنابراین محرمانگی، عدم انکار و احراز هویت برای کاربری که کلیدش کشف شده زیر سوال خواهد رفت.
اولین مرحله‌ای که در این سیستم برای یک کاربر عملی می‌شود؛ ایجاد گواهی است که در این مرحله نیاز است که کاربر یک زوج کلید رمزنگاری داشته باشد. بسته به اینکه سیاست‌های اعمال شده در سیستم چگونه باشد، یکی از دو روش زیر برای تولید کلید استفاده می‌شوند:
1) تولید کلید توسط کاربر: در این روش کاربر توسط ابزارهای مورد اطمینان، یک زوج کلید برای خود تولید نموده و سپس کلید عمومی خود را به همراه مدارک مورد تایید صاردکننده‌ی گواهی جهت صدور گواهی ارائه می‌دهد. حسن این روش این است که کاربر از محرمانگی کلید خصوصی خود صد در صد اطمینان دارد. با این وجود ممکن است کاربران عادی نتوانند براحتی ابزار مورد اطمینان برای تولید زوج کلید را فراهم آورند و همچنین برای انتقال کلید عمومی جهت صدور گواهی نیاز است که حتما هویت کاربر توسط صادرکننده گواهی احراز گردد.
2) تولید کلید توسط صادرکننده گواهی:‌ در این روش صادرکننده گواهی ابتدا زوج کلید کاربر را تولید می‌نماید و سپس با استفاده از کلید عمومی فوق، یک گواهی صادر می‌گردد. سپس گواهی و کلید خصوصی کاربر به وی داده می‌شوند. در این روش کلید خصوصی باید به صورت محرمانه به کاربر داده شود و بهترین روش حضور فیزیکی کاربر می‌باشد. حسن اساسی این روش، امکان قابلیت کشف کلید (Key Pecovery) در سیستم می‌باشد. با وجود اینکه امکان کشف کلید خصوصی کاربران توسط سیستم، موردعلاقه کاربران نمی‌باشد، ولی در بسیاری از موارد این خاصیت ضروری است. به‌عنوان مثال اگر کاربری اطلاعات مورد نیاز یک سازمان را رمز کرده باشد و سپس از سازمان اخراج گردد، در صورت امکان کشف کلید خصوصی می‌توان به اطلاعات فوق دسترسی پیدا کرد. مستقل از اینکه کدامیک از دو روش فوق در سیستم استفاده گردند، کلید خصوصی کاربر باید همواره به صورت محافظت شده باقی بماند.
چهار راه اصلی برای رسیدن به این هدف عبارتند از:
1) رمز، توسط کلمه عبور: در این روش که یکی از مشهورترین و پراستفاده‌ترین روش‌ها می‌باشد، کلید خصوصی توسط یک کلمه عبور رمز می‌شود و سپس به صورت فایل برروی دیسک و یا دستگاه‌های مشابه ذخیره می‌شود. 2) ذخیره در کارت‌های حافظه‌دار: در این روش کلید خصوصی در کارت‌های با حافظه محافظت شده (معمولا توسط کلمه عبور) ذخیره می‌شود و در موقع نیاز، به حافظه رایانه منتقل شده و پس از استفاده دور ریخته می‌شود.
3) ذخیره در کارت‌های هوشمند: در این روش از کارت‌های هوشمندی که دارای پردازنده می‌باشند جهت ذخیره کلید استفاده می‌شود. با فرض اینکه قسمتی از الگوریتم رمزنگاری، داخل کارت انجام می‌شود، کلید خصوصی هیچگاه کارت را ترک نمی‌کند.
4) ذخیره در دستگاه‌های کاملا غیرقابل نفوذ (Truly attack - resitant devices): در این روش از دستگاه‌های خاصی جهت ذخیره کلید استفاده می‌شود که بسیار امن‌تر از کارت‌های هوشمند (از نظر نفوذ پذیری توسط دشمن) می‌باشند.
روش اول به دلیل اینکه کلمه عبور، معمولا قابل حدس زدن می‌باشد و یا ممکن است کاربر آن را فراموش کند برای یک سیستم در سطح بزرگ PKI جالب به نظر نمی‌رسد. با مقایسه روش‌های دیگر، روش سوم به دلیل اینکه کلید خصوصی به حافظه رایانه منتقل می‌شود، بسیاری از حملات را توسط نفوذگران فراهم می‌سازد. روش چهارم نیز کاربر را وادار می‌نماید تا به تولیدکننده‌ی دستگاه اطمینان دهد که مطلوب نیست؛ زیرا مثلا دستگاه ممکن است پیام‌های اضافی را امضا نماید و یا پیام‌های رمزشده را در خود ذخیره نماید.
یکی از مهمترین خصوصیات کارت‌های هوشمند، امکان استفاده از کلید خصوصی در جاهای مختلف می‌باشد. در عصر ارتباطات امروزی نمی‌توان انتظار داشت که کاربر همیشه از یک رایانه برای ارتباط با شبکه اینترنت استفاده نماید و بنابراین کاربر با حمل کارت هوشمند خود می‌تواند از هر نقطه‌ای که به شبکه اینترنت متصل است ( و دستگاه کارت‌خوان را داراست) ارتباط امن ایجاد نماید.
کارت هوشمندی که برای PKI مناسب می‌باشد کارتی است که در آن قسمتی از الگوریتم رمزنگاری که نیاز به کلید خصوصی کاربر دارد در کارت پیاده سازی شده است و در نتیجه هیچ‌گاه نیاز نیست که کلید خصوصی از کارت خارج شود. اینگونه کارت‌ها معمولا توسط یک شماره شناسایی شخصی (PIN) محافظت می‌شوند تا اگر کارت به دلایلی به دست فرد غیرمجاز برسد، قابل استفاده نباشد. اطلاعاتی که در کارت ذخیره می‌شوند، عبارتند از :
1) کلید خصوصی کاربر
2) گواهی کاربر (امضا شده توسط صادرکننده گواهی)
3) کلیدعمومی صادرکننده گواهی اولیه (root)
4) گواهی مربوط به کلیه صادرکننده‌های گواهی که بین root و کاربر قرار می‌گیرند
علاوه بر موارد بالا ممکن است یک شماره سریال برای هر کارت هوشمند در نظر گرفته شود و اطلاعات دیگری مروبط به الگوریتم ذخیره شده در کارت وجود داشته باشد.
- مباحث تکمیلی
لازم به ذکر است با وجود اینکه سیستم‌های PKI بسیار مفید می‌باشند ولی آنها نیز دارای محدودیت‌هایی می‌باشند. به عنوان مثال کاربران باید به یک صادرکننده گواهی (جهت امضای گواهی) اعتماد کنند. البته چنین اعتمادی دور از ذهن نیست، زیرا در سیستم‌های قدیمی و حتی سیستم‌های غیرشبکه‌ای نیز همواره اعتماد، جزو ملزومات سیستم بوده است. به عنوان مثال در سیستم بانکی، دارنده حساب باید به سیستم بانکی اعتماد داشته باشد.
یکی از نکات مهم و اساسی در ساختار طراحی شده، اعتماد به امنیت کارت هوشمند می‌باشد. به عنوان مثال اگر کلید خصوصی کاربر و یا کلید عمومی صادرکننده گواهی اولیه root، مورد دسترسی غیر مجاز قرار گیرند، امنیت سیستم به خطر می‌افتد.
در طرح ذکر شده فرض می‌شود که الگوریتم‌های رمزنگاری با شماره شناسایی، قابل تشخیص هستند و بنابراین کاربران می‌توانند از الگوریتم‌های دلخواه خویش استفاده نمایند. همچنین در گواهی می‌توان فیلدهای متغیر داشت و بنابراین بسته به نیاز می‌توان گواهی خاصی ایجاد کرد. به عنوان نمونه گواهی رانندگی، گواهی تحصیلی و غیره.
در سیستم فرض می‌شود که کاربر، مسولیت هر گونه امضایی که با کلید خصوصی او انجام گرفته باشد را به عهده می‌گیرد. حالتی را در نظر بگیرید که کاربری متنی را امضا نموده و سپس تاریخ انقضای کلید رمزنگاری او به سر آمده، چگونه می‌توان چنین امضایی را تایید کرد؟ به عنوان راه اول می‌توان همواره گواهی کاربر (و اطلاعات مربوط به صادرکننده گواهی) را به همراه امضای وی نگهداری نمود و در نتیجه امضاهای قدیمی نیز قابل پیگیری باشند. به عنوان راه دوم می‌توان کلید عمومی کلیه کاربران (حتی ابطال شده‌ها) را در یک لیست در سیستم نگهداری کرد تا در موقع بروز شکایت، قابل پیگیری باشند.
- نتیجه گیری

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

برگرفته از:
خبرگزاری دانشجویان ایران - تهران
سرویس علمی-آموزشی

tayebeh
شنبه 07 شهریور 1383, 11:28 صبح
بسیاربسیاربسیار عالی بود.
ممنون از مقاله قشنگتون
باتشکر
بای