Forum
Merhaba arkadaşlar, sorum hem Exchange hem Linux içerikli olduğu için bu bölüme yazdım.
Kusura bakmayın uzun bir anlatım oldu. Kaynaklarda da tam aradığım cevabı bulamadım. Konuları teknik anlamda iyi anlama yanında guvenlik endişelerim de oluştugu için uzunca yazdım.
SMTP authentication, POP3 authentication ve cleartext ve plaintext kavramı ile ilgili kafa karışıklığı yaşıyorum. Testlerimi ve sonuclar üzerinden sorularımı paylaşmak istedim. Test ortamımda daha kolay geldği için SMTP için Exchange 2003 ve Linux Sendmail, POP3 inçin yine Exchange 2003 ve Dovecot kullanıyorum.
İlk olarak Exchange 2003 ve Linux Sendmailde SMTP tarafında authentication denemesi yapıyorum.
Telnet ile yaptıgım denemelerde Hem Exchange 2003 hem Linux sendmail tarafında authentication metodunu seçerek başarılı login yapabildim.
Authentication metodu olarak LOGIN metodunu seciyorum.
Genel olarak aşağıdaki gibi komutlar uyguluyorum. Hem Windows da hem de Linux de username -> metin password -> surat şeklinde.
LOGIN metodunda username ve password için base64 kodlaması ile kullanıcı adı ve şifreyi yazıyorum, aşağıdaki adımlarda görüldüğü gibi.
telnet 192.168.10.10 25
ehlo 192.168.10.10
auth LOGIN
334 VXNlcm5hbWU6
bWV0aW4= (metin kelimesinin base64 kodlanmış hali)
c3VyYXQ= (surat kelimesinin base64 kodlanmış hali)
235 2.7.0 Authentication successful.
Authentication onaylandı. Sonrasında mail atabiliyorum komutlarla.
Şimdi plaintext kavramından ilk anladıgım username ve şifrenin oldugu gibi yazılması yani metin ve surat şeklinde ve client server iletişiminde username ve şifrenin direkt metin ve surat şeklinde açık gitmesiydi. Ancak burada username ve password base64 e göre kodlanmış halde yazarsam login olabilidim. Sorular böyle başladı zaten 🙂
İlk sorum şu:
1.. Bu base64 kodlama sonucu oluşan karakterler aynen görüldüğü şekliyle mi networkte dolaşıyor, plaintext anlamı karakterlerin okunabilir olması mı? Çünkü yukardaki kodlanmış ifadeler normal karakter görünüyor.
Diğer taraftan benzer Telnet testini POP3 tarafı için yaptığımda hem Exchange 2003 hem de Linux Pop3 server olan Dovecot tarafında denemelerim soyle
Exchange de 110 portuna Telnet yapılınca
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.6944.0 (adana.adana.com) ready.
user metin
+OK
pass surat
+OK User successfully logged on.
Görüldüğü gibi username ve şifre base64 ile kodlanmış haliyle yazılmadan da login olabildim POP3 tarafına.
Fakat ,
Auth metodunu belirterek yazarsam hata veriyor Exchange bunu desteklemiyor, aşağıdaki adımlarda görüldüğü gibi.
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.6944.0 (adana.adana.com) ready.
auth login
-ERR The specified authentication package is not supported. Şeklinde sonuç alıyorum.
Exchange 2003 POP3 server özelliklerinde default secimler var. Yani Basic Authentication da seçili.
Basic Authenticatin parantez içinde Password clear text şeklinde gönderilir yazıyor. Diğer bir soru da burada başlıyor çünkü şaşırdım. Şaşırma sebebim şu;
Linux Dovecot da yine 110 portuna telnet ile bağlanıp
user metin
pass surat şeklinde username ve password kodlanmamış haliyle login olabildiğim gibi
auth login komutunu kullandıktan sonra
username ve şifreyi base64 ile kodlanmış haliyle yazdıgımda da login olabiliyorum ve mailleri listeletebiliyorum POP3 tarafında.
İkinci sorum şu:
2.. Clear text kavramı plain text ten farklı mı? Varsa farkı nedir, username ve password metin ve surat şeklinde açıkça mı gider Exchange 2003 ta, base64 kodlaması olmadan?
Exchange 2003 tarafında POP3 için en azından auth LOGIN metodu ile authentication yapabilmem için ne yapabilirim?
Bunların dışında şunları da teknik açıdan merak ediyorum:
3.. SMTP tarafında da Telnet bağlantısı kurarken LOGIN metodu ile base64 kodlaması kullanmadan düz bir şekilde username ve password için metin ve surat yazarak bağlantı yapabilir miyim? Hem Exchange hem de Linux Sendmail tarafında?
Çünkü bunu yapamamak aklıma şunu getirdi: SMTP özelliği olarak mı, en azından base64 kodlaması ile SMTP iletişim kuruyor ki en azından metin ve surat şeklinde açık ça gitmesin diye credential bilgileri. Küçük bir güvenlik tedbiri olarak universal çalışma şekli mi yani.
4.. Telnet ile POP3 tarafında da direkt username ve password metin ve surat şeklinde login olamasın, en azından bunlar base64 kodlamasıyla gitsin networkte bu şekilde dolaşsın şeklinde bir ayar yapılabilir mi? Exchange ve Linux Dovecot da? Ciddi bir guvenlik acıgı olusmaz mı bu haliyle?
Sabrınız için teşekkür ederim.
Merhaba,
1 - Evet, kodlama sabit olduğu için kodlama olsun olmasın bu açık bir şekilde verinin dolaştığını gösterir. Yani sizin parolanızın herhangi bir "şifreleme algoritması" kullanılmadan dolaştığını gösterir.
2 - aslında aynı şey ama aynı ortamlar için kullanılmaz, tanımlarından anlayacaksınız
Plain text = okunabilir metin, güvenlik durumu önemli değil.
Clear text = şifreleme olmadan gönderilen veri (network üzerinde görülebilir).
3 - Hayır kullanamazsınız, bu dil ile ilgili bir durum, örnek Türkçe konuşmayı bilmek için Ç, İ, Ş gibi harfleri kullanmanız şart, bu da eğer smtp protokolünde istemciden sunucuya şifre ileteceksen mutlaka base64 kullanman şart.
4 - Hayır POP3 protokolünde böyle bir özellik yoktur, ancak güvenlik için SSL/TL kullanılır, bu sayede network üzerinde paketler açık görünmez. Ama şöyle düşn pop3 bitti, artık pop3 için kafayı yormaya gerek yok, gelecekte pop3 diye bir protokol olmayacak, örnek office 365 başta güncel mail sistemleri pop3 ü artık desteklemiyor.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Hocam çok hızlısınız, bulunmaz nimet bu cevaplar benim için, çok teşekkür ederim.
Bu sırada tekrar test yapıyordum. İlginç bir sonuç buldum heyecanımı bağışlayın:
Exchange 2003 de POP3 üzerinde Basic Authentication(Password is sent in clear text) secenegi aktif iken
aşağıdaki şekliyle açıkça yazdım username ve şifreyi , sonuç başarılı oldu
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.6944.0 (adana.adana.com) ready.
user metin
+OK
pass surat
+OK User successfully logged on.
Sonra username ve password ün base64 kodlanmış halini yazdım. login olamadı
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.6944.0 (adana.adana.com) ready.
user bWV0aW4=
+OK
pass c3VyYXQ=
-ERR Logon failure: unknown user name or bad password.
Yani Basic Authentication seçiliyken base64 ile kodlanmış şekliyle istemiyor credential bilgisini bu testlerden anladığım.
Basic Authenticatin tamamen iptal edilince aşağıdaki sonuçları aldım
ilk olarak authentication için olduğu gibi kullanıcı adını yazar yazmaz, Clear text passwords have been disabled uyarısı verdi aşağıdaki gibi.
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.6944.0 (adana.adana.com) ready.
user metin
-ERR Clear text passwords have been disabled for this protocol.
Sonrasında yine Basic Authenticatin tamamen iptal iken base64 ile kodlanmış şekilde authentication yapmaya kalktım.
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.6944.0 (adana.adana.com) ready.
user bWV0aW4= (base64 kodlanmış hali)
-ERR Clear text passwords have been disabled for this protocol.
yine aynı..username için ne yazarsam yazayım bunu clear text olarak girilmiş kabul ediyor.
Ama en üstteki ilk denemede Basic Authentication(Password is sent in clear text) secenegi aktif iken username ve password olarak açıkça metin ve surat yazabilmem, clear text in base64 ve ve benzeri bir kodlamayla kodlanmamış ham bilgi anlamını da içerdiği söylenebilir mi?
Tabi bir de yaptığım her test Telnet ile olduğundan acaba Telnet üzerinden client - server iletişimi, Outlook gibi bir uygulama ile serverın arasındaki iletişimdeki davranışın aynısı mıdır, paketlerin içeriği, credantial ların gönderiliş şekli vb açıdan? Bu da önemli bir nokta olabilir belki.
Tekrar teşekkürler Hocam.
Exchange Server testleri ile pop testleri farklıdır, örneğin pop için maillerin bir kopyasını sunucuda bırak diye bir seçenek vardır, insanlar sanır ki bu pop3 protokolünün bir özelliği, oysaki bu outlook istemcisinin bir özelliği, özetle exchange için bu tur şeyler olabilir, yani protokole ek özellikler sunduğu için farklı sonuçlar alabilirsin.
Amacın tam olarak nedir? Akademik bir makale mi yazmaya çalışıyorsun?
Clear text, temel olarak uygulama katmanında decode, decrypt işlemi olmadan veriyi aynen string olarak alması demektir. Network katmanında bir TLS koruması yok ise network capture araçları ile her şey okunabilir. kullanıcı adı ve şifre gibi.
base64 de aslında cleartext sayılır çünkü o bir şifreleme değildir, bir encoding mekanizmasıdır. POP3 server bu base64 mu diye bakmaz, dolayısıyla base64 string yine clear text bir input kabul edilir.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
base64 de aslında cleartext sayılır çünkü o bir şifreleme değildir, bir encoding mekanizmasıdır. POP3 server bu base64 mu diye bakmaz, dolayısıyla base64 string yine clear text bir input kabul edilir.
Hakan hocama destek. Network dinleniyorsa ortadaki adamın (Man In the Middle) base64 veriyi anlayıp çözmesi saniye sürmeyecektir.
Hakan Hocam ve Serkan Hocam cevaplar için çok teşekkür ederim.
Amacım bol senaryo ile sistemlerin davranış şeklini öğrenmek, aslında kendime akademik çalışma gibi bir şey:-)
Bu sırada base64 kodlaması örneğinde olduğu gibi bilgi sahibi sizler sayesinde, yanlış anladığım konuları da düzeltmiş oluyorum.
