Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Secure Sockets Layer, key exchange, gercekten guvenli mi?


xetraynex

Öne çıkan mesajlar

Bir kac ay once calistigimiz firmalardan bir kaci 1024bit'ten 2048bit'e cikardi sifrelemeleri. Kirilir da zor biraz. Biraz da gereksiz.

Soyleki;

Diyelimki ben sizin kredi kartinizi calmak istiyorum ve SSL ustunden yaptiginiz iletisimi sifreli sekilde kaydedebiliyorum. Siz bir e-ticaret sitesine girdiginiz andan itibaren sadece kredi kartiniz degil, SSL ustunden yapmis oldugunuz tum iletisimi kaydediyorum ve tonla gereksiz data oluyor elimde. Haliyle fazlasiyla gereksiz bir ugras halini aliyor.

Gerci anahtari bir kez alan hepsi icin kullanacaktir bunu fark etmeyecektir ama en azindan benim icin usengeclik sinirlarimi asiyor. =P
Link to comment
Sosyal ağlarda paylaş

xetraynex said:

SSL'de bildigim kadariyla baglantida ilk once key exchange yapiliyor, ve gonderilen encrypted data'nin hangi key ile cozulecegi clienta bildiriliyor.

E o zaman bizim networkumuzu takip eden birisi birazcik encryption bilse key'i de bularak verileri cozemez mi? Ne guvenligi kaldi?

key'i bulmasına gerek yok zaten dediğin gibi key gönderildiği için, network'u sniff eden, uygun bir yazılıma sahip bir bilgisayar, isterse dataları okuması mümkün. Şirketlerde kullanılar bazı web filter uygulamaları bunu yapıyor ve SSL dahi olsa content-filter'ing yapabiliyor.
Link to comment
Sosyal ağlarda paylaş

reyou said:

4 numaraya kadar olan biteni kaydetmek, ve checksum yapmadan datayi iletmek baya zor..


niye zor ki? cok rahat gelen giden paketleri takip edebilirsin. sonucta serverla sen bir key uzerinde anlasiyorsun, bu anlasmayi da internetten yapiyorsun, paketleri takip eden birisi cok rahat keyi alip cozebilir.

zgrw said:

key'i bulmasına gerek yok zaten dediğin gibi key gönderildiği için, network'u sniff eden, uygun bir yazılıma sahip bir bilgisayar, isterse dataları okuması mümkün. Şirketlerde kullanılar bazı web filter uygulamaları bunu yapıyor ve SSL dahi olsa content-filter'ing yapabiliyor.


aynen bende boyle dusundum. gelen giden veriyi ana network uzerinden veya sifresiz bir wirelessi takip ettikten sonra takip eden keyi de alir istedigi gibi decrypt de eder yani sonucta.

hani hic 2048 bit sifreleme vs. gerek yok ki, keyi alan her turlu alir :) sonucta sizin browseriniz size gelen sifreli contenti cozerken saniyesinde cozuyor cunku keyi biliyor. paketlerden keyi yakaladiktan sonra her 2048 bit degil kilobit olsa yine cozerler yani mantiken
Link to comment
Sosyal ağlarda paylaş

alakayi kuramadim reyou

response gonderme zamanin zaten tcp (ack) ve http (timeout) connectionunun kendisinde vardir.

bir veriyi bugun isleyince farkli yarin isleyince farkli sonuc cikma seysi cok sacma yani. eger time'a gore bir hashleme yapiliyorsa cok basitce o anki time'a gore yine hashlersin, hashlemenin gercek zamanindan farkli olarak.

ki serverla key exchange yaparken sen clientten once aliyorsun paketleri, malum sen middleman gibi birseysin. is isten gecme durumu varsa clien icin gecer senden once
Link to comment
Sosyal ağlarda paylaş

geezus said:

abi allah aşkına, mantıken dediğin gibi olsa güvenli iletişim diye bir şey mi kalırdı?


