Uygulamanın Güvenliği Nasıl Sağlanır??

25/04/2015, 16:20

mehami

S.aleykum Değerli Forum Üyeleri;

Siz değerli abilerimin fikirlerine ihtiyacım var..Diyelim ki bir uygulama yaptık..Herşey tamam bitti.Kodlarda vs hata yok..Denedik ve süper çalışıyor..


Peki bu uygulamanın dosyalarının (tablo-form-sorgu-rapor-makro-modül vs vs ) güvenliğini nasıl sağlıyorsunuz??
Kopyalamaya karşı nasıl bir önlem alıyorsunuz??

Ben istiyorum ki kullanıcı programı satın alırken yanında şifresi ile birlikte vereyim..Benden şifre vs hiçbir şey istemesin. .Kendi bilgisayarına kursun ve kullanmaya devam etsin..Başka bilgisayara kuramasın..

Kurulu olan programın dosyalarına (tablo-form-sargu-rapor-makro-modül vs vs )erişemesin-koddları göremesin başka bilgisayara taşıyamasın..

Ne demek isediğimi anladınız sanırım?
Bu konuda sizler nasıl yapıyorsunuz?Fikir ve önerilerini bekliyorum..

Sırasıyla yapılması gerekenleri madde madde yazarsanız benim gibi amatörler için çok iyi olacak..

saygılar sunuyorum..

NOT:Yeni yapmayı düşündüğüm uygulama için ön bilgi topluyorum..Ortada henüz uygulama olmadığından ekleme yapamadım..
25/04/2015, 23:10

simendifer

https://accesstr.net/konu-kullanici-duze...pya+koruma

sayın alpeki den alıntı
Bunca zamandır Access ile yapılmış ve kırılması için istekte bulunulmuş sadece bir program gördüm. Siz programınızı yapın sonrasında MDE, ACCDE formatına çevirin bu genelde yeterli olacaktır. Ancak programınız gerçekten eşsiz özelliklere sahiptir ya da iyi pazarı olacaktır o zaman kodları koruyacak programlardan bir tanesini kullanarak MDE, ACCDE formatına çevirirsiniz.
Sayın Sledgeab 'in dediği gibi kırılmayacak program yoktur ancak kırıldığına pişman ettirecek program vardır. Aktivasyon lisansının kırılıp kırılmaması tamamen sizin yeteneğinize bağlı iken genelde zaten bu şekilde olmaz zaten.

Bizlerin ne gibi yöntemler uyguladığını sormuşsunuz. Herkesin farklı yöntemleri var ancak ana esas bellidir. Tüm çözümlerin bilgisayarınızda uygulandığı yöntem ile birlikte ikinci bir alternatif web tabanlı aktivasyon sistemidir. Üçüncü yöntem ise Dongle vb. donanım kaynaklı koruma yöntemleridir ki Access ile yapılan programlarda bu yöntemi kullanan pek çıkmaz.

sayın ozanakkaya dan alıntı
Kırılamayacak program yoktur. Lisans kodu kırılmasının engeli olsa idi ilk önce Microsoft uygulardı.
26/04/2015, 13:12

atoz112

sayın mehami,

bahsettiğiniz talebinize yönelik olarak aşağıdaki ayrıntılı bilgilendirmelerin faydalı olması temennisi ile konu hakkındaki fikirlerimi anlatımda bulunmak isterim.

VERİTABANI GÜVENLİĞİ

Veritabanı Güvenliği;geniş bir yelpazesi bulunan,farklı yöntemleri barındıran,ister tek tek isterse de birkaçının birden uygulandığı önemli bir husustur.hele ki,paylaşım ortamlarında kullanılmakta olunan uygulamalar için daha bir dikkat gerektiren,daha bir önem gerektiren bir gereklilik arz etmektedir.

