Rehber Web'i şifreleyin: HTTPS Everywhere

fly-d-4Tu-sIOXeA0-unsplash.jpg

İçindekiler
  1. HTTP ve HTTPS nedir?​
  2. HTTP ve HTTPS arasındaki fark nedir?​
  3. HTTPS protokolü içerisindeki şifreleme nedir?​
  4. HTTPS Everywhere kullanılmasına gerek bulunmakta mıdır?​
  5. HTTPS Everywhere eklentisini dahili olarak kullanan hizmetler nelerdir?​



HTTP ve HTTPS nedir?

HTTP.png
HTTP işlevsel olarak, Web'in veri iletişiminin temelini oluşturan bir protokol olarak karşımıza çıkmaktadır. Temelini öğrenmek gerekirse; HTTP protokolü sayesinde kullanıcılar, Web tarayıcıları üzerindeki gönderdikleri (yani istemci ile gönderdikleri) istek mesajı ile veri aktarımı yapmak istedikleri sunucudan yanıt beklerler. Buna karşılık olarak sunucu, kendisine gönderilen istek mesajına yanıt vererek isteğin sonuçlanmasını sağlar.

Örneğin, Google veya herhangi bir arama motoru üzerinde aratmak istediğiniz kelimeleri girdiniz ve sonrasında da karşınıza çıkan sonuçlar arasından birisini seçerek internet sitesine girmek istediniz. Bu durumda tarayıcınız, istemci konumundadır. Erişmek istediğiniz internet sitesi ise, sunucu konumundadır. İnternet sitesine erişmenizin isteğini sağlayan ise, internet sitesine girmek için üzerine tıkladığınız bağlantı adresidir. Bağlantı adresine tıkladığınızda, sunucuya gönderilmesi için bir dizi HTTP isteği oluşturarak gönderirsiniz. Bu sayede de internet sitesine giriş işleminiz sonuçlanmış olur.


HTTPS.jpeg
HTTPS, HTTP isteklerini ve yanıtlarını şifrelemek için TLS (veya SSL) kullanılan bir protokoldür. Sonunda bulunan S kelimesi, Secure olarak adlandırılan Güvenli anlamından gelmektedir. HTTP isteğinde bulunduğunuzda ve yanıtlarınızda, karşı tarafın (örneğin saldırgan) bu verileri şifrelenmiş (yani rastgele karakterlerden oluşmuş bir şekilde) bir şekilde gözükmesini sağlamaktadır.



HTTP ve HTTPS arasındaki fark nedir?

Kavramların açıklamalarına baktığımızda temel farkın, şifreleme olduğunu görüyoruz. Örnek olması bakımından, Cloudflare üzerindeki bulunan istek satırlarına göz atabiliriz.

HTTP isteği gönderilirken:

[CODE title="HTTP İsteği"]GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en[/CODE]

HTTP isteği yanıtlanırken:
[CODE title="HTTP İsteği Yanıtlanması"]HTTP/1.1 200 OK
Date: Wed, 30 Jan 2019 12:14:39 GMT
Server: Apache
Last-Modified: Mon, 28 Jan 2019 11:17:01 GMT
Accept-Ranges: bytes
Content-Length: 12
Vary: Accept-Encoding
Content-Type: text/plain

Hello World![/CODE]

Buradan da anlaşılacağı üzere, gönderilen veya alınan veriler herhangi bir şekilde şifrelenmiş bir şekilde değildir. Bu yüzden herhangi bir saldırgan, bu verilere rahatça göz atabilir fakat HTTPS devreye girdiğinde durum, aşağıdaki gibi gerçekleşecektir.

HTTP isteği gönderilirken:
[CODE title="HTTP İsteği"]GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en[/CODE]

Saldırgan kişinin göreceği istek:
[CODE title="Şifrelenmiş İçerik"]t8Fw6T8UV81pQfyhDkhebbz7+oiwldr1j2gHBB3L3RFTRsQCpaSnSBZ78Vme+DpDVJPvZdZUZHpzbbcqmSW1+3xXGsERHg9YDmpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVRWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHQ==
[/CODE]