SSL şu anki hali ile zaten %100 güvenli değil saderce %99 güvenlik suna biliyor. Hoş söz konusu olan bilgisayar olunca asla %100 güvenlikten söz edilemez, sonuçta brute force denen %100 başarı verebilen (zamanı göz ardı ettiğinizde) bir yöntem varken...

SSL'in güvenli olduğu durum; eğer ben bağlantı kurulduktan sonra listen etmeye başlarsam network'u, o zaman gerçekten verileri görmek oldukça zor olacaktır. Ancak, eğer ben bağlantı kurulmadan önce network'u listen etmeye başlamışsam ve key exchange aşamasında key'leri alabilirsem, bu durumda yan odadaki laptop'un internet explorer'ı sayfayı nasıl çözümleyebiliyor ise, benim bilgisayarımdaki yazılımda sayfayı aynı şekilde çözümleyebilecektir.

İnanmak istemeyebilirsiniz ancak, sözüne ettiğim yazılımın yapılmnası mümkün. Daha önce de bahsettiğim üzere, bazı web filter'lar, content-filtering yaparken, SSL içerikli sayfaları da filtrelemeden geçirebilmek için bu yöntemi kullanıyorlar.

xetraynex said:

ki serverla key exchange yaparken sen clientten once aliyorsun paketleri, malum sen middleman gibi birseysin. is isten gecme durumu varsa clien icin gecer senden once


aynen benim de dediğim bu, sonuçta web-filter yazılımları man-in-middle attack mantığına dayalı olarak çalışırlar aslında (az bir farkla). Bütün paketler önce onların üzerinden geçer, sonra client'a forward edilir (bir nevi proxy gibi). Bunu geçtim, sniff etsem de benzer sonuçlar elde etmem mümkün olacaktır. Sniff ettiğim zaman, client ile aynı anda paketleri elime almış olacağım.
Link to comment
Sosyal ağlarda paylaş

@zgrw, haklısın, ben zaten 100% güvenli diye bir şey demedim, zaten öyle bir şeyin olmadığı konusunda mutabıkız ancak bu kadar basitçe bir şekilde kırılması mümkün olan bir sistemin her yerde bu kadar yaygın kullanılması mantıksız olurdu, ben sisteme %100 güvenli demiyorum ancak, güvensiz değil.

çok fazla ssl güvenliği üzerine bilgim yok ancak mad-in-the-middle attacklara karşı da bir güvenlik önlemi olduğunu sanıyorum. tabi bunun da bir workaroundı var
Link to comment
Sosyal ağlarda paylaş

xetraynex said:

alakayi kuramadim reyou

response gonderme zamanin zaten tcp (ack) ve http (timeout) connectionunun kendisinde vardir.

bir veriyi bugun isleyince farkli yarin isleyince farkli sonuc cikma seysi cok sacma yani. eger time'a gore bir hashleme yapiliyorsa cok basitce o anki time'a gore yine hashlersin, hashlemenin gercek zamanindan farkli olarak.

ki serverla key exchange yaparken sen clientten once aliyorsun paketleri, malum sen middleman gibi birseysin. is isten gecme durumu varsa clien icin gecer senden once


en basidinden sole soliyim, teoride bi insanin arkasina roket takip, bi bankayi 1 dak icinde soymasi var, olabilir dersin.

ama pratikte imkansiza yakindir, ha ihtimal vardir ama dunyada 100% secure denilebilecek tek birsey bile yoktur.
Link to comment
Sosyal ağlarda paylaş

SSL Bağlantılar ya da encrypted herhangi bir bağlantı genelde Host-to-Host bağlantıdır. SSL içinde key kullanırken her hangi bir PSK kullanılmıyor bunun yerine Sertifikalar kullanılıyor.

Bu durumda Man in the middle yapabilmek için

