Ne zaman alırsın
https://encrypted.google.com/search?q=%s
Is %s
sorgu şifreli? Yoksa sadece cevap mı? Değilse, Google neden genel içeriğini de şifrelemeyle sunsun?
Ne zaman alırsın
https://encrypted.google.com/search?q=%s
Is %s
sorgu şifreli? Yoksa sadece cevap mı? Değilse, Google neden genel içeriğini de şifrelemeyle sunsun?
Yanıtlar:
URL ve hatta ( GET
) komutu dahil olmak üzere tüm istek şifrelenir . Bir proxy sunucusu gibi müdahale eden bir tarafın öğrenebileceği tek şey, hedef adres ve bağlantı noktasıdır.
Bununla birlikte, bir TLS el sıkışmasının Client Hello paketinin, bazıları yalnızca daha yeni işletim sistemlerinde olsa da, tüm modern ana tarayıcılar tarafından kullanılan SNI uzantısı (teşekkürler @hafichuk) aracılığıyla tam nitelikli alan adını düz metin olarak tanıtabileceğini unutmayın.
DÜZENLEME: (Bu bana bir "İyi Cevap" rozeti kazandırdığından, sanırım tüm soruyu yanıtlamalıyım…)
Yanıtın tamamı da şifrelenir; vekiller onun herhangi bir bölümünü yakalayamaz.
Google, aramaları ve diğer içerikleri https üzerinden sunar çünkü bunların tamamı herkese açık değildir ve ayrıca genel içeriğin bir kısmını bir MITM'den gizlemek isteyebilirsiniz . Her halükarda, Google'ın kendileri için yanıt vermesine izin vermek en iyisidir .
URL'nin kendisi şifrelenmiştir, bu nedenle sorgu dizesindeki parametreler kablo boyunca düz bir şekilde hareket etmez.
Bununla birlikte, GET verilerini içeren URL'lerin genellikle web sunucusu tarafından günlüğe kaydedildiğini, ancak POST verilerinin nadiren kaydedildiğini unutmayın. Öyleyse, böyle bir şey yapmayı planlıyorsanız, yapma /login/?username=john&password=doe
; bunun yerine bir POST kullanın.
HTTPS Herhangi bir HTTP verisi aktarılmadan önce temel bir SSL kuralı oluşturur. Bu, tüm URL verilerinin (bağlantı kurmak için kullanılan ana bilgisayar adı hariç) yalnızca bu şifreli bağlantı içinde taşınmasını ve tüm HTTPS verileriyle aynı şekilde ortadaki adam saldırılarına karşı korunmasını sağlar.
Yukarıdakiler, burada bulunan Google Cevapları'ndan ÇOK kapsamlı bir yanıtın bir parçasıdır:
http://answers.google.com/answers/threadview/id/758002.html#answer
URL'nin ana bilgisayar adından sonraki kısmı güvenli bir şekilde gönderilir.
Örneğin, https://somewhere.com/index.php?NAME=FIELD
/index.php?NAME=FIELD
Kısmı şifrelenir. somewhere.com
Değil.
Her şey şifrelenmiştir, ancak sorgunuzun sunucunun günlüklerinde kalacağını ve çeşitli günlük analizcileri vb. Tarafından erişilebilir olacağını unutmayın (bu genellikle POST isteğinde geçerli değildir).
HTTPS aracılığıyla bir web sitesine bağlandım ve bir sürü GET parametresi geçtim. Daha sonra ağı koklamak için wireshark kullandım. HTTP kullanılarak, URL şifrelenmemiş olarak gönderilir, bu da URL'deki tüm GET parametrelerini kolayca görebileceğim anlamına gelir. HTTPS kullanarak her şey şifrelenir ve hangi paketin GET komutu olduğunu bile göremiyorum, içeriğini bırakın!
Evet, güvenlidir. SSL her şeyi şifreler.
POST talebinden alıntı:
POST /foo HTTP/1.1
... some other headers
GET talebinden alıntı:
GET /foo?a=b HTTP/1.1
... some other headers
Her iki durumda da sokete gönderilen her şey şifrelenir. Müşterinin bir GET isteği sırasında tarayıcısında parametreleri görmesi , ortadaki bir adamın da aynı şeyi göreceği anlamına gelmez.
SSL, başlık ayrıştırmadan önce gerçekleşir, bunun anlamı:
Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed
Bir İstek şuna benzer (tam sözdizimini hatırlayamaz, ancak bu yeterince yakın olmalıdır):
GET /search?q=qwerty HTTP/1.1
Host: www.google.de
Bu aynı zamanda, aynı IP üzerindeki birkaç ana bilgisayar için farklı SSL Sertifikalarına sahip olmanın sorunlu olmasının nedenidir, istenen Ana Bilgisayar adı şifre çözülene kadar bilinmemektedir.
HTTP/1.1
İlk satırın sonunda gelir.
GET isteği HTTPS kullanılırken şifrelenir - aslında bu nedenle güvenli web sitelerinin benzersiz bir IP adresine sahip olması gerekir - istekten istenen ana bilgisayar adını (veya sanal dizini) şifresi çözülene kadar almanın bir yolu yoktur.