THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

Cipher Suit Seçiminden Kaynaklanan Zafiyetlerin Giderilmesi

CmcEagle - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2013
Nereden:
Spain
Yaş:
33
Mesajlar:
136
Konular:
111
Teşekkür (Etti):
1
Teşekkür (Aldı):
12
Ticaret:
(0) %
23-06-2013 17:59
#1
Cipher Suit Seçiminden Kaynaklanan Zafiyetlerin Giderilmesi
SSL (Secure Socket Layer) protokolü Netscape tarafından, İnternet üzerinde web sunucular ve tarayıcıların güvenli haberleşmeleri için geliştirilmiştir. Zaman içinde daha da geliştirilerek TLS (Transport Layer Security) olarak adlandırılmıştır. SSL Protokolü'nün ana hedefi kişisel gizlilik ve güvenilirlik sağlamaktır. Bu protokol ile istemci (client) ve sunucu (server) arasında trafik şifrelenir, şifreleme için kripto anahtarları kullanılır. Kısa uzunlukta olan anahtarlarla (<128 bit) şifrelenmiş olan verilerin kırılıp okunabilmesi, daha uzun anahtarla şifrelenmiş olan verinin kırılıp okunmasından çok daha basittir. Güvenli veri iletişimi sağlamak için uzunluğu kısa anahtarların kullanılmaması gerekir. Yazıda istemci ve sunucu tarafında düşük güvenlikli, uzunluğu kısa anahtarların kapatılması anlatılacaktır.
Tanımlar:

Plaintext: Şifrelenmemiş asıl metin.
Ciphertext: Bir anahtarla şifrelenmiş metin.
Cipher Suit: Kripto algoritması-algoritma modu-anahtar uzunluğu bileşimidir. (Cipher Suit yerine yazı içerisinde yer yer cipher ifadesi kullanılmaktadır.)
  • Block Cipher: Şifreleme algoritmalarında kullanılan bir yöntem olan blok şifreleme, açık mesajın (plain text) belirli uzunluklarda bloklara bölünmesi ile çalışır.
  • Stream Cipher: Bloklar halinde çalışmayıp, devam eden semboller üzerinde çalışan cipherlara Stream Ciphers denir.
Kripto işleminde kullanılan anahtarlar uzunluklarına göre üçe ayrılmaktadır.
  • Düşük (Low): 128 bitten daha kısa olananahtardır.
  • Orta (Medium): 128 bit uzunluğunda olan anahtarlardır.
  • Yüksek (High): 128 bitten daha uzun olan anahtarlardır.

Kripto algoritmaları, şifreleme ve şifre çözme işlemlerinde kullanılan anahtarın aynı ya da farklı olmasına göre ikiye ayrılır:
  • Simetrik Anahtarlama (symmetric key algorithms): Şifrelemede ve şifre çözmede aynı anahtar kullanılır. Bu anahtarlama türünde, anahtar alıcı ve gönderici tarafından bilinmeli ve başka kimse tarafından bilinmemelidir.
  • Asimetrik Anahtarlama (asymmetric key algorithms): Şifrelemede ve şifre çözmede farklı anahtar kullanılır. Bunlar public key (açık anahtar) ve private key (gizli-özel anahtar)’lerdir. Açık anahtardan, gizli anahtar öğrenilemez ve böylece şifrelemenin de güvenliği sağlanmış olur.
Üçlü El Sıkışması (3-way-handshake): İstemci bilgisayarın HTTPS protokolü üzerinden sunucu sisteme bağlanması Üçlü Tokalaşma (3 way handshake) yöntemiyle gerçekleştirilmektedir. Buna göre İstemci bilgisayar bağlantı kurmak istediği sunucuya içinde kendini tanıtıcı bilgileri bulunduran bir SYN (Synchronize) paketi gönderir. Sunucu SYN paketini aldığında alındı onayı olan ACK (Acknowledgement) paketiyle birlikte kendini tanıtıcı bir SYN paketi gönderir. İstemci bilgisayarın sunucudan gelen SYN+ACK paketini alır son adımda göndereceği ACK paketiyle Üçlü Tokalaşma tamamlanır ve veri akışı başlar.
ŞEKİL – 1
Network tarafında giden ve gelen paketleri incelemek için Wireshark yazılımı kullanılabilir.
Wireshark programından üçlü el sıkışma paketlerini incelemek istersek:
1. adım olan SYN paketinin yollanması (istemci):
ŞEKİL – 2
2. adım olan SYN-ACK paketinin yollanması (sunucu):
ŞEKİL – 3
3. adım olan ACK paketinin yollanması (istemci):
ŞEKİL – 4
Cipher Açıklaması:

Cipher’ların isimlerinin açıklamalarını gösteren tablo aşağıdaki gibidir.
Kx: Key Exchange Algorithm.
Au: Authentication Algorithm.
Enc: Encryption.
Mac: Message Authentication Code Algorithm; Mesajın bütünlüğünü ve değiştirilmediğini kontrol etmek için kullanılır. Bütünlük sayesinde mesaj üzerinde yapılan rastlantısal ve kasıtlı mesaj değişiklikleri algılanır. Mesajın değiştirilmemesi kontrolü sayesinde ise mesajı gönderen doğrulanmış olur.
İstemci Tarafındaki Cipherların Ayarlanması:

