Telnet یکی از پرکاربردترین شیوه های ارسال و دریافت رمزهای عبور برای ورودهای محلی و از راه دور است. ما در این مقاله به بررسی telnet و نقش آن در سیستم های احراز هویت شبکه پرداختیم.
اصلیترین وظیفه اینترنت آن است که بتواند سرویسهای مختلفی را برای کاربران فراهم کند. برای مثال کاربران میخواهند برنامههای مختلفی را به صورت از راه دو بر روی سایتها گوناگون انجام دهند و نتایج آن را به رایانههای شخصی خودشان انتقال دهند. این نیازمند استفاده از یک برنامه کلاینت سرور مانند برنامههائی است که از پروتکلهای FTP و SMTP پشتیبانی میکنند.
بهترین راهکار در اینجا آن است که یک برنامه کلاینت سرور عمومی ایجاد کرد که به کاربران اجازه دسترسی به هر برنامه کاربردی بر روی رایانه راه دور خودشان را بدهد. به همین خاطر، ما نیازمند استفاده از یک برنامه هستیم که به کاربران اجازه بدهد بتوانند از راه دور وارد رایانه خودشان بشود. یکی از مشهورترین برنامههای مورد استفاده در این زمینه Telnet است که میتواند این کار را انجام دهد. عبارت Telnetمخفف شده دو کلمه Terminal Network به معنی «پایانه شبکه» است.
Telnet یک سیستم ارتباط از راه دو است که این امکان را میدهد که آنچه که بر روی رایانه محلی اتفاق میافتد از راه دور قابل مشاهده باشد.
در اینجا ما دو نمونه سیستم ورود (Login system) داریم:
ورود محلی (Local Login)
زمانی که یک کاربر وارد یک رایانه محلی میشود، به آن «ورود محلی – Local Login» میگویند. هنگامی که ایستگاه کاری (Workstation) یک ترمینال را فعال میکند، کی استورکها (Keystrokes) (نام و پسورد و یا شیوههای مختلف احراز هویت دیگر) به وسیله کاربر وارد شده و به وسیله درایور ترمینال (Terminal Driver) احراز هویت انجام میشود. ترمینال درایور این کاراکترها را به سیستم عامل میدهد و آن نیز به نوبه خود نرمافزارهای دیگر را فراخوان میکند.
هرچند برای سیستم عاملها هر کاراکتر معنای به خصوصی دارد. برای مثال در سیستم عامل UNIX ترکیبی کاراکترها میتوانند معنای خاصی داشته باشد. برای مثال ترکیب کلیدهای Ctrl+Z در این سیستم عاملها به معنای برگشت دادن و لغو فعالیت انجام شده است. در این شرایط نباید هیچ مشکلی در ترمینال درایور ایجاد شود و آن باید به خوبی بتواند با این سیستم کاراکتری کار کند. اما در سیستم لاگین استفاده از کلیدهای ترکیبی میتواند سبب تغییر کاراکترها شده و در ورود به سیستم مشکل ایجاد کند.
ورود از راه دور (Remote Login)
این شیوه در زمانی به کار گرفته میشود که یک کاربر بخواهد از طریق یک برنامه کنترل از راه دور وارد یک هاست و یا رایانه محلی شود و به همین خاطر باید اقدام به ورود از راه دور (Remote Login) کند.
ورود از راه دور چطور انجام میشود؟
در سایتهای محلی
کاربر در ابتدا نام کاربری و پسورد خود را در درایور ترمینال وارد میکند، پس از آن این کاراکترها به Telnet کلاینت ارسال میشوند. Telnet کلاینت نیز به نوبه خود این کاراکترها را تبدیل به کاراکترهای عمومی (Universal character) میکند که قابل درک برای تمام دیوایسهای شبکه باشد در اینجا از ترمینال مجازی شبکه برای بررسی کاراکترها استفاده میشود و سپس آنها را به پشته TCP/IP در شبکه تحویل داده میشود.
در سایت راه دور
دستورات در فرم NVT توسط دستگاه پردازشگر به پروتکل TCP/IP ترجمه میشوند. در اینجا کاراکترها به سیستم عامل تحویل داده شده و سپس آنها به سرور Telnet ارسال میشود. سرور Telnet این کاراکترها را به نحوی که برای کامپیوتر راه دور قابل فهم باشد تبدیل میکند. هرچند کاراکترها نمیتوانند به صورت مستقیم به سیستم عامل رایانه محلی و یا راه دور تحویل داده شود و این رایانهها قابلیت دریافت مستقیم کاراکترها از سرور telnet را ندارند. به همین خاطر در اینجا لازم است که از نرمافزارهائی استفاده شود که بتوانند این کاراکترها را به سرور Telnet تحویل دهند. سیستم عامل این کاراکترها را پس از آن دریافت کرده و به برنامههای نرمافزاری و کاربردی تحویل میدهد.
ترمینال مجازی شبکه (Network Virtual Terminal (NVT))
ترمینال مجازی شبکه یک رابط کاربری است که میتواند نحوه تحویل دادهها و دستورات ارسال شده بر روی شبکه رایانهای را مشخص کند.
در دنیای امروزی، سیستمها به صورت غیرمتجانس (Heterogeneous) هستند. برای مثال سیستم عامل میتواند یک ترکیب خاص از کاراکترها را به عنوان خاتمه توکن فایل قبل کند، در حالی که سیستم عامل دیگری همان ترکیب را به عنوان برگشت دادن عمل انجام شده درک میکند. برای مثال در سیستم عامل DOS استفاده از Ctrl+z به معنای برگشت به مرحله قبل است، در حالی که در سیستم عامل Unix برای این کار باید از کلیدهای ترکیبی Ctrl+D استفاده کرد.
Telnet به نحوی این موضوع را با تعریف کردن رابط کاربری عمومی که به عنوان رابط مجازی شبکه (NVT) شناخته میشود حل کرده است.
کلام آخر
نرمافزار سمت کلاینت Telnet کاراکترهائی را که از ترمینالهای محلی دریافت میشود را به NVT تحویل داده و سپس آنها به شبکه تحویل داده میشود. سرور Telnet نیز دادههای دریافت شده از NVT را تحویل گرفته و آن را به زبان قابل فهم برای رایانههای راه دور خود ترجمه میکند.