Güvenlik denildiğinde,sadece veritabanını koruma altına almak yeterli görülmemeli.buna ilave olarak;veritabanının kendisinin de güvenliğinin sağlanması gerekmektedir.bunun için de;veritabanının ister otomatik olarak belirli gün ve saatte isterse de kullanıcıların kendi tercihlerine bırakılarak istedikleri gün ve saatte veritabanını ya da içeriğindeki verileri yedekleme (arşivleme) çalışmasında da bulunulmasının sağlanması da gerekmektedir.

böylece,olası bir veritabanının form ya da arayüz zarar gördüğünde veyahut da veritabanının kendisi tamamen zarar gördüğünde saklanılacak olan ya da diğer bir ifade ile ayrı bir yerde bir sorun durumunda tekrar kullanıma izin verecek şekilde bekletilerek barındırılacak olan yedeklemesi alınan verinin yeniden kalındığı yerden kullanıma devam edilmesinin sağlanması da gerekmektedir.elbette ki,bunun için;bu yedeklemelerin her gün bitiminde mutlaka yapılmasını sağlatmak veya yönlendirmek lazım.bunun için de en uygunu aslında,gün bitiminde veya uygulama kapatılmak istendiğinde otomatikman gerçekleşmesinin sağlanması.böylece,veriler de güncelliğini korumuş olur.

Bir diğer önlem olması için uygulanan yöntem de,uygulamayı önceki sürümlere göre .mde haline dönüştürmek,yeni sürümlerde de .accde haline dönüştürmek de geçici de olsa bir çözüm olabilmektedir,asıl uygulama içeriğine,nesnelerine ulaşılmasını engellemek adına.fakat,bu da çok da bir anlam ifade etmez.fazla güvenli olmamaktadır.sadece,bilinmesi adına yapılan bir açıklamadır.

Güvenliği sağlamak için elbette daha alternatif çalışmaların ya da yöntemlerin olması da muhtemeldir fakat genelde üç kısımda toplanması söz konusudur bu yöntemlerin.bunlar;

1)      Yetkilendirme ve İzin belirleme yöntemi

2)      Şifreleme yöntemi

3)      Dosya ve Klasör koruma yöntemi

1)  YETKİLENDİRME VE İZİN YÖNTEMİ
Yetkilendirme ve izin yöntemini,ister entegre nesneler (tablo,form,v.s…) ilave edilerek kodlama çalışması ile isterse de menü seçeneklerinde yer alan Kullanıcı ve Kullanıcı Gurubu belirleme işlemleri ile de gerçekleştirilebilir.

Böylece,uygulama içeriğinde yer alan tablo,sorgu,form,rapor,v.s.gibi eklenti nesnelerine yetkisi veya izni olmayan kullanıcıların erişmesi engellenebilir.fakat,bu konuda yine de bir bakıma açık oluşması muhtemeldir.çünkü;mevcut kullanıcı grupların yetkileri ve şifreleri sabit kalacağı takdirde kötü niyetli kullanıcıların bir şekilde bu gurup ya da kullanıcı izinlerine erişmelerinin gerçekleşmesi de söz konusu olabilir.

bu nedenle,eğer tek admin veya bir admin gurubu varsa,bu kişi ya da gurup;bu yetkileri ve izinleri kontrol etmeli,yetkisi veya izni geri alınanların durumları güncellenmeli,uygulamada hangi kullanıcının hangi nesneleri kullandığını veya erişmeye çalıştığını görebilmeli.bunun için de,uygulama içeriğinde ayrı bir log dosyası (kullanıcı izleme) tutmasında,barındırmasında fayda var.buna ilave olarak da,kullanıcı ve kullanıcı guruplarına tahsis edilen şifreler belirli bir sürelerde tekrar yenilenmesi de sağlatılmalı.böylece,sürekli değişen bir şifre ve tanımlama imkanı da elde edilmiş olacaktır.