Aynı şekilde saldırgan kişi, sunucunun yanıtını da şifrelenmiş bir şekilde görecektir. Bu sayede veriler, herhangi bir suistimale uğrama (güvenlik veya gizlilik riskine karşı) potansiyeli içerisinde olmayacaklardır.

HTTPS protokolü içerisindeki şifreleme nedir?

HTTP
ile aralarındaki temel farkın şifreleme olduğunu öğrendiğimize göre, bu şifrelemenin nasıl bir şekilde elde edildiğini de öğrenebiliriz.

TLS (Transport Layer Security yani Taşıma Katmanı Güvenliği), bilgisayar ağı üzerinden güvenli haberleşmeyi sağlamak için tasarlanmış kriptolama protokolleridir. Bu protokoller, açık anahtarlı şifreleme adı verilen bir teknoloji kullanır. Bu şifrelemede iki anahtar vardır, bir açık anahtar ve bir gizli anahtardır. Açık anahtar, sunucunun SSL sertifikası aracılığıyla istemci cihazlarıyla paylaşılır. Bir istemci bir sunucuyla bağlantı açtığında, iki cihaz, aralarındaki diğer iletişimi şifrelemek için oturum anahtarları adı verilen yeni anahtarlar üzerinde anlaşmak için açık ve gizli anahtarı kullanır.

Tüm HTTP istekleri ve yanıtları daha sonra bu oturum anahtarlarıyla şifrelenir, böylece iletişimi kesen herkes düz metni değil, yalnızca rastgele bir karakter dizisini görebilir.

HTTPS Everywhere kullanılmasına gerek bulunmakta mıdır?

HTTPS.png

Tüm web sunucuları; belirtilen bu iki protokol arasından birisini (HTTP veya HTTPS) kullanmaktadırlar fakat risk olmaması açısından, HTTPS kullanılması gerekmektedir. HTTPS protokolü bulunmayan web siteleri bulunduğundan, eklentiler vasıtasıyla da problemimizi çözebiliriz. Bu durumda karşımıza, Electronic Frontier Foundation tarafından geliştirilen HTTPS Everywhere eklentisi çıkmaktadır.

Tarayıcınıza eklemek için, kendi sitelerinde bulunan istemciye tıklayabilir, varsayılan ayarları ile kullanabilir veya aşağıdaki örnekte de belirtildiği üzere kullanabilirsiniz.

httpseverywhere.png



Varsayılan ayarları dışında (kırmızı dikdörtgen içerisinde), görselde de belirtilen (mavi dikdörtgen içerisinde) seçeneği de açık tutabilirsiniz. @26318'ın da açılmasını önermiş olduğu opsiyonel olarak sunulan bu seçenek ile, HTTP protokolünü hâlâ daha sunucu içerisinde bulunduran siteler başta olmak üzere, tüm siteler içerisindeki HTTPS protokolü sorgulanacaktır ve buna bağlı olarak tüm sitelerde şifreleme işlemi gerçekleşmek istenecektir.

Brave ve Tor tarayıcıları üzerinde, dahili olarak bulunduğunu da belirtebiliriz. Bu tarayıcılara eklemek için herhangi bir mağazadan edinmenize gerek yoktur.




https-everywhere-infographic.png

Çalışma prensibinden olan şifreleme için sınırlı destek sunar ancak kullanımını zorlaştırır. Örneğin, varsayılan olarak şifrelenmemiş HTTP olarak veya şifrelenmemiş siteye geri dönen bağlantılarla şifrelenmiş sayfaları doldurabilirler. HTTPS Everywhere uzantısı, bu sitelere yapılan istekleri HTTPS'ye yeniden yazmak için akıllı teknoloji kullanarak bu sorunları giderir.







