Hayran kaldim"Kişiye özel key" için bir Key Server gerekir, internet bağlantısı gerekir.
Ben olsam her ürettiğim key'i bir activation ve expire date'le beraber db'de tutarım. Bir web tabanlı api oluştururum ve key sorgularını bu API üzerinden hallederim. Eğer key eşleşiyorsa geçici bir AUTH key veririm ve kullanıcının AUTH keyi eşleştiği müddetçe programda kalmasına izin veririm düzenli aralıklarla API'a sorgu atarak.
Keyler belli bir matematik sonucu üretilmeliler, tamamen random olmamalılar. Kullanıcı cracklemeyi denese bile integrity check yapıp engellersin. Algoritma ne kadar karmaşık, key o kadar güvenli olur. TOTP'de düşünebilirsin ama geçici keydir TOTP.
Ek olarak uygulamanın kendisinin de bir integrity checking yapması güzel olur, sistemin kodlarının manipüle edilip edilmediğini görmüş olursun ve böylece ekstra bir önlem olur.
Eksik anlattığım bir şey olabilir belki, sistem güvenliği uzmanı değilim sonuçta. Genel kanılar bunlar.
Hocam bahsettiğiniz RESTful API sanırım,Bu API gerekli URL’e request atıldığında verileri JSON olarak sunuyor herhalde. Uzman değilim bende bir şeyler kapmak istiyorum. Bilmediğimden soruyorum başka birisi de nereye request atacağını bilirse keylere erişimi olmaz mı?"Kişiye özel key" için bir Key Server gerekir, internet bağlantısı gerekir.
Ben olsam her ürettiğim key'i bir activation ve expire date'le beraber db'de tutarım. Bir web tabanlı api oluştururum ve key sorgularını bu API üzerinden hallederim. Eğer key eşleşiyorsa geçici bir AUTH key veririm ve kullanıcının AUTH keyi eşleştiği müddetçe programda kalmasına izin veririm düzenli aralıklarla API'a sorgu atarak.
Keyler belli bir matematik sonucu üretilmeliler, tamamen random olmamalılar. Kullanıcı cracklemeyi denese bile integrity check yapıp engellersin. Algoritma ne kadar karmaşık, key o kadar güvenli olur. TOTP'de düşünebilirsin ama geçici keydir TOTP.
Ek olarak uygulamanın kendisinin de bir integrity checking yapması güzel olur, sistemin kodlarının manipüle edilip edilmediğini görmüş olursun ve böylece ekstra bir önlem olur.
Eksik anlattığım bir şey olabilir belki, sistem güvenliği uzmanı değilim sonuçta. Genel kanılar bunlar.
Keylerin hepsini çekmiyorsun API'dan, key'in varlığını doğruluyorsun. Dolayısıyla keyleri göremezler, erişimleri olmaz.Hocam bahsettiğiniz RESTful API sanırım,Bu API gerekli URL’e request atıldığında verileri JSON olarak sunuyor herhalde. Uzman değilim bende bir şeyler kapmak istiyorum. Bilmediğimden soruyorum başka birisi de nereye request atacağını bilirse keylere erişimi olmaz mı?
Keyler şifrelenmez hashlenir. Şifrelediğin çözülür, hash çözülmez. Hash collision yaşanabilir belki ama SHA256'da zor bu. SHA-512 kullanırsan daha da zor.API’ye erişimi olan Client’lar için birde API key mi olacak? Belirli IP’ler üzerinden gelen requestlere izin vermek ve rate limiting yapmak da güvenlik için iyi olur değil mi? Birde keylerin mesela veritabanında şifrelenerek saklanması gerekiyor anladığım kadarıyla.
Hocam bir sürü alanla ilgili bilginiz var gerçekten çok mutlu oluyorum böyle şeyler görünce. Bende elimden geldiğince sizin gibi değerli insanlardan yararlanmaya çalışıyorum. Sorum şu olacak client side bulaşmadan böyle bir sistem kurmanın bir yolu yok mu?Bir kere bunu yuzde yuz yapamazsin.
Kullanici programini Assembly e cevirir, key check yaptigin blogu "true" yapar, ne kadar sofistike key kullanirsan kullan hicbir anlami kalmaz. DNS degistirir, programin senin sunucuna degil her-gelen-key-onayla.com sitesine gider yine anlami kalmaz.
Isi bilen kullanici client side calisan programi her turlu hackler. Alacagin her guvenlik onlemi sadece bu kacinilmaz sonu geciktirir.
Ote yandan ofiste excel acmak disinda teknik bilgisi olmayan bir grup kullanici icin secure random key uretirsin, bunlara kendi sunucunda hatta executable icinde validasyon mekanizmasi eklersin ve olay biter.
Web uygulaması yapmak. Code exposure'a maruz kalma ihtimali daha düşük sunucuya erişilmediği müddetçe. Diğer problemlerin (DNS yönlendirme gibi) bir kısmı da yok direkt.Sorum şu olacak client side bulaşmadan böyle bir sistem kurmanın bir yolu yok mu?
Hocam bir sürü alanla ilgili bilginiz var gerçekten çok mutlu oluyorum böyle şeyler görünce. Bende elimden geldiğince sizin gibi değerli insanlardan yararlanmaya çalışıyorum. Sorum şu olacak client side bulaşmadan böyle bir sistem kurmanın bir yolu yok mu?
Aynı şekilde client assembly çevirildiği gibi executable da bu şekilde kırılmaz mı?