SSH چیست. احتمالاً شما قبلاً درک اولیه ای از نحوه کار SSH دارید. پروتکل SSH از یک مدل مشتری-سرور برای احراز هویت دو طرف و رمزگذاری دادهها بین آنها استفاده میکند. SSH مخفف Secure Shell است و یک اصطلاح عمومی است که به نسخههای پروتکلهای SSH، به عنوان مثال SSH-1 و SSH-2، از جمله موارد دیگر مانند OpenSSH اشاره دارد. در حالی که اغلب به عنوان نسخه ای از SSH نامیده میشود، به طور دقیق، مجموعه ای است که از ابزارهای شبکه ای تشکیل شده است که بر اساس پروتکل SSH هستند. در این مقاله به شما خواهیم گفت SSH چیست و در ادامه با تکنیکهای رمزگذاری آن آشنا خواهیم شد.
SSH چیست؟
SSH یا پوسته ایمن، یک پروتکل امن و رایج ترین راه برای مدیریت ایمن سرورهای راه دور است. SSH با استفاده از فناوری رمزگذاری پس از خرید سرور مجازی، مکانیزمی را برای ایجاد یک ارتباط امن رمزنگاری شده بین دو طرف، احراز هویت هر یک از طرفین ، و ارسال دستورات و خروجی فراهم میکند.
در این راهنما، تکنیکهای رمزگذاری اساسی که SSH از آن استفاده میکند و روشهایی که برای ایجاد اتصالات امن استفاده میکند را بررسی خواهیم کرد. این اطلاعات میتواند برای درک لایه های مختلف رمزگذاری و مراحل مختلف مورد نیاز برای ایجاد یک اتصال و احراز هویت هر دو طرف مفید باشد.
به منظور ایمن سازی انتقال اطلاعات در سرور اختصاصی، SSH از انواع مختلفی از تکنیک های دستکاری دادهها در نقاط مختلف تراکنش استفاده میکند. این روشها شامل اشکال رمزگذاری متقارن، رمزگذاری نامتقارن و هش کردن است. امکان تنظیم SSH در وب سرورها نظیر IIS نیز میباشد.
تکنیک های رمزگذاری آن
۱- رمزگذاری متقارن
رمزگذاری متقارن نیز به عنوان رمزگذاری کلید مشترک شناخته میشود، معمولاً یک کلید واحد است یا از یک جفت کلید برای رمزگذاری و رمزگشایی یک پیام استفاده میشود. این کلید برای رمزگذاری کل جلسه ارتباط بین مشتری و سرور استفاده میشود.
هم کلاینت و هم سرور بر روی یک روش توافق میکنند و یک کلید مشترک تولید میکنند که البته هرگز برای شخص ثالث فاش نمیشود و از این رو برای ارسال پیام های کلید مشترک/مخفی استفاده میشود. جالب ترین بخش در مورد این روش این است که کلید هرگز بین مشتری و سرور رد و بدل نمیشود. در عوض، هر ماشین کلید مشترک را به طور مستقل با استفاده از روشی که قبلاً بر روی آن توافق شده بود محاسبه میکند. حتی اگر یک دستگاه شخص ثالث دادههارا ضبط کند، نمیتواند رمزگشایی کند زیرا روش مورد استفاده برای رمزگذاری دادهها ناشناخته است.
رمزگذاری متقارن نوعی رمزگذاری است که در آن میتوان از یک کلید برای رمزگذاری پیام های طرف مقابل و همچنین رمزگشایی پیام های دریافتی از طرف دیگر استفاده کرد. این بدان معناست که هر کسی که کلید را در دست دارد میتواند پیامها را برای هر کسی که کلید را در دست دارد رمزگذاری و رمزگشایی کند.
۲- رمزگذاری نامتقارن
برخلاف روش فوق، این روش از یک جفت کلید برای رمزگذاری و رمزگشایی استفاده میکند. این کلیدها به عنوان کلیدهای عمومی و خصوصی شناخته میشوند. کلید عمومی، همانطور که از نام آن پیداست، به طور گسترده ای توزیع شده است. کلید خصوصی از نظر عملکرد ارتباط نزدیکی با کلید عمومی دارد اما فقط با دانستن کلید عمومی قابل محاسبه نیست.
کلید خصوصی یک عامل مهم در کل ارتباط است زیرا محرمانه بودن به این واقعیت بستگی دارد که کلید خصوصی برای هیچ شخص ثالثی فاش نشود و این تنها کلیدی است که قادر به رمزگشایی پیام است که توسط کلید عمومی خود رمزگذاری میشود. بنابراین، اگر هر یک از طرفین مایل به رمزگشایی و خواندن پیامها هستند، باید کلید خصوصی را در اختیار داشته باشند.
رمزگذاری نامتقارن با رمزگذاری متقارن متفاوت است زیرا برای ارسال دادهها در یک جهت واحد، دو کلید مرتبط مورد نیاز است. یکی از این کلیدها کلید خصوصی و دیگری کلید عمومی نام دارد.
کلید عمومی را میتوان آزادانه با هر طرفی به اشتراک گذاشت. با کلید جفت شده خود مرتبط است، اما کلید خصوصی را نمیتوان از کلید عمومی جدا کرد. رابطه ریاضی بین کلید عمومی و کلید خصوصی به کلید عمومی اجازه میدهد تا پیام هایی را رمزگذاری کند که فقط با کلید خصوصی قابل رمزگشایی هستند. این یک توانایی یک طرفه است، به این معنی که کلید عمومی هیچ توانایی رمزگشایی پیام هایی را که مینویسد ندارد، و همچنین نمیتواند هر چیزی را که کلید خصوصی ارسال میکند رمزگشایی کند.
کلید خصوصی باید کاملاً مخفی نگه داشته شود و هرگز نباید با طرف دیگری به اشتراک گذاشته شود. کلید خصوصی تنها مؤلفه ای است که قادر به رمزگشایی پیام هایی است که با استفاده از کلید عمومی مرتبط رمزگذاری شده اند. به موجب این واقعیت، هر نهادی که قادر به رمزگشایی این پیامها باشد، نشان داده است که کنترل کلید خصوصی را در دست دارد.
۳- هش کردن
شکل دیگری از دستکاری دادهها که SSH از آن بهره میبرد، هش رمزنگاری است. توابع هش رمزنگاری روش هایی برای ایجاد یک “امضای” مختصر یا خلاصه ای از مجموعه ای از اطلاعات هستند. ویژگی های اصلی متمایز آنها این است که هرگز قرار نیست معکوس شوند، عملاً غیرممکن است که به طور قابل پیش بینی بر آنها تأثیر بگذارند، و کاملا منحصر به فرد هستند.
استفاده از یک تابع هش و پیام باید همان هش را ایجاد کند. اصلاح هر بخشی از دادهها باید یک هش کاملا متفاوت ایجاد کند. یک کاربر نباید بتواند پیام اصلی را از یک هش مشخص تولید کند، اما باید بتواند تشخیص دهد که آیا یک پیام داده شده یک هش مشخص را ایجاد کرده است یا خیر.
با توجه به این ویژگی ها، هشها عمدتاً برای اهداف یکپارچگی دادهها و تأیید صحت ارتباطات استفاده میشوند. استفاده اصلی در SSH با HMAC یا کدهای احراز هویت پیام مبتنی بر هش است. این کدها برای اطمینان از دست نخورده بودن و اصلاح نشده بودن متن پیام دریافتی استفاده میشوند.
به عنوان بخشی از مذاکره رمزگذاری متقارن که قبلاً ذکر شد، یک الگوریتم کد احراز هویت پیام (MAC) انتخاب میشود. الگوریتم با کار بر روی لیست انتخابهای قابل قبول MAC مشتری انتخاب میشود. اولین مورد در این لیست که سرور از آن پشتیبانی میکند استفاده خواهد شد.
هر پیامیکه پس از مذاکره درباره رمزگذاری ارسال میشود باید حاوی یک MAC باشد تا طرف مقابل بتواند یکپارچگی بسته را تأیید کند. MAC از راز مشترک متقارن، شماره توالی بسته پیام و محتوای پیام واقعی محاسبه میشود.
MAC خود به خارج از ناحیه رمزگذاری شده متقارن به عنوان قسمت نهایی بسته ارسال میشود. محققان معمولاً این روش را برای رمزگذاری دادههاو سپس محاسبه MAC توصیه میکنند.
نتیجه گیری
یادگیری در مورد مراحل مذاکره اتصال و لایه های رمزگذاری در کار در SSH میتواند به شما کمک کند که اتفاقاتی هنگام ورود به یک سرور راه دور میافتد را درک کنید. اکنون میتوانید رابطه بین اجزا و الگوریتم های مختلف را تشخیص دهید و بفهمید که چگونه همه این قطعات با هم قرار میگیرند. برای کسب اطلاعات بیشتر در مورد SSH، میتوانید به سایت وبرمز رجوع کنید و از خدمات آن در این زمینه بهره مند گردید.