WebServer ----------- Client olan durumu
WebServer ---- MiddleMan ---- Client yapmak durumundasınız bunun içinde Client'a sahte sertifika gönderiliyor burada eğer client sahte sertifikayı kabul etmezse bağlantı gerçekleşmez sizde araya giremezsiniz(aradan kastım tamamen proxy mantığıdır. birinden alıp öbürüne verir)

Yani trafik saldırganın üstünden geçmediği hiç bir durumda SSL bağlantıyı dinleyemezsiniz.

Content Filtering yapan sistemlerde Clientlara kendilerine ait sertifika gönderirler. O tarz sistemlerde sertifika hatası alınmaz çünkü üretici firma kendisine ait olan sertifikayı gidip kaydettirip o şekilde kullanıyor.



SSL güvenli mi? Evet güvenli.
100% güvenli mi? Hayır. insan salaklığı hala güvenlik için büyük etken. o nedenle mantıklı yöntemlerle araya girilebiliyor. Kırılma konusunda zaten dediğim gibi kırmak hamallıktan öte birşey değil o nedenle araya girilerek daha kolay dinlenebiliyor.
Link to comment
Sosyal ağlarda paylaş

DeMiRMaSKe said:

SSL Bağlantılar ya da encrypted herhangi bir bağlantı genelde Host-to-Host bağlantıdır. SSL içinde key kullanırken her hangi bir PSK kullanılmıyor bunun yerine Sertifikalar kullanılıyor.

Bu durumda Man in the middle yapabilmek için

WebServer ----------- Client olan durumu
WebServer ---- MiddleMan ---- Client yapmak durumundasınız bunun içinde Client'a sahte sertifika gönderiliyor burada eğer client sahte sertifikayı kabul etmezse bağlantı gerçekleşmez sizde araya giremezsiniz(aradan kastım tamamen proxy mantığıdır. birinden alıp öbürüne verir)

Yani trafik saldırganın üstünden geçmediği hiç bir durumda SSL bağlantıyı dinleyemezsiniz.

Content Filtering yapan sistemlerde Clientlara kendilerine ait sertifika gönderirler. O tarz sistemlerde sertifika hatası alınmaz çünkü üretici firma kendisine ait olan sertifikayı gidip kaydettirip o şekilde kullanıyor.



SSL güvenli mi? Evet güvenli.
100% güvenli mi? Hayır. insan salaklığı hala güvenlik için büyük etken. o nedenle mantıklı yöntemlerle araya girilebiliyor. Kırılma konusunda zaten dediğim gibi kırmak hamallıktan öte birşey değil o nedenle araya girilerek daha kolay dinlenebiliyor.


Ornegin sifresiz bir wireless baglantida nasil olsa bu https diyip kredi kartini hic dusunmeden vermemek lazim cunku sifresiz wireless baglantilarini da middleman gibi dinleyebiliyorsun. veya bir sirkette veya okulda vs. sonucta senin gatewayin uzerinden herseyini dinleyebilirler.

zaten middleman olmak zor veya kolay demedim ben, middleman icin ssl baglantilarini decrypt etmek kolay dedim. sen de zaten sadece hamalliga bakar o noktadan sonra demissin, ayni seyi demisiz kisaca.

yoksa middleman olamadiktan sonra (veya wirelessi dinlemedikce) http baglantisini da dinleyemezsiniz arkadasim :) milletin http paketlerini nerden yakalicaniz :)

tabi o zaman soru su oluyor, http baglantisini bile dinlemek icin araya girebilmek gerekiyorsa, ben araya girdikten sonra http olmus https olmus ne farkeder :)


vaperon said:

Bu iş dediğiniz kadar kolay olsa kimse keylogger kullanmakla uğraşmazdı. Dedikleri gibi proxy falan lazım, iletişimin içinde olmadıktan sonra o iş imkansıza yakın.

Kod adı kılıçbalığı izleyip gelmeyin abi buralara...