15 Nisan 2021 tarihinde gerçekleştirilen anlaşma sayesinde HTTPS Everywhere, DuckDuckGo içerisindeki akıllı şifreleme teknolojisini de kendi bünyesi içerisinde sunmaya başladı. Daha öncesinden, @26318'ın önerisiyle HTTPS Everywhere için bir makale oluşturmaya karar vermiştim fakat ortada olan anlaşma olaylarından dolayı, eklentinin içerisine eklenecek olan özelliğin de beklenmesi gerektiğini düşündüm. Bu durumdan dolayı makale, beklenilen zamandan daha uzun sürede oluşturulmaya başlandı.

HTTPS Everywhere eklentisi dışında, Smart HTTPS adında bir eklenti de bulunuyor fakat tam olarak farkının ne olduğu konusunda pek emin değilim. Geliştirme konusunda da GitHub üzerinde hâlâ daha güncel bir verisi bulunamamaktadır.

Smart HTTPS geliştirilmeye devam edilmiyor olabilir veya özellikler konusunda, iyileştirmeler yapılmıyor (geliştirici eklenti hakkında herhangi bir açıklama yapmadığından) gibi gözüküyor. Elde ettiğim veriler olmadığından dolayı da, karşılaştırma tarzında bir içerik de oluşturamadım. Bundan dolayı HTTPS Everywhere'ın tek başına kullanılması yeterli olacaktır diye düşünüyorum. Ek olarak; HTTPS konusunda bildiğiniz farklı eklentiler bulunuyorsa, konu içerisinde paylaşabilirsiniz.



Konu içerisinde eksik, hatalı ya da bilgilendirici olarak gördüğünüz alanları belirtebilir veya HTTPS Everywhere hakkındaki sorularınızı sorabilirsiniz.

Kaynakça
 
İçindekiler
  1. HTTP ve HTTPS nedir?​
  2. HTTP ve HTTPS arasındaki fark nedir?​
  3. HTTPS protokolü içerisindeki şifreleme nedir?​
  4. HTTPS Everywhere kullanılmasına gerek bulunmakta mıdır?​
  5. HTTPS Everywhere eklentisini dahili olarak kullanan hizmetler nelerdir?​



HTTP ve HTTPS nedir?

Eki Görüntüle 976708
HTTP işlevsel olarak, Web'in veri iletişiminin temelini oluşturan bir protokol olarak karşımıza çıkmaktadır. Temelini öğrenmek gerekirse; HTTP protokolü sayesinde kullanıcılar, Web tarayıcıları üzerindeki gönderdikleri (yani istemci ile gönderdikleri) istek mesajı ile veri aktarımı yapmak istedikleri sunucudan yanıt beklerler. Buna karşılık olarak sunucu, kendisine gönderilen istek mesajına yanıt vererek isteğin sonuçlanmasını sağlar.

Örneğin, Google veya herhangi bir arama motoru üzerinde aratmak istediğiniz kelimeleri girdiniz ve sonrasında da karşınıza çıkan sonuçlar arasından birisini seçerek internet sitesine girmek istediniz. Bu durumda tarayıcınız, istemci konumundadır. Erişmek istediğiniz internet sitesi ise, sunucu konumundadır. İnternet sitesine erişmenizin isteğini sağlayan ise, internet sitesine girmek için üzerine tıkladığınız bağlantı adresidir. Bağlantı adresine tıkladığınızda, sunucuya gönderilmesi için bir dizi HTTP isteği oluşturarak gönderirsiniz. Bu sayede de internet sitesine giriş işleminiz sonuçlanmış olur.


Eki Görüntüle 976714HTTPS, HTTP isteklerini ve yanıtlarını şifrelemek için TLS (veya SSL) kullanılan bir protokoldür. Sonunda bulunan S kelimesi, Secure olarak adlandırılan Güvenli anlamından gelmektedir. HTTP isteğinde bulunduğunuzda ve yanıtlarınızda, karşı tarafın (örneğin saldırgan) bu verileri şifrelenmiş (yani rastgele karakterlerden oluşmuş bir şekilde) bir şekilde gözükmesini sağlamaktadır.