2) ŞİFRELEME YÖNTEMİ
şifreleme konusunda,ilk yapılması gereken,güçlü içeriği olan bir şifre belirlemek olmalı.mesela,en az 20 karakterli büyük ve küçük harfler,noktalama işaretleri ve sayılar barındıran ve bunların da rastgele şekilde dizilmesiyle oluşan bir şifreleme ile (ki,bu bahsi yapılan şifre kullanımı,diğer mail veya sosyal medyadaki hesaplar,banka işlemleri için de geçerlidir aslında)
en azından kırılmasının engellenmesi veya geciktirilerek zaman alması da sağlanabilecek nitelikte olmalıdır.

Şifreleme yöntemi,uygulama teknikleri açısından farklı içeriklere sahip olmaktadır.bunlar;

a)      Veritabanını genel şifreleme

b)      Visual Basic kod sayfasını şifreleme

c)       Uygulama içeriğindeki form nesnelerinin Açıldığında olay yordamına  kod ile şifreleme

d)      Tablolar içerisindeki verilerin Encrypt-Decrypt yöntemi ile anlamsız bir hale getirip kullanım durumunda çözümleme ile normale dönüştürerek şifreleme

a)  VERİTABANINI GENEL ŞİFRELEME
Veritabanına ilk açıldığı zaman bir şifre tanımlamasında bulunarak,bu şifrenin girilmesi söz konusu olduğunda veritabanının kullanılmaya başlanmasına izin vermek için uygulanmaktadır.

Bu işlemi gerçekleştirmek için;uygulamanızı kapatınız ve Access veritabanını çalıştırınız.menüden DOSYA-AÇ seçeneği ile dosya açma penceresini aktifleştiriniz.buradan,uygulamanızı sol tuş ile tek tıklama sonucu çalıştırmaksızın belirleyiniz (seçili hale getiriniz).pencerenin sağ alt köşesinde yer alan AÇ butonuna basınız ve ekrana gelecek olan kısımdan ÖZEL KULLANIMDA AÇ seçeneğini işaretleyiniz.bu birinci aşama.ikinci aşamada ise,menüden ARAÇLAR-GÜVENLİK-PAROLA İLE ŞİFRELE ifadesini seçiniz.ekrana gelecek olan VERİTABANI PAROLASINI BELİRLE başlıklı pencerede veritabanınız için şifrenizi iki kez giriniz ve TAMAM ile pencereyi kapatınız.ardından,uygulamanızı bu hali ile kaydediniz.tekrar çalıştırdığınızda uygulamanızı,sizden şifre girmeniz istenecektir.

Veritabanı şifresini iptal etmek için yukarı belirtilen özel kullanımda açma işlemini tekrarlayınız ve menüden ARAÇLAR-GÜVENLİK sekmesine gelindiğinde VERİTABANI ŞİFRESİNİ ÇÖZ yazılı ifadeyi seçiniz.şifreyi iptal ederek (temizleyerek) tekrar kaydediniz.artık,şifre sorulmayacaktır.

b) VISUAL BASIC KOD SAYFASINI ŞİFRELEME
Kullanıcıların ya da üçüncü şahısların uygulamanın kodlarına erişmelerini ya da değiştirmelerini veya zarar vermelerini engelleyebilmek için gerçekleştirilmektedir.

Bu işlemi uygulamak için;kod sayfasına geçiniz.sol köşede projenizin yer aldığı bir pencere mevcuttur.açık değilse bu pencereyi aktifleştirmek için,menüden VIEW-PROJECT EXPLORER seçeneğini işaretleyebilirsiniz.bu pencerede DATABASE (projenizin adı) yazılı satırın üzerine gelip sağ tuşa basınız ve DATABASE PROPERTIES ifadesini seçiniz.ekrana gelecek olan pencerede PROTECTION sekmesine geçiniz.burada,alt kısımda yer alan şifre giriş satırına doğrulaması ile birlikte şifrenizi giriniz.pencerenin üst kısmında inceleme için projenizi kilitlemek için ilgili checkbox seçeneğini işaretleyiniz.TAMAM ile pencereyi kapatıp kaydediniz.artık,kod sayfasına girildiğinde,kodları incelemek için şifre sorulacaktır.