insanlar middleman olamadiklarindan keylogger kullaniyor. ornegin turk telekomun routerlarindan birine erisimi olan birisi seni catir catir dinleyebilir. tabi bunu yapamadiklarindan keylogger kullaniyor. ama turk telekom ssl baglantilarini bile dinleyebilir demek istiyorum. veya calistigin sirketindeki gatewaye erisimi olan birisi vs. sokaktan gecen adam ssli cozer demiyom kilic baligi


reyou said:
en basidinden sole soliyim, teoride bi insanin arkasina roket takip, bi bankayi 1 dak icinde soymasi var, olabilir dersin.

ama pratikte imkansiza yakindir, ha ihtimal vardir ama dunyada 100% secure denilebilecek tek birsey bile yoktur.


su mesajinda bu konudaki computer science bilgisi ile yaptigimiz beyin firtanasi ile alakali birsey bulamadim. roket filan diyor, arkaya takmak diyor roketi. adam roketi nereye takiyor arkaya?
Link to comment
Sosyal ağlarda paylaş

sen diyorsunki gercekten guvenlimi diye,
burdaki insanlarda diyoki yeterince guvenli..

takmissin kafaya man in the middle diye, illaki ssl kirilabilir bisi diye ayni seyi tekrarlayip duruyosun.

burda beyin firtinasi yapacagina google lasan bulursun zaten istedigini;

http://www.sans.org/reading_room/whitepapers/threats/ssl-man-in-the-middle-attacks_480

adam burda implementasyonunu ver varyasyonlarini anlatmis,
man in the middle olup proxy gibi davrandiktan sonra her halukarda kirarsin her sistemi, ama dikkatli okursan verdigim makaleyi mac adresine kadar herseyi client makinesi gibi masklaman gerekiyor.

bunuda sana cs 101 dersinden verdikleri tool larla yapamazsin,
ben orda gercek hayattan ornek verdim,

istersen gidip dunya bankasini soyarsin, orasi 100% guvenlimi degil, ama senin orayi soyma olayin ne kadar zorsa, gidip oturup 15 dakikada ssl kirman o kadar zordur diyorum.
Link to comment
Sosyal ağlarda paylaş

Yanlış okumadıysam giden gelen paketleri sniffleyince SSL'nin güvenli olmadığı yazılmış.

Aslında ilk başta düşününce böyle olması çok normal geliyor sonuçta giden gelen bütün dataları inceleyip editleyebilirsek kurbanın sahip olduğu tüm bilgilere sahip oluruz.

SSL protokolünde asymmetric key encryption kullanılır, yani bu kısaca ne demek, her keyin bir eşi vardır.

e encryption fonksiyonumuz,
d decryption fonksiyonumuz,
p plain datamız,
k1,k2 keylerimiz olsun.

p = d(e(p,k1),k2) = d(e(p,k2),k1) != d(e(p,k1),k1) != d(e(p,k2),k2)

türkçesi de bir key ile şifrelediğin şeyi ancak ve ancak diğer key ile çözebilirsin vice versa. Tabi bu kadar özel bi key çiftini yaratmak için, özel de bi algoritma lazım ama konu o değil, sadece böyle keyler olduğunu varsayabiliriz :P

SSL'de exchange edilen keyler ise public keylerdir. Yani public keyler adı üstünde publiclerdir ve herkese dağıtılırlar, diğer eşleri ise yani private keyler local sistemde saklanırlar ve kimseye verilmemeleri/gösterilmemeleri gerekir. Public keyleri sniffing ile almak bakkaldan bişey almak yerine çıkan müşterilerden bişey satın almak gibi yani.

Peki tüm bunlar nasıl işliyor?
Servera bağlandığınız zaman siz oradan bir sertifika istiyorsunuz, bu sertifika çeşitli şeyler içeriyor bizi ilgilendirenlerse bağlandığımız serverın public key'ini ve sertifikanın orasıyla burasıyla oynanmadığına dair koca bir hash içermesi. Bu sayede ilk adım tamamlanmış oluyor. Yani size gelen encrypted datayı siz eğer serverın public keyi ile decrypt edebiliyorsanız bunun o istediğiniz serverdan geldiğine emin olabilirsiniz.