HTTP ve HTTPS arasındaki fark nedir?

Kavramların açıklamalarına baktığımızda temel farkın, şifreleme olduğunu görüyoruz. Örnek olması bakımından, Cloudflare üzerindeki bulunan istek satırlarına göz atabiliriz.

HTTP isteği gönderilirken:

[CODE title="HTTP İsteği"]GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en[/CODE]

HTTP isteği yanıtlanırken:
[CODE title="HTTP İsteği Yanıtlanması"]HTTP/1.1 200 OK
Date: Wed, 30 Jan 2019 12:14:39 GMT
Server: Apache
Last-Modified: Mon, 28 Jan 2019 11:17:01 GMT
Accept-Ranges: bytes
Content-Length: 12
Vary: Accept-Encoding
Content-Type: text/plain

Hello World![/CODE]

Buradan da anlaşılacağı üzere, gönderilen veya alınan veriler herhangi bir şekilde şifrelenmiş bir şekilde değildir. Bu yüzden herhangi bir saldırgan, bu verilere rahatça göz atabilir fakat HTTPS devreye girdiğinde durum, aşağıdaki gibi gerçekleşecektir.

HTTP isteği gönderilirken:
[CODE title="HTTP İsteği"]GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en[/CODE]

Saldırgan kişinin göreceği istek:
[CODE title="Şifrelenmiş İçerik"]t8Fw6T8UV81pQfyhDkhebbz7+oiwldr1j2gHBB3L3RFTRsQCpaSnSBZ78Vme+DpDVJPvZdZUZHpzbbcqmSW1+3xXGsERHg9YDmpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVRWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHQ==
[/CODE]

Aynı şekilde saldırgan kişi, sunucunun yanıtını da şifrelenmiş bir şekilde görecektir. Bu sayede veriler, herhangi bir suistimale uğrama (güvenlik veya gizlilik riskine karşı) potansiyeli içerisinde olmayacaklardır.

HTTPS protokolü içerisindeki şifreleme nedir?

HTTP
ile aralarındaki temel farkın şifreleme olduğunu öğrendiğimize göre, bu şifrelemenin nasıl bir şekilde elde edildiğini de öğrenebiliriz.

TLS (Transport Layer Security yani Taşıma Katmanı Güvenliği), bilgisayar ağı üzerinden güvenli haberleşmeyi sağlamak için tasarlanmış kriptolama protokolleridir. Bu protokoller, açık anahtarlı şifreleme adı verilen bir teknoloji kullanır. Bu şifrelemede iki anahtar vardır, bir açık anahtar ve bir gizli anahtardır. Açık anahtar, sunucunun SSL sertifikası aracılığıyla istemci cihazlarıyla paylaşılır. Bir istemci bir sunucuyla bağlantı açtığında, iki cihaz, aralarındaki diğer iletişimi şifrelemek için oturum anahtarları adı verilen yeni anahtarlar üzerinde anlaşmak için açık ve gizli anahtarı kullanır.

Tüm HTTP istekleri ve yanıtları daha sonra bu oturum anahtarlarıyla şifrelenir, böylece iletişimi kesen herkes düz metni değil, yalnızca rastgele bir karakter dizisini görebilir.

HTTPS Everywhere kullanılmasına gerek bulunmakta mıdır?


Tüm web sunucuları; belirtilen bu iki protokol arasından birisini (HTTP veya HTTPS) kullanmaktadırlar fakat risk olmaması açısından, HTTPS kullanılması gerekmektedir. HTTPS protokolü bulunmayan web siteleri bulunduğundan, eklentiler vasıtasıyla da problemimizi çözebiliriz. Bu durumda karşımıza, Electronic Frontier Foundation tarafından geliştirilen HTTPS Everywhere eklentisi çıkmaktadır.