Şifreyi iptal etmek için,şifreyi girdikten sonra tekrar DATABASE PROPERTIES ile PROTECTION sekmesine geliniz ve buradan hem şifreleri temizleyiniz hem de checkbox seçeneğini iptal ediniz.TAMAM ile pencereyi kapatıp kaydediniz.

c) FORM NESNELERİNi ŞİFRELEME
Eğer uygulama içerisinde yetkilendirme veya izin işlemleri uygulanmak istenmeyip sadece formları şifreleme işlemi tercih edilecek olunursa gerçekleştirilen yöntemdir.

Bunun için,kod sayfasında ilgili formun Açıldığında olay yordamına  eğer (IF) koşulu ile kod yazıp şifre talep edilir.bu şifre girilmediği takdirde formun açılması engellenebilir.

Bu yöntemi tek tek her bir form için oluşturmak yorucu ve zahmetli olacaktır.hele ki,hayli form nesnesi uygulamada mevcut ise.bu nedenle,bu yöntem sadece basit uygulamalarda veya az miktarda formun olduğu uygulamalarda gerçekleştirilmesi daha doğru olacaktır.bu yöntem sadece bilgilendirme amacı ile bahsi yapılmıştır.bu yöntemin yerine,daha gelişkin özellikli yetkilendirme ve izin yönteminin uygulanması daha sağlıklı ve güvenli olmaktadır.

d)  TABLO VERİLERİNİ ENCRYPT-DECRYPT İLE ŞİFRELEME
Tablo içeriğinde yer alan verilerin bu yöntemin uygulanması ile anlamsız bir hale getirilmesine ve sonrasında kullanım durumlarında ihtiyaç halinde normal hallerine getirilmesini sağlamak için gerçekleştirilmektedir.

Böylece,kriptolu (ENCRYPT) halde olacağından;ilk bakıldığında ne olduğu anlaşılamayacak,tuhaf gelecektir.sonrasında,çözümleme (DECRYPT) işlemi ile bu veriler normal haline getirilmektedir.

ÖRNEK;
Metin alanına deneme yazıp bunun tabloda ²C¯±¹¦ gibi göstermesi sağlanır.tekrar dönüştürme ile de ²C¯±¹¦ ifadesi deneme haline geri getirilir.

Bu yöntemin nasıl uygulandığına dair gerek site içerisinde gerekse de internet ortamında hem bilgi hem de örnekler olarak mevcut.araştırabilirsiniz.

3)  DOSYA VE KLASÖR KORUMA YÖNTEMİ
uygulamanızı bir nebze de olsa koruma altına almak için,asıl ana uygulamanızda tablolarınızı barındırmayınız.bunun yerine,tabloları ayrı bir veritabanında bulundurunuz.böylece,veritabanınız ile ilgili olası bir silinme,taşınma veya bir şekilde zarar görme durumları söz konusu olduğunda,hazırlanan form veya diğer nesneler bir şekilde tekrar oluşturulabilir ya da yedek formlar ile takviye edilebilir.fakat,eğer verileriniz zarar görürse bunların telafisi kimi durumlarda hayli zor olmakta ya da mümkün olmamaktadır.

Bu nedenle,bu gibi oluşabilecek sorunların önüne geçebilmek,engelleyebilmek adına ayrı bir veritabanında barındırmak daha geçerli,daha sağlıklı ve verimli olmaktadır.işte,bu ayrı olarak saklanılacak olan tabloları barındıran veritabanlarını koruma altına almak da bir güvenlik ihtiyacı,gereksinimi olarak doğmaktadır.

