فنی · پاسخ مستند

SMTPS و TLS ضمنی (implicit TLS)

SMTPS با TLS ضمنی (implicit TLS) روشی برای امن‌سازی ارتباطات SMTP است که در آن handshake پروتکل TLS بلافاصله پس از اتصال انجام می‌شود. برخلاف STARTTLS که به‌صورت یک نشست متن آشکار (cleartext) شروع می‌شود، SMTPS ایجاب می‌کند اتصال پیش از تبادل هر فرمان SMTP رمزگذاری شده باشد.

سازوکار عملکرد

در اتصال با TLS ضمنی، کلاینت یک اتصال TCP با سرور برقرار می‌کند، معمولاً روی پورت 465. سرور بلافاصله انتظار handshake پروتکل TLS را دارد. اگر handshake شکست بخورد یا کلاینت تلاش کند متن ساده ارسال کند، سرور اتصال را قطع می‌کند. این کار تضمین می‌کند هیچ داده حساسی، مانند اعتبارنامه‌های احراز هویت یا محتوای ایمیل، هرگز به‌صورت آشکار منتقل نشود.

مقایسه با STARTTLS

STARTTLS یک TLS صریح (explicit TLS) است؛ یعنی نشست روی پورت 587 یا 25 به‌صورت متن آشکار شروع می‌شود. کلاینت فرمان STARTTLS را می‌فرستد تا اتصال به حالت رمزگذاری‌شده ارتقا یابد. SMTPS با TLS ضمنی این مرحله ارتقا را حذف می‌کند و خطر حملات تنزل (downgrade) را از بین می‌برد؛ حملاتی که در آن مهاجم مرد میانی فرمان STARTTLS را حذف می‌کند تا نشست را به متن ساده وادار کند.

اهمیت برای فرستندگان

استفاده از TLS ضمنی تضمین امنیتی قوی‌تری برای ایمیل تراکنشی فراهم می‌کند. این روش جلوی نشت تصادفی متن آشکار را می‌گیرد و با تبدیل رمزگذاری به پیش‌شرط ارتباط، پیکربندی کلاینت را ساده می‌کند. توسعه‌دهندگان می‌توانند با ابزارهای رایگان SendHQ پیکربندی کلی ایمیل خود را بررسی کنند و مطمئن شوند زیرساختشان با استانداردهای امنیتی امروزی هم‌خوان است.

نکات عملیاتی

بسیاری از سیستم‌های قدیمی هنوز به پورت 25 یا 587 متکی‌اند. هنگام پیکربندی SMTPS، مطمئن شوید کتابخانه کلاینت به‌طور مشخص روی حالت SSL یا TLS تنظیم شده است، نه STARTTLS. اگر کلاینت به اشتباه برای استفاده از STARTTLS روی پورت 465 پیکربندی شود، نتیجه timeout یا reset شدن اتصال خواهد بود، چون سرور منتظر handshake پروتکل TLS است در حالی که کلاینت متن ساده ارسال می‌کند.

نمونه پیاده‌سازی

یک پیاده‌سازی معمول شامل پیکربندی کلاینت SMTP برای اتصال به smtp.example.com روی پورت 465 با فعال بودن گزینه SSL/TLS است. کلاینت سوکت TCP را باز می‌کند، handshake پروتکل TLS را انجام می‌دهد و فقط پس از آن فرمان EHLO را برای آغاز فرایند انتقال ایمیل می‌فرستد.

پرسش‌هایی که تیم‌ها می‌پرسند

SMTPS با TLS ضمنی از کدام پورت استفاده می‌کند؟

پورت استاندارد SMTPS با TLS ضمنی 465 است که در IANA ثبت شده و RFCهای جدید آن را برای submission امن توصیه می‌کنند.

آیا SMTPS با STARTTLS متفاوت است؟

بله، SMTPS ضمنی است؛ یعنی رمزگذاری بلافاصله شروع می‌شود. STARTTLS صریح است؛ به‌صورت متن آشکار شروع می‌شود و با یک فرمان به حالت رمزگذاری‌شده ارتقا می‌یابد.

چرا TLS ضمنی را به TLS صریح ترجیح دهیم؟

TLS ضمنی در برابر حملات تنزل امن‌تر است، چون تا زمانی که ابتدا یک تونل رمزگذاری‌شده امن برقرار نشود، از برقراری ارتباط خودداری می‌کند.

منابع اصلی