Tarayıcınıza eklemek için, kendi sitelerinde bulunan istemciye tıklayabilir, varsayılan ayarları ile kullanabilir veya aşağıdaki örnekte de belirtildiği üzere kullanabilirsiniz.Eki Görüntüle 978237

Eki Görüntüle 976742
Brave ve Tor tarayıcıları üzerinde, dahili olarak bulunduğunu da belirtebiliriz. Bu tarayıcılara eklemek için herhangi bir mağazadan edinmenize gerek yoktur.

Çalışma prensibinden olan şifreleme için sınırlı destek sunar ancak kullanımını zorlaştırır. Örneğin, varsayılan olarak şifrelenmemiş HTTP olarak veya şifrelenmemiş siteye geri dönen bağlantılarla şifrelenmiş sayfaları doldurabilirler. HTTPS Everywhere uzantısı, bu sitelere yapılan istekleri HTTPS'ye yeniden yazmak için akıllı teknoloji kullanarak bu sorunları giderir.

15 Nisan 2021 tarihinde gerçekleştirilen anlaşma sayesinde HTTPS Everywhere, DuckDuckGo içerisindeki akıllı şifreleme teknolojisini de kendi bünyesi içerisinde sunmaya başladı. Daha öncesinden, @26318'ın önerisiyle HTTPS Everywhere için bir makale oluşturmaya karar vermiştim fakat ortada olan anlaşma olaylarından dolayı, eklentinin içerisine eklenecek olan özelliğin de beklenmesi gerektiğini düşündüm. Bu durumdan dolayı makale, beklenilen zamandan daha uzun sürede oluşturulmaya başlandı.
HTTPS Everywhere eklentisi dışında, Smart HTTPS adında bir eklenti de bulunuyor fakat tam olarak farkının ne olduğu konusunda pek emin değilim. Geliştirme konusunda da GitHub üzerinde hâlâ daha güncel bir verisi bulunamamaktadır.

Smart HTTPS geliştirilmeye devam edilmiyor olabilir veya özellikler konusunda, iyileştirmeler yapılmıyor (geliştirici eklenti hakkında herhangi bir açıklama yapmadığından) gibi gözüküyor. Elde ettiğim veriler olmadığından dolayı da, karşılaştırma tarzında bir içerik de oluşturamadım. Bundan dolayı HTTPS Everywhere'ın tek başına kullanılması yeterli olacaktır diye düşünüyorum. Ek olarak; HTTPS konusunda bildiğiniz farklı eklentiler bulunuyorsa, konu içerisinde paylaşabilirsiniz.



Konu içerisinde eksik, hatalı ya da bilgilendirici olarak gördüğünüz alanları belirtebilir veya HTTPS Everywhere hakkındaki sorularınızı sorabilirsiniz.

Kaynakça
Firefox içindeki Build-in olana göre farkı ne acaba, Firefox’a dahili olan gelince silmiştim.
 
Sanırım birisi ille de https kullanacaksın diye zorluyor, diğeri site desteklemediği zaman uyarıp http üzerinden devam ediyor.
Hayır, ikisinde de yoksa “abi bunda yok HTTP kullanayım mı” diye soruyor.
Protokol olmadığı için gökten inmiyor HTTPS :D
Herkesin imza aynı bu arada :D.
 
Hayır, ikisinde de yoksa “abi bunda yok HTTP kullanayım mı” diye soruyor.
Protokol olmadığı için gökten inmiyor HTTPS :D
Herkesin imza aynı bu arada :D.
Kaspersky ile bulit-in HTTPS modunu kullanamıyorum. Mesela HTTPS desteği olamayn bir siteye girdiğimde Kaspersky, sertifika geçersiz diyip bağlantıyı kesiyor. İlerleyemiyorum.

Not: Sorunu çözdüm. Kaspersky ayarlarında Mozilla güvenli trafiğini tara seçeneğini kapayınca düzeliyor.
 