İkinci adım ise sizin gönderdiklerinizi sadece muhattabınız olan serverın okumasını istiyorsunuz, çünkü asıl kredi kartı şu bu bilgileri burada, bunun için de ne yapıyoruz herkesin bildiği muhattab serverın public keyi ile kendi bilgilerimizi encrypt ediyoruz ve gönderiyoruz. Bu data snifflenirse ne olur? Hiç bir şey olmaz çünkü serverın public keyi ile şifrelenmiş şey sadece ve sadece serverın bildiği private key ile açılabilir, en azından asymmetric key encryption bize bunu garanti ediyor, umarım ediyordur veya :P

Şu anda sistemde tek bir açık kaldı, dikkatli okuduysanız server bize güvenli olmayan http üzerinden sertifikayı ve public keyi atıyor, eğer man in the middle varsa bu sertifikanın public keyini değiştirip hashini de tabi tekrar yaratıp altına yapıştırıp bize gönderebilir. Bunu engelleyen şey ise browserımızı indirirken içinde zaten public keyler ve çeşitli sertifikalarla iniyor. Hiç bir public key içinde olmasa bile garanti edilen şey bu sertifikaları düzenleyen denetleyen Certificate Authority(CA)'lerin kendi sertifikalarının olduğu. Eğer elinizde tek doğru olduğuna emin olduğunuz sertifika bile varsa bahsettiğimiz yöntemi kullanarak diğer web serverların bize gönderdiği sertifikaların&public keylerin geçerli olup olmadığına emin olabiliriz buna da chain of trust deniyor. Elimizde tüm sertifika bilgilerinin sahibine ulaşan tamamen güvenilir bir yol varsa ki var, kime güvenip kime güvenemeyeceğimizi kesin olarak ayırt edebiliriz demektir.

Bu kadar anlattım ama aslında sistem tam olarak böyle işlemiyor, dikkat ettiyseniz burda tek taraflı bir güven var, yani banka bilgileri alıyor ama o bilgileri gönderenin gerçekten bizim bilgisayarımız olup olmadığını bilemiyor. Buna ihtiyacı da yok aslında, atıyorum iki banka arası bilgi akışıyla karşılaştırdığımız zaman.

Sistem hem tek taraflı hem de çift taraflı güven ortamı oluşturabilsin diye ara bir noktada bizim bilgisayarımız da random olarak bir private key oluşturup, bundan public keyi hesaplıyıp, bankanın public keyi ile bu public keyi encrypt edip bankaya gönderir, böylece banka o bulduğu public keyle açabildiği her şeyin bizden gelmiş olduğunu anlar. Bu niye çift taraflı değil çünkü zaten random olarak atıyoruz yani bidahaki girişimizde aynı falan kalmayacak. Ama bankanın da pre-determined bi public key havuzu olduğunu varsayarsak mesela diğer bankaların pkleri bulunan, o zaman çift taraflı güven ortamı oluşabilir :)

Son olarak da handshakingden sonra veya yeterince öpüşüp koklaştıtktan sonra asymmetric key encryption bırakılır ve ortak karar verilen bi symmetric key encryptiona geçilir, bunun sebebi ise asymmetric encryptionın baya bir cpu-cycle yemesi ki bir de keyin uzunluğu düşünülünce..

of ne wall of text olmuş hemen arşivime atayım, bu yazdıklarımda mutlaka yanlışlar vardır ama düşünmeye devam etmek için yeterli bilgi sanırım.
Link to comment
Sosyal ağlarda paylaş

http://www.readwriteweb.com/hack/2011/08/ssl-certificates-whats-left-to.php

bugün şunu okudum biraz, tek taraflı güven de pek kalmamış gibi artık. Digistar diye bi certificate authority, güvenlik açığından dolayı sahte google sertifikası yaratmış. Yani kim yaptıysa, google.comu gayet imitate edebiliyo.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...