Bunu sağlamak için de,bu veritabanı dosyasını ayrı bir klasörde bulundurup,bu klasörü de koruma altına almak gerekmektedir.istisnai kişilerin ya da kullanıcıların dışında,diğer yeterli bilgiye,birikime ve donanıma sahip olmadığı varsayılan kişilerin erişmekten ya da kurcalamaktan çekinecekleri en uygun yer,Windows işletim siteminin sistem klasörü içerisidir.bu klasör içerisine yine kodlama ile ayrı bir klasör oluşturulup,tabloları barındıracak olan veritabanının bu klasöre kopyalanması veya taşınması sağlanır.kopyalama durumunda ilgili dosya silinir ve sistem klasöründen verileri alması sağlanır.veritabanının barındırıldığı klasör de,yine kodlama ile gizlenir.görünürlüğü etkisiz hale getirilir.biraz daha,güvence altına alınmış olur.

Dosya kopyalama veya taşıma,klasör oluşturma ve gizleme kodlarına yine gerek bu siteden ve gerekse de internet ortamında yapılacak araştırma ile edinilebilir.

Bu konuda son olarak,eğer uygulama bir ağ üzerinde paylaşıma sunuluyorsa;yukarıda bahisleri geçtiği üzere,sunucu (server) erişim engelleme,ağ koruma,yetkilendirme ve izin durumları da dahil edilecek hususlar.bunların da araştırılıp incelenmesi yerinde olacaktır kanısındayım.

Lisanslama konusuna yönelik olarak da,bu işlem sadece veritabanının dağıtımını,paylaşımını ya da çoğaltılmasını engellemek adına yapılan bir işlem olduğu unutulmamalı.veritabanının dışında ayrı bir husustur.

Lisanslama için,bu paylaşımı engelleme adına uygulanmasına yönelik olarak çeşitli alternatif işlemler söz konusu olabilmektedir.hard disk seri numarasına göre,işlemci numarasına göre veya mac adresi numarasına göre bilgiler alınmak sureti ile,kurulum öncesi bu kontroller yaptırılarak eğer farklılık durumu mevcut ise,tekrar kurulumunun engellenmesi sağlanabilir.

Ya da,bir diğer alternatif yöntem ise,aktifleştirme kodunun ilgili kişinin mail adresine gönderilip,bu kodun girilmesi şarta bağlanıp doğru kod girişi dahilinde uygulamanın kurulumu sağlanabilir.

Son olarak,şu da unutulmamalı;her ne yapılırsa yapılsın,her ne güvenlik önlemi alınırsa alınsın,asla tam anlamı ile bir koruma ya da güvence altına alınma durumu söz konusu değildir.kaldı ki,bilineceği ya da öğrenileceği üzere;aşılamaz ya da kırılamaz denilen nice güçlü yapıda veya firmalara ait siteler veya uygulamalar kırılabilmekte,içeriklerine ulaşılıp gerek değiştirilmesi veya gerekse de zarar görmesi sağlanabilmekte olan durumlar herkesin yazılı ve görsel medyada takibine veya bilgisine denk gelmiştir.bu nedenle,yapılabilecek tüm engellemeler sadece erişimleri ötelemekten,ertelemekten,zamana yaymaktan öteye geçmemektedir.yüzde yüz bir güvence sağlamamaktadır.güvenlik konusunda bilindik işlemlerin dışında,bilgiler açısından güncel olmayı da ihmal etmemeli,sürekli araştırma içerisinde olmalı.yenilenmeli ve yapılanmalı.paylaşmayı istediğim açıklamalar bunlardır.bilginize.

İyi çalışmalar,Saygılar.
26/04/2015, 14:01

mehami

Bilgiler için atoz hocama ve şimendifer (ekrem abiye) çok tşk ederimm..Kafamdaki sorulara bir nebzede olsa cevaplar buldum çok tşk ederim..

Konu isterseniz taşınsın istersenize de başka görüş ve öneriler için bir süre daha açık kalsın..
Saygılar sunuyorum..