C# Keygen Algoritma Hack Sorunu ?
-
cukurova bunu yazdı
Evet sonunda doğru cevap tebrikler, alkışlar @dalyKadir gelsin. 👏
@abdullahazad de tam yakaladı uçundan ama sonra geri bıraktı 👍Cevap : Yeni anahtar üretemezsiniz, çünkü sadece public key var ve bununla sadece doğrulayabilirsiniz. Yeni key üretebilmeniz için private key sahip olmanız lazım.
Burada C# ile yazmamın hiçbir önemi yok, hatta kodlarını verdim. Aynı şekilde bunu java, pyhton, nodejs.... ile açık açık yazabilir.
Burada güvenliği sağlayan C# değil asimetrik kriptoloji arkasında yatan matematik.(DSA)C# yazmamın nedeni; decompile edilirse her türlü kırılabilir yanılgısı, ki benzer yorumlar, öneriler ve tavsiyeler geldi.
Güvenlik için obfuscation önerenler oldu, arkadaşlar obfuscation kodunuzu korumaz sadece karıştırır ve işi uzatır. Ayrıca kurumsal, profesyonel yazılımlar obfuscation kullanılmasına izin verilmez. Yararından çok zararı vardır. Bu başka bir entry konusu.
Bruteforce önerileri geldi ki, dünyadaki pclerin hepsinin işlem güçünü toplasanız ve %50 şansızın varsa 100 yılda bir ihtimal bulma imkanınız var. Yani yapamazsınız.
Birçok arkadaşlar kodları bakmış ama hiçbirşey anlamamış. Daha önce DSA algoritma yapısını bilmiyorsanız ve c# asimetrik kriptoloji ile işiniz olmasıyda bu gayet normal. Bu arada artık dsa güvenlik nedeniyle kullanılmıyor onun yerine RSA veya ECDSA (eliptic curve dsa) aldı.
DSA kullanmamım nedeni keysize daha küçük, kodlaması daha az.Cevabın bu kadar geç gelmesine şaşırdım, çünkü gündelik hayatta asimetrik kriptolojiyi farkında olmadan defalarca kullanıyoruz. SSH, SSL(https), bitcoin, openvpn... gibi binlerce uygulamada bu matematiği kullanıyor.
Hala ilgilenenlere asıl sihirli private key(x) vereyim. XML string içerisine aşağıdaki sihirli kodu eklerseniz artık yeni keylerde üretebilirsiniz.
ZTw2pOV4iA8mrhkO2p0MEybKQ64=işin matematiğini ve x,y,q gibi şeylerin ne olduğunu öğrenmek isteyenler için : http://www.herongyang.com/Cryptography/DSA-Introduction-Digital-Signature-Algorithm.html
Amaçım; biraz kafaları çalıştırmak, araştırmaya yöneltmekti. Umarım başarılı olmuşumdur. Herkese teşekkürler :)
https://yadi.sk/d/0E337zSnBND_lg
X componentini girdiğim zaman ürettiğim keyleri doğruluyor kod.
RSA ile key doğrulamak. Anahtar güvenliğini sağlar, doğrudur. Fakat bu sistemin güvenliğini sağlamaz. Anahtara sahip değilsek de kapiyi açıcak maymuncuk (farkli anahtar ile giriş, kapıyı kırma, anahtar kontrolunu devde dişi birakma) gibi gibi fakli yöntemler ile yazilimin yine kırıla bilir. Bu yüzden güvensiz kabul ediliyor.
ibne olduğu için bana yürüdüğünü göz ardı ederek RSA mantiğini anlatip bana kağıt kalem ile basit hesaplamalari çözdüren bir arkadasimi saygı ile anıyorum :)
obfuscation da aynı görüşteyiz. özellik ile reflaction ve code injection kullanılan yerlerde gereksiz ve ölümcül hatalara neden olabiliyor. 10 dk da anlaşılacak kodu 15dk ye cikartmaktan başka da zorluğu yok.
Bruteforce kısmına katilmiyorum. Bunun için FIPS lab da db var. public key'in den private key'ine 10-15 dk içinde ulaşıyorlar. (bu süre ayni public key bileşenlerinin ortak bulunduğu 200-300 private key'e den gelmesinden kaynaklı) PC olarak bakma, bu iş için geliştirilmiş HSM cizları ile petabytelar ca key pair'i oluşturan/tutan ve buna göre güvenlik standartlarını belirten kuruluşlar var. Ayni şekilde DES, AES gibi şifreleme işlemlerinde de bu işlemler için modifiye edilmiş cpular ile key generate edilerek KCV den key(lere) ulaşmak ile ilgili ciddi çalışmalar var.
dalyKadir tarafından 10/Oca/21 12:48 tarihinde düzenlenmiştir -
dalyKadir bunu yazdı
Bruteforce kısmına katilmiyorum. Bunun için FIPS lab da db var. public key'in den private key'ine 10-15 dk içinde ulaşıyorlar. (bu süre ayni public key bileşenlerinin ortak bulunduğu 200-300 private key'e den gelmesinden kaynaklı) PC olarak bakma, bu iş için geliştirilmiş HSM cizları ile petabytelar ca key pair'i oluşturan/tutan ve buna göre güvenlik standartlarını belirten kuruluşlar var. Ayni şekilde DES, AES gibi şifreleme işlemlerinde de bu işlemler için modifiye edilmiş cpular ile key generate edilerek KCV den key(lere) ulaşmak ile ilgili ciddi çalışmalar var.
En basitinden şöyle söyliyeyim; eğer bunu yapabilseler kripto para, blockchain diye birşey kalmazdı. Sadece abd kurumları değil, çin, rusya, jeff bezos, Elon Musk.... Düşünsene her hafta bakiyesini gördüğüm ve istediğim bir hesaptan kendi hesabıma 10k bitcoin aktardığımı :)
Kaldi ki en basit eski dsa algoritmasında sadece private, public key yok. Her imzada farklı kullanılan (k) random sayı var, sonra bunun sha hash'ı var. Ben kodda sade dsa kullandım ama daha imkansız hale getiren salt, hmac mekanizmaları var.
Son olarak basit 256-bit key için bruteforce neden imkansız olduğunu bilale anlatır gibi anlatmış, 3-4 dk bir bakın; (02:15 dk.) Kaldı ki 1024-bit key için.....
https://www.youtube.com/watch?t=133&v=SwgUGmtmv3I
-
cukurova bunu yazdıdalyKadir bunu yazdı
Bruteforce kısmına katilmiyorum. Bunun için FIPS lab da db var. public key'in den private key'ine 10-15 dk içinde ulaşıyorlar. (bu süre ayni public key bileşenlerinin ortak bulunduğu 200-300 private key'e den gelmesinden kaynaklı) PC olarak bakma, bu iş için geliştirilmiş HSM cizları ile petabytelar ca key pair'i oluşturan/tutan ve buna göre güvenlik standartlarını belirten kuruluşlar var. Ayni şekilde DES, AES gibi şifreleme işlemlerinde de bu işlemler için modifiye edilmiş cpular ile key generate edilerek KCV den key(lere) ulaşmak ile ilgili ciddi çalışmalar var.
En basitinden şöyle söyliyeyim; eğer bunu yapabilseler kripto para, blockchain diye birşey kalmazdı. Sadece abd kurumları değil, çin, rusya, jeff bezos, Elon Musk.... Düşünsene her hafta bakiyesini gördüğüm ve istediğim bir hesaptan kendi hesabıma 10k bitcoin aktardığımı :)
Kaldi ki en basit eski dsa algoritmasında sadece private, public key yok. Her imzada farklı kullanılan (k) random sayı var, sonra bunun sha hash'ı var. Ben kodda sade dsa kullandım ama daha imkansız hale getiren salt, hmac mekanizmaları var.
Son olarak basit 256-bit key için bruteforce neden imkansız olduğunu bilale anlatır gibi anlatmış, 3-4 dk bir bakın; (02:15 dk.) Kaldı ki 1024-bit key için.....
https://www.youtube.com/watch?t=133&v=SwgUGmtmv3I
Kismen haklısın, crypto currencylerin nasil çalıştığını da iyi biliyorum. Fakat bankacilik ve askeri güvenlik standarlarinin belirlendiği denetlendiği yerlerde bunun için ciddi araştırmalar var. Geçen yıl benim de geliştiriminde görev aldiğim bir ürün böyle bir denetime girdi. Fips 140-2 lvl3 'e göre kullanılan keylerin uzunluğuna göre ne kadar süre geçerli olacağı ile ilgili tablo var.
Kullandiğiniz kredi kartlarinin da son kullanma tarihinin olmasinin sebebi içinde ki cert'in tipi - uzunluğuna göre ömrünün olması.
hakli olduğun kısım crypto currencyler de kullanılan keyler mevcut hesap gucundeki artışında üzerine konularak 20-30 yıl sonra kullanımının sakıncalı haline geleceği mantiği ile hesaplanarak kullanılır ve bunun da üzerine extra güvenlik önlemi olarak 2-3 kez farklı şifrelemeden geçen işlemler ile ilerlemektedir.
Tabi yukarıda belirttiklerim address ve hesap işlemleri içindir. Blocklar ise bir biriine hash ile bağlıdır biliyoruz ki hash bir sifreleme değil değişiklik takip algoritmasidir.
-
Hata ne biliyor musun? Israrla Desktop app geliştirmeye devam etmeniz. Şunu demek istiyorum, ne yaparsan yap kırılır.
Caliber tarafından 10/Oca/21 17:50 tarihinde düzenlenmiştir -
Caliber bunu yazdı
Hata ne biliyor musun? Israrla Desktop app geliştirmeye devam etmeniz.
Niye ki?
Bazı senaryolar için çok da güzel oluyor desktop app olması.
Ama burada ana konu kırılabilir kırılamaz değil. Simetrik enkripsiyon
end tarafından 10/Oca/21 17:58 tarihinde düzenlenmiştir -
dalyKadir bunu yazdı
Kismen haklısın, crypto currencylerin nasil çalıştığını da iyi biliyorum. Fakat bankacilik ve askeri güvenlik standarlarinin belirlendiği denetlendiği yerlerde bunun için ciddi araştırmalar var. Geçen yıl benim de geliştiriminde görev aldiğim bir ürün böyle bir denetime girdi. Fips 140-2 lvl3 'e göre kullanılan keylerin uzunluğuna göre ne kadar süre geçerli olacağı ile ilgili tablo var.
Kullandiğiniz kredi kartlarinin da son kullanma tarihinin olmasinin sebebi içinde ki cert'in tipi - uzunluğuna göre ömrünün olması.
hakli olduğun kısım crypto currencyler de kullanılan keyler mevcut hesap gucundeki artışında üzerine konularak 20-30 yıl sonra kullanımının sakıncalı haline geleceği mantiği ile hesaplanarak kullanılır ve bunun da üzerine extra güvenlik önlemi olarak 2-3 kez farklı şifrelemeden geçen işlemler ile ilerlemektedir.
Tabi yukarıda belirttiklerim address ve hesap işlemleri içindir. Blocklar ise bir biriine hash ile bağlıdır biliyoruz ki hash bir sifreleme değil değişiklik takip algoritmasidir.
Tamam işte, hash bir imzalama algoritmasıdır ve geri dönüşümsüzdür. Tek yapabileceğin bruteforce ile yeni hash table yaratmak ve elindeki değerle karşılaştırmak. (Videoda bu kısmı anlattı)
Dikkat edersen rsa, ecdsa içinde değerler key-size sabitlemek için hash değerini kullanılır.(hatta ufak bir değişikle ile hmac yapılabilir)
Sen önce sha karşılık gelen değeri bulacaksın, ondan sonra rsa için çarpanlarına ayırma, dsa için logaritma taban alma problemlerini çözdüreceksin ki çok fazla cpu güçü gerektirir. Ayrıca işin içinde her key için birde random number var, problemi çözmek için onuda bilmen gerekiyor.
SignHash(HashAlgorithm.Create("SHA1").ComputeHash(Encoding.ASCII.GetBytes(this.TextBox1.Text)), CryptoConfig.MapNameToOID("SHA1"));
-
Caliber bunu yazdı
Hata ne biliyor musun? Israrla Desktop app geliştirmeye devam etmeniz. Şunu demek istiyorum, ne yaparsan yap kırılır.
Bence asıl hata, senin burada yazılanları zerre kadar anlamamış olman. https, ssh, bitcoin, webapi.... bunlar desktop app di mi?
"Şunu demek istiyorum, ne yaparsan yap kırılır." : O zaman kırsaydın kardeşim.
-
Caliber bunu yazdı
Hata ne biliyor musun? Israrla Desktop app geliştirmeye devam etmeniz. Şunu demek istiyorum, ne yaparsan yap kırılır.
hocam müşterine sattğin app sas değil ise ki o bile bazi koşullarda makineye kurulmak zorunda.. donanım ile çalıştığın koşullar var, yüksek performans gereken işlemler vs vs. Adamın serverina kurdugunda da desktop'a kurduğunda da iş farklı değil.
-
cukurova bunu yazdıCaliber bunu yazdı
Hata ne biliyor musun? Israrla Desktop app geliştirmeye devam etmeniz. Şunu demek istiyorum, ne yaparsan yap kırılır.
Bence asıl hata, senin burada yazılanları zerre kadar anlamamış olman. https, ssh, bitcoin, webapi.... bunlar desktop app di mi?
"Şunu demek istiyorum, ne yaparsan yap kırılır." : O zaman kırsaydın kardeşim.
Evet kanka re filan benim çok yabancı olduğum konular, özür dilerim.
-
hocam kodlarını incelemedim ancak şöyle bir durum var kodları şifrelesen de şifrelemesen de değişen bir şey olmayacak. sen gelen key i doğrulamak için kullandığın algoritmayı tersten yazdığında otomatik olarak yeni key üretebilirsin.
hiç mi geçilmeme şansı yok? var, diğer müridlerin de dediği gibi her türlü programın keyi cracki ortada dolanıyorken bence çok da kasmaya gerek yok. sadece acemilerin kırmasını engellersin o kadar.