Websocket Sıkıntısı Ve Cryptology
-
Hocalarım şimdi Şöyşe bir sıkıntı var Benim Socket yazdığım port'u ve IP'yi dışarıdan bir başkası dinleyebiliyor ya hani. Verileri şifrelemem gerekiyor sanırım ama şöyle bir sıkıntı var. Android tabanlı çalışıyorum genelde ve android'de sniff ettirme olayları çok basite indi artık bir lise öğrencisi bile çoğu projeyi Decompile edebiliyor. Android proguard falan hikaye yemiyor. Çözen çözüyor. Şimdi Socket tarafında şifreli veri göndermek ne kadar mantıklı zaten Server de şifreleyip Client'de açsam Client kodlarına erişen adam zaten şifreyi de çözer. Şöyle birşey olsa zaten token işlemini kullandırıyorum. Örneğin Socket'e bağlanırken token istesem tokeni VT den sorgulasam. ve aynı şekilde bir emit veya on methodun da bu kodları şifreli bir biçimde göndersem dönen değeri tekrar Herhangi bir WEB APİ ile değeri post edip dönen JSON değeri okusam. Yani şifreyi çözdürsem bana ne gibi eksiler getirir ? Hız ? İşlevsellik amemelik ? Yada gereklimidir böyle birşey ? Siz ne gibi çözümler önerirsiniz ?
- Ek olarak VT Deki tüm verileri şifreli kaydetsem. Bana ne gibi zararları olur ? yada VT yi şifreli veri eklemek aptalca mı olur ?
- Kullanılan VT MYSQL MongoDB ye geçiş yapmayı düşünüyorum NodeJS den sonra. Yorumlar için şimdiden teşekkürler ...
-
Hocam en kolay olarak socket okuyacak clientların ip si sabit ise sadece o iplerden tanımlı erişim açabilirsin?
-
Anlamadım dediğini ama bunu kullanabilirsin sanırım.
Bknz: Asimetrik şifreleme
Aslında sen bir nevi ssl ile bağlantı kurmaya çalışıyorsun gibi birşey hocam ssl bağlantısının veya işte secure http bağlantısının mantığını anla gerisini halledersin.
0x656e tarafından 22/Ağu/16 04:45 tarihinde düzenlenmiştir -
@0x656e SSL yeterli olacak mı ? Amacım Benim portumu dinlememeleri yada dinleseler bile bir çözüm bulmak
@PLaXToR , Hocam uygulama son kullanıcıya hitap ediyor IP ler farklı olabilir yeni girişler var veya adam başka telefondan veya başka pc den giriş yapabilir.
-
"encryption" anahtar kelimen hocam. ben de arada-sırada benzer bir konuda araştırma yapıyorum. websocket için socket.io, ws vs.. hangisini kullanıyorsan, ona özel dokumantasyonlar araştırarak server-client iletişiminde TLS kullanabilirsin. malesef çok fazla bilgim yok ama buralardan yola çık. 0x656e 'nin dediği gibi aslında olay..
-
Bazen Socket.io bazen WebSocket . Encryption hakkında az cok bilgim var ama biraz daha göz gezdireyim TLS 'yi ilk defa duyuyorum ona da bakayım hocam teşekkürler
-
MhmdAlmz bunu yazdı
@0x656e SSL yeterli olacak mı ? Amacım Benim portumu dinlememeleri yada dinleseler bile bir çözüm bulmak
@PLaXToR , Hocam uygulama son kullanıcıya hitap ediyor IP ler farklı olabilir yeni girişler var veya adam başka telefondan veya başka pc den giriş yapabilir.
ssl yeterli olacaktır hocam şöyle yeterli olacaktır bir şekilde yine araya girebiliyorlar fakat bu işte biraz daha usta olmaları gerekiyor öyle şak diye mitm yapamıyorlar ve işte ağı sniffleyemiyorlar.
-
Client - Server arasındaki haberleşmeyi AES gibi güçlü bir algoritmayla şifrelediğini varsayalım,
Hız olarak; Farkedilebilir bir fark yaratmayacaktır (küçük verilerde),
İşlevsellik; Güvenliğe önem veren tonla yazılım bu tarz şifrelemeleri zaten kullanmakta,
Encrypt/Decrypt işlemini tek seferde yaparsan, yani her bir veri için ayrı decrypt yaptığını düşünmezsek yeterince işlevsel olacaktır.
Gerekliliğine gelirsek; Sadece SSL ile yetinmeyip ekstra güçlü bir şifrelemeyle veriler korunmalıdır.
-
@yunusemre hocam birden fazla şifrleme algoritması olacak Token içerisinde kullanılacak algoritma'yı da gömmeyi düşünüyorum mesela X kişisi giriş yaptı Algoritması 5. algoritma X kişisi offline oldu tekrar giriş yaptı Algoritma değişti 10. algoritma oldu. Yani tek bacak yok birden fazla bacak var zaten tek bir şifreleme mantığı da olmayacak
@0x656e SSL koyup birde verileri şifreleyelim gerisini izleriz sistemin ırzına geçeni de tebrik edip beceriksizliğimize güleriz ne diyelim :D Ben SSL'i aşılmanın kolay olduğunu düşünüyorum çünkü herkesin dilinde elbet bi açığı vardır diye de. Iş öyle değilmiş :)
-
encryption konusunda sanıyorum ki senin kafana yatmayan şey yazdığın programı decompile ederlerse nasıl şifrelediğimi görücekler ve ona göre decrypte edicekler diye endişe ediyorsun. Fakat sistemi öyle işlemiyor.
Senin 1 adet public key'in ve 1 adet private key'in mevcut.
Client tarafında sunucuya gelicek datayı bu public key ile şifreliyorsun ve öyle yolluyorsun. O data sadece private key ile açılabiliyor. Private key'in ise sunucuda bulunduğundan kimsenin erişimi söz konusu değil. Tabiki %100 bir koruma yöntemi kesinlikle değil ama işleri 1 kademe daha zorlaştırır.
Aşağıdaki adımlara bakarak kafanda tam oalrak hand shake işlemi ve sonrasını canlandırabilirsin.
------------------------------------------------------------------------------------------------
Kullanıcı, internet sunucusundan güvenli bir bağlantı isteğinde bulunur,
İnternet sunucusu, kullanıcıya sertifikasıyla birlikte açık anahtarını (public key) gönderir,
Kullanıcının kullandığı internet tarayıcısı, sunucunun göndermiş olduğu bu sertifikanın güvenilir bir sertifika otoritesinden gelip gelmediğini ve sertifikanın geçerli olup olmadığını kontrol eder,
Kullanıcının kullandığı internet tarayıcısı rastgele bir simetrik şifreleme anahtarı üretir. Daha sonra internet sunucusunun açık anahtarını (public key) kullanarak bu simetrik şifreleme anahtarını şifreler ve bağlanmaya çalıştığı internet sunucusuna gönderir,
İnternet sunucusu, kendi açık anahtarıyla (public key) şifrelenmiş olan bu mesajı kendi özel anahtarıyla (private key) çözerek simetrik anahtarı elde eder,
İnternet sunucusu bundan sonra kullanıcıya göndereceği verileri elde etmiş olduğu bu simetrik anahtarı kullanarak gönderir,
Kullanıcı aynı simetrik anahtarla internet sunucusundan gelen verileri çözerek internet sayfasını güvenli bir şekilde görüntüler
FCN tarafından 22/Ağu/16 19:29 tarihinde düzenlenmiştir -
@FCN anladım hocam Fazla uçmaya gerek yok diyorsun, Şifreleme yeterli sniff edilme olaylarına karşın .