SSL (Secure Sockets Layer) Transport katmanı için Uygulama katmanında, anahtar değişimi için asimetrik, gizlilik için simetrik şifreleme kullanan, network üzerindeki iletişim güvenliğini amaçlayan kriptografi protokolüdür. Network üzerinden gönderilen kişisel bilgilerin güvenliği sadece SSL’i aktif ederek sağlanamaz. SSL en az 3 protokol (SSLv2, SSLv3 ve TLSv1) ve farklı güçlerde şifreleme algoritmaları bulundurur. Bu şifreleme algoritmalarının bir kısmı bugün ciddi kullanımlar için yeterince güçlü değildir. SSL üçlü el sıkışması sırasında istemci ve sunucu kullanılacak olan algoritma ve anahtar uzunluğu konusunda pazarlık yaparlar. İstemci kendisinin kullanabildiği algoritma ve anahtar uzunluğu için bir listesini sunucuya gönderir ve sunucu da bu listeden kendisinin de kullanabildiği bir tanesini seçer ve istemciye gönderir. Bir değişiklik yapılmadığı durumlarda düşük güvenlikli bir kripto işlemineimkan sağlanmış olabilir.
Cipher listesi paylaşımı ve tercih edilen cipher’ın wireshark sayesinde alınan ekran görüntüleri aşağıdaki gibidir.
1. adım, Client Hello ve Client Cipher Listesi
ŞEKİL – 5
2. adım, Server Hello ve Tercih edilen Cipher Suit
ŞEKİL – 6
Ve 3. Adım Client Key Exchange
ŞEKİL – 7
Microsoft tabanlı sistemlerde, kullanılacak Cipherlar schannel.dll ile kontrol edilebilir. Schannel.dll, Internet Explorer 3.x ve 4.x için kullanılan ve 128-bit güçlü şifreleme sağlayan dynamic link library’dir.
Değişiklik yapılmadığı durumda, aşağıdaki tabloda gösterildiği şekilde cipher önceliği vardır:
ŞEKİL – 8


İstemci tarafında zayıf anahtar (< 128 bit) kullanılmasını engellemek için schannel.dll üzerinden değişiklik yapmamız gerekir. Schannel’da değişiklik yapmak için Registry Editor (regedit) çalıştırılarak HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\SecurityProviders\SCHANNEL dalına gelinir.

Low Cipher’ların, Düşük Güvenlikli Protokol ya da hash’lerin, kullanılmasını engellemek için, disable edilmesi istenilen dizinin istemci dosyasının içerisine sağ tıklanarak yeni DWORD yaratılır, DWORD’ün adı Enabled olarak değiştirilir ve değeri 0x00000000 yapılır. Cipher enable edilmek isteniyorsa da DWORD değeri 0x00000001 yapılır.
ŞEKİL – 9
ŞEKİL – 10
ŞEKİL – 11
Ayrıca, aynı işlem .reg dosyası hazırlayarak da yapılabilir. Bu sayede, hem değişikliklerden önceki durumların yedekleri alınabilir, hem de değişikliklerin tek tek yapmak yerine topluca yapılmasına olanak sağlanır.
Bunun için SCHANNEL’a sağ tıklanıp Export seçeneği seçilir. Dosya adı verildikten sonra kaydedilir. Yaratılan dosyaya sağ tıklanıp edit seçilirse, aşağıdaki gibi schannel’in içeriğinin ve durumlarının bulunduğu notepad sayfası açılır.
Kod:
Windows Registry Editor Version 5.00 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] 	
 	 	  	
 	 	"EventLogging"=dword:00000001 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 128/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Client] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Client] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client] 	
 	 	  	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
Burada kapatmak istediğimiz cipherların bir alt satırına "Enabled"=dword:00000000, açmak istediklerimize ise "Enabled"=dword:00000001 yazılır. Aşağıda, düşük güvenliği olan cipherları, 128 bit’den daha düşük olan cipherları kapattığımız reg dosyasının içeriği bulunmaktadır.
Kod:
Windows Registry Editor Version 5.00 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] 	
 	 	"EventLogging"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 128/128] 	
 	 	"Enabled"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128] 	
 	 	"Enabled"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]  	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168] 	
 	 	"Enabled"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Client] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Client] 	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server] 	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client] 	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server] 	
 	 	"Enabled"=dword:00000000 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client] 	
 	 	"Enabled"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server] 	
 	 	"Enabled"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0] 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client] 	
 	 	"Enabled"=dword:00000001 	
 	 	[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] 	
 	 	"Enabled"=dword:00000001
