امنیت اطلاعات
امنیت اطلاعاتاز آن جا که بشر همیشه چیزهایی برای مخفی کردن در اختیار داشته است، رمز نگاری برای مخفی کردن اطلاعات قدمتی برابر عمر بشر دارد. از پیغام رساندن با دود گرفته تا رمزهای سزاری، رمزهای جایگشتی و روش های متنوع دیگر، همه راه هایی برای پنهان داشتن اطلاعات می باشد. (می توانید مطلب دنیای سری کدها و رمزها را ببینید) نکته ی مشترک در همه ی این روشها آن است که دو طرف ارتباط باید قبل از هر چیز در مورد روش به رمز کردن پیامها با هم توافق کنند و به عبارت دیگر هر دو از یک کلید مشترک استفاده نمایند. بنابراین همیشه این خطر وجود دارد که این توافق و در نتیجه کلید برای دیگران نیز آشکار شود.
اینترنت مثال خوبی برای این موضوع است. میدانیم که در اینترنت اطلاعات برای رفتن از جایی به جای دیگر ممکن است از صدها کامپیوتر ناشناس عبور کنند. حال فرض کنید مثلاً سایت Yahoo میخواهد پس ورد یا اطلاعات شخصی را از کاربرانش دریافت کند، به شکلی که دیگران - که ممکن است به اطلاعات رد و بدل شده دسترسی داشته باشند - متوجه این اطلاعات نشوند، قاعدتاً باید این اطلاعات به شکل رمز دربیایند. واضح است که کلید این رمز و هر قراری که برای روش رمزنگاری گذاشته میشود باید به شکلی از طریق اینترنت منتقل شود. اما در این صورت دیگران هم به کلید دسترسی خواهند داشت. بنابر این راه حل چیست؟
برای آن که موضوع ساده تر شود، مدل ساده ای را ارایه می کنیم. فرض کنید A و B در دو مکان متفاوت هستند و هیچ ارتباطی با هم ندارند، به جز پستچی C که همان اینترنت است.
آنها می خواهند از طریق C نامه ای برای هم ارسال کنند به طوری که C از محتوای نامه مطلع نشود. ابتدایی ترین راه میتواند این باشد که آنها از قبل دو قفل و دو کلید یکسان تهیه کنند و هر کدام یک کلید را نزد خود نگه دارند. آن گاه برای فرستادن نامه کافی است که نامه را در جعبه ی قفل شده ای به C بسپارند و فقط طرف مقابل میتواند آن را باز کند.
اما در این روش باید برای ارتباط با هر کس یک قفل و کلید مخصوص او را نگه داری کرد و در ضمن از قبل با او قرار گذاشت. اما اگر این امکانات وجود ندشته باشد - همان طور که در اینترنت وجود ندارد - چه باید کرد؟ فرض کنید هرکس بدون هیچ ارتباط قبلی ای فقط یک قفل و کلید مخصوص به خود و یک جعبه داشته باشد. در این صورت به نظر شما چه باید کرد؟
به این شکل A میتواند با هر کس بدون قرار قبلی و داشتن کلید مشترک، مکالمه ای امن انجام دهد. یکی دیگر از مزایای این روش این است که وقتی پیغام کد شده ای با کلید عمومی کسی باز شود میتوان مطمئن بود که این پیغام را خود او فرستاده است، چرا که چنین پیغامی حتماً با کلید خصوصی آن فرد کد شده است که تنها در اختیار خود اوست. از همین خصوصیت میتوان برای تأیید هویت اشخاص و سازمان ها استفاده کرد.
در اینترنت سایت های زیادی وجود دارند که با اطلاعات خصوصی افراد مثل پس وردها و شماره کارت اعتباری و ... سر و کار دارند. هم چنین در کارهایی مثل تجارت الکترونیک که ناچار از جابه جایی بعضی اسناد به وسیله ی اینترنت و ایمیل هستند، تأیید هویت نقش مهمی را بازی میکند. مثلاً ممکن است کسی با ساختن یک صفحه ی شبیه به این سایتها اطلاعات مردم را سرقت کند و یا در ایمیلی خود را به جای شخص دیگری جا زند. برای جلوگیری از این قبیل تخلفات از روشی متکی به روش رمز نگاری با کلید عمومی استفاده میشود.
در هنگام اتصال به چنین سایت هایی معمولاً یک قفل در نوار پایین مرورگرها ظاهر میشود. با کلیک کردن روی قفل میتوانید نام شرکت تأیید کننده ی هویت و هم چنین کلید عمومی سایت را ببینید.
شکلهای زیر مربوط به سایتGmail هستند که تأیید کننده ی آن، شرکت Thawte Server CA است.
با استفاده از روش بالا شما میتوانید مطمئن شوید که اطلاعات شما به وسیله ی افراد غیر مجازقابل بازیابی نیست. اما نمی توانید از هویت طرف مقابل اطمینان حاصل کنید، چرا که ممکن است فرد دیگری Certificate مثلاً Gmail را برای شما بفرستد. البته چون او کلید خصوصی Gmail را در اختیار ندارد، نمی تواند از اطلاعاتی که شما با کلید عمومی Gmail کد میکنید و برایش می فرستید استفاده کند، اما در هر حال شما را از ارتباط با سایت دلخواه خود باز میدارد. با اضافه کردن یک مرحله به الگوریتم بالا میتوانید از هویت طرف مقابل اطمینان حاصل کنید یعنی مطمئن شوید که او همان کسی است که کلید خصوصی مربوط به کلید عمومی اعلام شده را در اختیار دارد. سعی کنید این مرحله را پیدا کنید و یا جواب را این جا ببینید.
دقت کنید که در تمام مراحل این الگوریتمها فرض بر این است که افرادی هستند که به همه ی اطلاعات رد و بدل شده در تمام مراحل دسترسی دارند. بنابراین تمام مراحل باید به گونه ای باشد که این افراد حتی با وجود دسترسی به تمام اطلاعات رد و بدل شده، نتوانند به محتوای اطلاعات دست پیدا کنند یا خود را به جای کس دیگری جا بزنند.
البته در عمل برای حصول اطمینان، این روشها کمی پیچیده تر از چیری که ذکر شد، هستند. اما مبنای آنها همان است که مشاهده کردید. شما هم میتوانید با کمی دقت راه هایی برای امن تر کردن این روشها و یا کاربرد های دیگری برای آن ها پیدا کنید و یا با مراجعه به اینترنت صورت اصلی الگوریتم های واقعی را پیدا کنید.
در بخش بعد توضیح خواهیم داد که چه طور میتوان با استفاده از نظریه ی اعداد کلید هایی با مشخصات ذکر شده ساخت.
نویسنده: سید عباس موسوی
|