SSH چیست؟ + انواع و کاربردهای آن
زمانی که شما در اینترنت و سایتهای مختلف در حال جستجو هستید، سایتی که اطلاعات درون آن قرار دارد به عنوان سرور و کامپیوتر شما که از طریق اینترنت به این سایت (سرور) متصل شده است به عنوان کلاینت (Client) شناخته میشود. این ارتباط میان سرور و کلاینت باید یک ارتباط امن باشد که اطلاعات را به سرعت و بدون مشکل به دست کلاینت برساند. همچنین برعکس بتواند درخواستهای کلاینت را از سرور استخراج کند. پروتکل SSh یک پروتکل برای برقراری این ارتباط امن است که در ادامه بیشتر با آن آشنا خواهید شد.
پروتکل اس اس اچ سال هاست که برای سرورهای لینوکسی مورد استفاده قرار میگیرد و اطلاعات را به صورت کاملا امن و یکپارچه منتقل میکند. این اطلاعات در واقع به صورت رمزنگاری شده جابجا میشوند. برای شناخت بهتر این پروتکل و کاربردهای آن در شبکههای کامپیوتری در ادامه با ما همراه باشید.
پروتکل SSh چیست؟
همانطور که گفته شد پروتکل SSh یک راه برقراری ارتباط امن میان سرور و کلاینت در سیستمهای لینوکس است که اطلاعات را به صورت رمزنگاری شده منتقل میکند. در این نوع سیستمها به کمک اس اس اچ اطلاعات در یک سمت رمزنگاری میشوند و در سمت دیگر این رمز گشوده میشود و اطلاعات خوانده میشوند. تمامی این مراحل به صورت خودکار و توسط سیستم انجام میشود.
این عبارت در واقع مخفف secure shell یا پوسته امن است که نشان میدهد مهمترین ویژگی این پروتکل امنیتی است که برای جابجایی اطلاعات ایجاد میکند. SSh همچنین تحت استاندارد IEFT نیز قرار دارد. این پروتکل از سال ۱۹۸۶ مشغول به کار شده و پروتکلهای اینترنتی مختلف را تحت پوشش خود قرار داده است.
پروتکل SSh هم اکنون در دو نسخه SSH-1 و SSH-2 قابل استفاده است. در حالت پیش فرض سیستم قادر است از هر دو نوع این پروتکل پشتیبانی کند. مگر اینکه در کانفیگ تنظیمات به گونهای باشد که تنها امکان پشتیبانی از یکی از نسخهها تایید شده باشد.
تفاوت دو نسخه SSh در چند مورد مختلف خلاصه میشود. اول اینکه SSH-1 نسخه اولیه این پروتکل است و استفاده از آن رایگان میباشد. اما SSH-2 نسخه پیشرفتهتر است و استفاده از آن رایگان نخواهد بود. همچنین این دو نسخه در زمینه تایید کاربر نیز باهم تفاوتهایی دارند. در این مقایسه میتوان گفت که SSH-1 انواع مختلفی از متدهای تایید کاربر را پوشش میدهد اما از اتصال همزمان آنها پشتیبانی نمی کند. در مقابل SSH-2 با وجود اینکه امکان پشتیبانی از برخی متدها را ندارد اما نیاز کاربران به وسیله آن کاملا برطرف شده است.
این پروتکل دارای امکاناتی نظیر تایید کاربران در زمان اتصال، ایجاد تونل امن بر بستر پروتکل TCP/IP، امکان احراز هویت خارجی کاربران، انتقال خودکار اتصالات برقرار شده روی سرور اصلی، انتقال امن و رمزنگاری شده میان کلاینت و سرور و غیره میباشد.
منظور از رمزنگاری در پروتکل SSH چیست؟
زمانی که میان یک کلاینت و یک سرور لینوکسی یک ارتباط از طریق پروتکل اس اس اچ برقرار میشود اطلاعات به صورت کاملا امن جابجا و دریافت میشوند و هیچ شخص سومی یا نمیتواند به اطلاعات دسترسی داشته باشد و یا اگر دسترسی پیدا کند نمیتواند آنها را بخواند.
در واقع این رمزنگاری به این صورت است که اطلاعات در صورت سرقت شدن هم قابل خواندن نیستند و باید کلید مخصوص آنها که توسط کلاینت و سرور بر سر آن توافق شده است در دسترس فرد باشد تا بتواند اطلاعات را رمزگشایی کند.
برقراری ارتباط SSh
پروتکل SSh از زمان ورود خود به عرصه اینترنت به عنوان جایگزین بسیار مناسبی برای پروتکل telnet شد و امنیتی که این پروتکل از آن محروم بود را برای سیستمهای لینوکسی فراهم کرد. در پروتکل telnet تمام اتصالات به صورت پیامهای متنی بدون رمزنگاری ارسال میشدند اما در اس اس اچ این اطلاعات متنی حاوی رمزگذاری هستند. یکی از مهمترین موارد استفاده از SSH، متصل شدن به یک سرور و اجرای فرمان میباشد اما به این دلیل که با استفاده از این پروتکل میتوان یک کانال امن را به وجود آورد، از آن به منظور کپی یک فایل از یک سیستم به سیستم دیگر به صورت ایمن با استفاده از SCP یا انتقال امن اطلاعات (SFTP) نیز استفاده میشود.
برای ایجاد یک ارتباط اس اس اچ، نیاز است که کلید عمومی کاربر (به عنوان آغاز کننده ارتباط) به عنوان یک کلید عمومی مجاز در سرور شناخته شود. برای اینکه بتوانید یک کلید عمومی را به عنوان کلید قابل اعتماد در سرور تعریف کنید، باید آن را در یک فایل مربوط به کلیدهای عمومی مجاز در سرور قرار دهید.
به این ترتیب، زمانی که کاربر درخواست ایجاد ارتباط اس اس اچ را برای سرور ارسال میکند، ابتدا کلید عمومی کاربر و درست بودن کلید خصوصی مربوط به آن بررسی و سپس ارتباط ایجاد میشود. بنابراین هر سیستمی که یک کپی از کلید عمومی و خصوصی را دارا باشد، میتواند مثل یک کاربر مشابه به سرور متصل گردد.
تاریخچه پروتکل SSh
این پروتکل نخستین بار در سال ۱۹۹۵ و توسط فردی به نام Tatu Ylonen ابداع گردید. همانطور که گفته شد پروتکل تلنت چندان امن نبود و به طور جدی امکان سرقت اطلاعات از طریق آن وجود داشت. به این ترتیب این فرد یک لایهی امن و کدگذاری شده برای تلنت تعریف کرد و نام آن را SSh گذاشت و این پروتکل را به یکی از امن ترین پروتکلهای انتقال اطلاعات میان کلاینت و سرور تبدیل کرد.
کاربردهای SSh در ایجاد امنیت
همانطور که گفته شد، پروتکل SSH از رمزنگاری کردن اطلاعات در ارسال آنها استفاده میکند. در آغاز کار به وسیله کلیدهای خصوصی و عمومی کلاینت و سرور و با استفاده از رمزنگاری نامتقارن، دو طرف درباره یک کلید مشترک به توافق میرسند و سپس به کمک این کلید و با استفاده از رمزنگاری متقارن، ارسال کننده پیامها را به صورت رمز درمیآورد و دریافتکننده پیام با کلید مشابه آنها را رمزگشایی میکند.
زمانی که قرار باشد یک فرد برای دریافت اطلاعات به این مسیر حمله کند شرایط متفاوت خواهد بود. با وجود اینکه کلید مشترک فقط در دست کلاینت و سرور است، این فرد امکان دسترسی به محتوای پیام ها را ندارد. اما اگر فرد مهاجم بتواند خود را در مسیر تبادل اطلاعات قرار دهد، میتواند پیامی که در حال ارسال بوده است را دریافت کرده و به جای آن پیام دلخواه خود را به گیرنده ارسال کند.
در زمان پیادهسازی پروتکل SSH برای رفع این مشکل از هش (hash) استفاده میکنند. هش به معنای خلاصه یا نشانهای از هر پیام است. هش برای هر پیام، منحصر به فرد است (یعنی اگر پیام تغییر کند، مقدار هش نیز تغییر میکند) و از روی آن نمیتوان پیام را به دست آورد. مقدار هش، با روشهای مختلفی محاسبه میشود که کلاینت و سرور در هنگام ایجاد ارتباط دربارهی روش محاسبهی آن به توافق میرسند.
پس از برقراری ارتباط میان کلاینت و سرور، در کنار هر پیام ارسال و رمزنگاری شده مقدار هش مربوط به آن که از روی متن پیام، کلید توافق شده و شمارهی پیام محاسبه میشود نیز، ارسال میگردد. دریافتکننده پیام بعد از رمزگشایی و دست یافتن به محتوای پیام، هش پیام را محاسبه کرده و اگر با هشی که دریافت کرده مطابقت داشته باشد، پیام را به عنوان یک پیام معتبر شناسایی میکند. به این ترتیب با این روش، فردی که قصد سرقت اطلاعات را دارد چون به کلید مورد توافق دسترسی ندارد، نمیتواند هش درست را بسازد و در نتیجه نمیتواند پیام مورد نظر خود را ارسال کند.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.