intranet-starttls

STARTTLS Komutu

 

STARTTLS komutu herhangi bir parametre olmadan kullanılır.

 

İstemci STARTTLS komutunu verdikten sonra sunucu aşağıdaki cevap kodlarından biri ile cevap verir.

 

220 – Ready to start TLS — TLS başlamaya hazır.

501 – Syntax error (no parameters allowed) — İfade hatası (parametre izni yok)

454 – TLS not available due to temporary reason — TLS geçici bir sebeple şu an kullanıma müsait değil.

 

Açıkça başvurulan sunucu, STARTTLS komutları uygulanmadan önce SMTP komutlarını kabul edebilmelidir. STARTTLS komutuna karşılık olarak 220 cevabı ulaşıldıktan sonra istemci hemen TLS işlemlerine başlamalıdır.

 

Açıkça başvurulmayan SMTP sunucusu komutları kabul etmeden önce istemcinin TLS ile anlaşmasını istemeyi tercih edebilir. Bu durumda sunucu şu cevap kodunu verir.

 

505 Must issue a STARTTLS command first — Önce STARTTLS komutunu uygulamalısınız.

 

STARTTLS ve QUIT dışındaki bütün komutlarda istemci ve sunusu ENHANCEDSTATUSCODES ESMTP uzantısını kullanıyor ise “5.7.0” durum kodu alınabilir.

 

Eğer SMTP istemcisi pipeline metodu kullanıyor ise STARTTLS komutu gruptaki son komut olmalıdır.

 

STARTTLS komutunun sonuçları

TLS doğrulaması tamamlandıktan sonra her 2 taraf da (istemci/sunucu) kimlik doğrulamaya ve gizlilik hakkına göre devam edip etmeyeceğine karar vermelidir. SMTP istemcisi ve sunucusu, TLS doğrulaması sona erse bile herhangi bir doğrulama kimliği veya gizlilik hakkı olmadan ilerlemeyi tercih edebilir. Çünkü birçok SMTP servisi kimlik doğrulama veya gizlilik hakkı olmadan işlem görür, fakat bazı SMTP istemci veya sunucuları sadece belirli bir gizlilik ve doğrulama sağlandığında işleme devam etmeyi tercih edebilir.

 

Eğer SMTP istemcisi doğrulamanın veya gizlilik hakkının devam etmek için yeterli olmadığına karar verir ise TLS doğrulamasından sonra hemen SMTP QUIT komutunu uygulamalı. Eğer SMTP sunucusu doğrulamanın veya gizlilik hakkının devam etmek için yeterli olmadığına karar verir ise istemciden gelen her SMTP komutunu (QUIT hariç) 554 kodu ile yanıtlar. ("Güvenlik eksikliği nedeniyle komut reddedildi" gibi bir mesaj ile)

 

TLS doğrumalasında diğer tarafın doğrulamasına güvenme ya da güvenmeme kararı yerel bir meseledir. Bununla birlikte karar için genel tüzük şu şekildedir:

 

– SMTP istemcisi SMTP sunucusunu doğrulamak isteyebilir. Sunucu belgesinin, istemcinin gerçekten bağlandığını düşündüğü domain adına sahip olup olmadığını teyit etmek amacıyla doğrulama yapar. (helo veya ehlo)

 

– Açıkça başvurulan SMTP sunucusu SMTP istemcisinden gelen bütün belgeleri kabul etmek isteyebilir, ve mesajın başlığına istemci tarafından düzenlenmiş, belge hakkında ayırt edici bir takım bilgiler koymak isteyebilir.

 

Kullanım Örneği

Aşağıdaki örnek istemci ile sunucunun nasıl TLS oturumu başlatabileceğini gösteriyor.

(S:Server/Sunucu, C:Client/İstemci)

 

S: <TCP port 25 üzerinden bağlantı beklenir>

C: <Bağlantı kurulur.>

S: 220 mail.imc.org SMTP service ready

C: EHLO mail.ietf.org

S: 250-mail.imc.org is ever so glad you called

S: 250 TLS

C: STARTTLS

S: 220 Go ahead

C: <TLS doğrulaması başlatırır>

C & S: <TLS oturumunu doğrular>

C & S: <doğrulama sonucunu kontrol eder>

C: <SMTP komutu göndererek işleme devam edilir>