Ben şu ayarı açmanızı öneririm. HTTPS desteklemeyen sitelere girerken uyarı verecektir. Ama isterseniz siteye de girebilirsiniz. İmkanınız varsa konuya eklemenizi öneririm.

Screenshot_30.png
 
Kaspersky, Bitdefender, ESET gibi büyük antivirüs yazılımlarını kullanıyorsanız zaten onlar sitelerin içeriğine erişmek için HTTPS müdahalesi yaparak şifreyi çözüyorlar. Bunu güvenliğinizi artırma amacıyla yaptıklarını söyleseler de yeni güvenlik zaafiyetlerinin ortaya çıkmasına neden oldular. Bunun yanında şifrelenmiş içeriğe eriştiklerinden kullanıcıların gizliliğine de zarar verdiler.

Konuyla ilgili olarak internet servis sağlayıcıları da DNS isteklerini manipüle ettiklerinden DNS over HTTPS desteğini de işlevsiz hale getirdiler.

Artık phishing ve malware sitelerinde de SSL sertifikası bulunduğu bilinen bir gerçek.

Bazı devlet sitelerinde HTTPS kullanılmıyor. Milli Eğitim Bakanlığı'nın sitesi gibi.
meb.PNG

Sadece login işlemlerinde kullanılıyor.
meb2.PNG

Hatta bazen login işlemlerinde bile kullanılmadığı oluyor.
meb3.PNG


Bu gibi durumları düşündüğümüzde önemsiz bir işlev gibi geliyor bana, açıkçası yalnızca hesap işlemleri gibi durumlarda kullanılması makul geliyor. Bu işin sonuçta pazarlama boyutu da var ve kapitalist emeller doğrultusunda yaygınlaştığını bile düşünüyorum. Gerçekten gerekli ve her yerde mutlaka olması gereken bir şey olsaydı en başta MEB sitesinde olması gerekirdi, diye düşünüyorum.
Yanlışım varsa düzeltirseniz memnun olurum.
 
Kaspersky, Bitdefender, ESET gibi büyük antivirüs yazılımlarını kullanıyorsanız zaten onlar sitelerin içeriğine erişmek için HTTPS müdahalesi yaparak şifreyi çözüyorlar. Bunu güvenliğinizi artırma amacıyla yaptıklarını söyleseler de yeni güvenlik zaafiyetlerinin ortaya çıkmasına neden oldular. Bunun yanında şifrelenmiş içeriğe eriştiklerinden kullanıcıların gizliliğine de zarar verdiler.

Konuyla ilgili olarak internet servis sağlayıcıları da DNS isteklerini manipüle ettiklerinden DNS over HTTPS desteğini de işlevsiz hale getirdiler.

Artık phishing ve malware sitelerinde de SSL sertifikası bulunduğu bilinen bir gerçek.

Bazı devlet sitelerinde HTTPS kullanılmıyor. Milli Eğitim Bakanlığı'nın sitesi gibi.
Eki Görüntüle 978291
Sadece login işlemlerinde kullanılıyor.
Eki Görüntüle 978295
Hatta bazen login işlemlerinde bile kullanılmadığı oluyor.
Eki Görüntüle 978298

Bu gibi durumları düşündüğümüzde önemsiz bir işlev gibi geliyor bana, açıkçası yalnızca hesap işlemleri gibi durumlarda kullanılması makul geliyor. Bu işin sonuçta pazarlama boyutu da var ve kapitalist emeller doğrultusunda yaygınlaştığını bile düşünüyorum. Gerçekten gerekli ve her yerde mutlaka olması gereken bir şey olsaydı en başta MEB sitesinde olması gerekirdi, diye düşünüyorum.
Yanlışım varsa düzeltirseniz memnun olurum.
Malware siteleri verileri siteye verdiğimiz verilerle değil daha çok uygulamadaki malware ile aldığını düşünüyorum.
Devlet sitelerindeki mesele ise bence bizim biraz sorumsuzluk yapmamız.
Antivirüs meselesini duymamıştım.
 

Yeni konular

Geri
Yukarı