---------------------
Konu: STARTTLS
Anlatım: Fromhell
Tarih: 12/07/2014
---------------------
Merhaba forum sakinleri,
Bu makalede UnrealIRCd'ye 3.2.9-rc2 sürümü ile birlikte kazandırılan, InspIRCd gibi diğer IRC yazılımlarının da kullandığı
TLS protokolü ile alakalı bilgi vereceğim.
Öncelikle TLS hakkında neden bir döküman yazma gereği duydum, bunun IRCd ile alakası nereden geliyor diyecek olursanız; bahsettiğim IRC yazılımları ve sürümlerine uygun IRC sunucularında
/version komutu uygulamanız yeterlidir. Sunucuda kullanımı mümkün external(
harici) komutların sıralandığı
CMDS bölümünün sonuna eklenmiş
STARTTLS repliği bu sorunun yanıtı olacaktır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
Unreal3.2.10. irc.SoyLe.net FhinXOoEmM3 [*=2311]
-
CMDS=KNOCK,MAP,DCCALLOW,USERIP,STARTTLS
Daha önce
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] başlığında SSL(
secure sockets layer) ile alakalı bilgi vermiştim.
TLS ise, esası açık anahtarlı şifrelemeye dayanan SSL'in geliştirilmiş ve isim değiştirmiş halinden ibarettir. Bu yeni kavramın açılımı ise
transport layer security'dir. SSL'in TLS'ye evrimi hakkında daha detaylı bilgi almak isteyenler
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] bağlantısını ziyaret edebilirler.
STARTTLS, e-mail protokolleri içinde yaygın olarak bulunan, SSL ve düz metin bağlantılarının aynı port üzerinde bulunmasına olanak sağlayan bir protokoldür.
Bu protokol, güvenlik duvarı kurallarını kolaylaştıran (
iki yerine açılacak bir bağlantı noktası gerektiren) ve kullanıcı dostu olmasını sağlayan özelliklerinden ötürü kullanışlı ve yararlıdır. Yani SSL desteği ile dizayn edilmiş bir sunucuda, güvenli bağlantı sağlamak için OpenSSL ile SSL portundan giriş yapmadan, doğrudan giriş portu ile (
genelde 6667) güvenli bağlantı kurmanızı sağlar. Sadece bir kaç IRC istemcileri tarafından desteklenir.
InspIRCd'de ilgili modüller
m_cap.c ve
m_ssl_gnutls.co'dir. Bizim daha fazla içli dışlı olduğumuz UnrealIRCd'de ise
m_starttls.c'dir. Modülü incelemek isteyen olursa
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresini ziyaret edebilir.
Kullanmak için
/tls,
/starttls gibi kullanıcı tarafından uygulanan bir komutu yoktur. Bildiğiniz gibi bir IRC sunucusu ile bağlantı kurarken bizden habersiz, sırasıyla
PASS,
NICK ve
USER protokollerinden geçiriliriz. Bu da aynı bu protokoller gibi sunucu tarafından geçirildiğimiz bir protokoldür.
Version satırında STARTTLS bilgisi olmasına rağmen, helpop komut yardım dizininden bu konu ile alakalı yardım alamamamızın nedeni budur.
Sunucuya client tarafından SSL/TLS anahtarı gönderildikten sonra, normal bağlantı kurduğumuzda sunucuya gönderdiğimiz düz metinler sayısal bir şifrelemeye tabii tutulur ve bunun geri dönüşü yoktur. Yani tıpkı MD5'te olduğu gibi tek yönlü bir şifreleme mekanizması vardır. (
Düz metin -> Kripto iletimi varken, Kripto -> Düz metin iletimi söz konusu değildir.) Clientin sunucuya gönderdiği SSL/TLS anahtarı sonucu, bağlantımız özel bir SSL portu (
mesela 3648) üzerinden devam eder. (
Bu port IRCd konfigürasyon dosyasında belirtilen porttur, sabit değildir.)
- SSL TLS ile karşılaştırıldığında sonuç kısaca nedir?
TLS, sadece SSL'in yeni ismidir. En bariz fark, kullanıcı tarafından kullanılabilir olan her bağlantı portu ile güvenli bağlantı kurulabilmesidir.
- Bağlantıda PASS, NICK, USER protokollerine STARTTLS entegresi
Kod: Kodu kopyalamak için üzerine çift tıklayın!
<- :test.soyle.net NOTICE Auth :*** Looking up your hostname...
<- :test.soyle.net NOTICE Auth :*** Couldn't resolve your hostname; using your IP address instead
-> CAP LS
-> PASS :helpisapassion
-> NICK :Fromhell
-> USER Fromhell "" "test.soyle.net" :Life is an illusiøn øn the way death.
<- test.soyle.net CAP * LS :sasl userhost-in-names tls multi-prefix
-> STARTTLS
<- test.soyle.net 670 nickname :STARTTLS successful, go ahead with TLS handshake (tls handshake goes here)
-> CAP END
Olay bu kadar basit. Daha detaylı şekilde bilgilenmek isteyen arkadaşlar bana hem forum üstünden pm yoluyla, hem
irc.soyle.net #help kanalında ulaşabilir.
SSL/TLS evrimi IRCd version bilgilerinde kendisine yer bulduğundan ben bu konuya artık Client konusu olarak bakmıyorum, bir yandan da artık Client değil de demiyorum. Bu nedenle dökümanı IRCd yada Client alt bölümünde yayınlamak yerine Dersler ve Dökümanlar ana bölümünde yayınladım. Umarım faydasını görürsünüz.
İyi forumlar dilerim.