Kaydettikten sonra bu reg dosyasına çift tıklanarak ayarların register'a yüklenmesi sağlanabilir. Değişikliklerin geçerli olabilmesi için bilgisayarın yeniden başlatılması gerekmektedir.
TLS1.0, SSL3.0 ve SSL2.0 enabled ve bütün cipherlar Enabled iken sunucuya önerilen cipher listesi Şekil- 12’te görülebilir.
ŞEKİL- 12
Web sunucusu ssl2 hizmeti vermediğinden dolayı bize TLS1.0 desteği sağlayan cipherı desteklediğini belirten mesajı Şekil – 13’de yolluyor.
ŞEKİL – 13
Ve seçilen TLS_RSA_WITH_RC4_128_MD5 cipher ile güvenli iletişim başlıyor.
RemoveWeakCiphers.reg dosyası (yukarda oluşturulan dosya) çalıştırılarak Low cipher’ların (128 bitten düşük) kapatılması sağlanır.
İstemcinin yolladığı cipherlar listesi Şekil-14’te görülebilir.
ŞEKİL-14
Trafiğin iletilmesinde seçilen cipher Şekil-15 ‘tedir.
ŞEKİL - 15
Sunucu Tarafındaki Cipherların Ayarlanması:

İstemci üzerinde nasıl daha güvenli cipher ayarlandığı incelendi. Aynı şekilde sunucu üzerinde de nasıl ayarlandığını incelenecektir.
Örnek olarak, Apache Web Sunucusu üzerinde yapılması gereken konfigürasyonlardan bahsedilecektir.
Apache Web Sunucusu üzerinden Low Cipherları disable ederek, istemci gönderdiği cipher listesinde Low cipherlar olsa bile, bunlarla bağlanamaması sağlanabilir. Fakat cipher listesini güncellerken akılda bulunması gereken bir konu da Sunucu ile İstemci arasında iletişimsizliğe sebep olunabileceğidir. İstemci tarafında bulunan cipher listesinde sunucu tarafında belirtilmeyen cipherlar mevcut ise iletişim sağlanamaz.
<install_dir>\conf dizininin altında server.xml dosyası içerisinde yapılması gereken konfigürasyonlar:
ŞEKİL - 16
İçerik olarak sunucu tarafında hangi cipher desteklenmesi isteniyorsa server.xml’in içerisindeki ciphers kısmına ekleme veya çıkartma işlemi gerçekleştirilebilir. Server.xml dosyasındaki cipher adlarının yazım sırası, tercih sıralamasını etkilemez. Server.xml dosyasına hangi sıra ile yazılmış olurlarsa olsunlar, Şekil – 8’de verilen sıralamaya göre tercih edilirler.
Server.xml üzerinde aşağıdaki satırlar bulunarak gerekli düzenlemeler yapılır:
ŞEKİL – 17
sslProtocol="TLS" değeri sadece TLS üzerinden iletişime geçmesi için verilen değerdir. Buraya SSLv2 yazılırsa sadece SSLv2 üzerinden iletişime geçecektir. Buradaki değişiklik sadece Apache Web Sunucusu tarafında yapılmıştır. Bu durumda istemci tarafından yollanan cipher listesinde sadece TLS desteği verilen cipherlar arası seçim yapılacaktır.
Kod:
sslProtocol="TLS" ciphers="SSL_RSA_EXPORT_WITH_RC4_40_MD5,  SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,  SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,  SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA,  SSL_RSA_WITH_RC4_128_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA,  TLS_DHE_DSS_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_NULL_MD5,  SSL_RSA_WITH_NULL_SHA, SSL_DH_anon_WITH_RC4_128_MD5,  TLS_DH_anon_WITH_AES_128_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,  SSL_DH_anon_WITH_DES_CBC_SHA, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5,  SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA"
İstemci, sunucuya https bağlantı isteği gönderdiğinde yollanan cipher listesi;
ŞEKİL – 18
Sunucu tarafından kabul edilen cipher ise,
ŞEKİL - 19
Bir başka yöntem olarak server.xml dosyası tercih edilecek şekilde düzenlenebilir; kullanılması istenilen veya daha güvenli bir cipher var ise ya tek başına o cipher’ı server.xml’e koymak gerekir ya da yukarda verilen tercih listesinde (Şekil - 8) tercih edilecek cipher’ın önceliği daha düşük olan cipherları listeye ekleyerek ilerlenebilir.
Burada SSL_RSA_WITH_3DES_EDE_CBC_SHA cipher kullanması öngörüldü. Bunun için yeni liste aşağıdaki gibidir.

ŞEKİL – 20
İstemci tarafından yollanan cipher listesi,
ŞEKİL – 21
Sunucu tarafından bağlantı sırasında kullanılan önceliği en yüksek olan cipher Şekil – 22’de görülebilir.
ŞEKİL – 22
Makalede istemci ve sunucu arasındaki https bağlantısının nasıl daha güvenli hale getirilebileceği hem sunucu hem de istemci tarafından ele alındı. Buradaki ayarları yaparken, Sunucuda low cipherların kaldırıldığında, istemcinin de low cipherlarla bağlanamayacağı unutulmamalıdır.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler