|
#1
| ||||
| ||||
| Yazılımsal Güvenlik Algoritmaları ve Güvenlik Paranoyaları Yazılımsal Güvenlik Algoritmaları ve Güvenlik Paranoyaları Her insan belirli bir emek, zaman, değer harcayıp ortaya çıkardığı ürünün veya hizmetin karşılığını bir şekilde almak ister. Bu bazen maddi olabileceği gibi, manevi anlamda kendini gerçekleme adına takdir edilme, övülme, toplumda saygınlık kazanma şeklinde de olabilir. Hangimiz bin bir emekle ve zorlukla ortaya çıkardığımız ürünü veya sunduğumuz hizmetin karşılığını bir şekilde almak istemeyiz ki ? Bugün Ceviz'de soru soranlara şöyle bir göz attığımızda bile, bir ürkeklik, çekingenlik havası içinde olanları, kodlarını gizlemeye çalışanları, yada hedefledikleri projeleri başkalarının öğrenmesinin aleyhlerinde olduğunu düşünerek hareket edenleri görürüz. Hatta ve hatta Cem Yılmaz'ın bir showunda yaptığı gibi "Kaynağını göster kaynağını" dediğimizde kodlarını yada projesinin adını ısrarla gizlemeye çalışanları hasbel kader hissederiz. İyi niyetli olanlarımızın hoş karşıladığı bu davranış biçimi tabiî ki emeğimizin, çabamızın karşılıksız yaban ellere geçmesini engellemek içindir. Bugün Bilişim sektöründe Microsoft başta olmak üzere yazılımsal olsun, donanımsal olsun geliştirdiği güvenlik sistemi aşılamayan bir yazılım firması var mıdır acaba ? Yada eğer Microsoft gibi firmalar yazılımlarının kırılmasını önleyebilecek tedbirleri gerçekten alabilselerdi, veya almak isteselerdi şirket ürünleri bu denli çok insan tarafından kullanılır mıydı ? Bu makalede bir çoğumuzun kabus konusu yaptığı güvenlik algoritmalarından ve çözüm önerilerinden bahsetmek istiyorum. Hemen burada belirmeliyim ki anlatacağım yöntemlerin hiç biri kırılamaz, geçilemez değildir. Kesin çözüm için Sanat eserleri ve fikir hakları kanununa uygun olarak telif hakkı almak için yazılımlarınızı tescil ettirmenizi ısrarla tavsiye ederim. A. YAZILIMSAL GÜVENLİK KAVRAMI Eşi benzeri görülmemiş bir uygulama geliştirdiğinizde veya mevcut bir uygulamanın daha iyisini tasarladığınızda ; 1. Kaynak kodlarını 3 ncü şahısların erişiminden korumayı 2. Uygulamanın son kullanıcıya dağıtılan kısmının rasgele kopyalanıp çoğaltılmasını engellemeyi 3. Uygulamanın güncelleme, bakım, servis, Teknik destek gibi hizmetlerinden gelir elde etmeyi 4. Toplumda birey veya firma olarak saygın bir yer edinmeyi amaçlarsınız. İşte tüm bu amaçları gerçeklemek için yazılımsal olarak alabileceğimiz önlemleri YAZILIMSAL GÜVENLİK KAVRAMI olarak anabiliriz. Yazılımsal güvenlik kavramı içinde yukarıda zikredilen amaçlar için alınabilecek önlemleri DONANIMSAL VE YAZILIMSAL GÜVENLİK ÖNLEMLERİ olarak ikiye ayırabiliriz. Donanımsal önlemler ayrı bir makale konusu olarak ileride ele alınabilir. B. YAZILIMSAL GÜVENLİK ÖNLEMLERİ Eğer profesyonel bir ekip tarafından geliştirilen yazılımları yüklerken dikkat ettiyseniz ;
C. YAZILIMSAL GÜVENLİK ALGORİTMALARI Yukarıda saydığımız dağıtım biçimlerinden herhangi biriyle piyasa arz edilen yazılımlar tam sürüm kullanıma izin vermek için bir çok farklı güvenlik algoritmasıyla donatılmaktadır.
Geliştirici firma son kullanıcıya teslim ettiği ürünle birlikte yalnızca o ürüne ait olan benzersiz bir lisans anahtarı dizisinide ürünle birlikte verir.Bu ürün anahtarı çeşitli formatlarda olabilir. Bu tip güvenlik uygulamaları genellikle cd-dvd gibi media ortamında dağıtılan uygulamalarda sık kullanılmaktadır. Media için lisans anahtarı tekil olduğundan aynı anahtarı kullanabilmek için cd-dvd'nin kopyalanabilmesi büyük bir güvenlik açığı teşkil etmektedir.Kullanıcı bu anahtarı girdiğinde uygulama girilen anahtar bilgisini biraz sonra anlatacağım yöntemlerden birini veya bir kaçını kullanarak saklar.2. Son kullanıcıya sağlanan ürün kimliğine karşılık kullanıcıdan bir lisans anahtar dizisi girmesinin istenmesi Bu yöntemde geliştiriciler yazılım için kullanıcıya bir ürün kimliği sunmakta, bu kimliğe uygun doğru lisans anahtarının girilmesini istemektedirler. Sunulan ürün kimliği sabit olabileceği gibi, son kullanıcının bilgisayarında kolay kolay değişmeyecek HDD. Fabrika seri numarası, Ekran Kartı Tipi, Ethernet MAC adresi gibi sabit aygıtlarla da ilişkilendirilebilmektedir. Böyle bir ilişki durumunda ürün kimliği kullanıcı bilgisayarına göre değişeceğinden girilecek lisans anahtarı dizisi de farklı olacaktır. 3. Ele alacağımız son algoritmada kullanıcı lisanslama işini nasıl yaparsa yapsın, kayıtlı kullanıcı olması için geliştirici tarafından bir aktivasyon onayının istenmesidir. Bu onay işlemi geliştiricinin ürünü ve müşteriyi takip etmesini kolaylaştırdığı gibi, kaçak yazılım kullanımını da büyük oranda azaltmaktadır. D. GÜVENLİK ALGORİTMALARININ UYGULANIŞ BİÇİMİ Elbette kullanıcının girdiği lisans anahtarı dizisi, ürün kimliği ve kullanıcıyla ilgili bilgiler çeşitli yerlerde kullanılmak üzere depolanmak zorundadır. Kullanıcı hangi tür lisanslama metoduyla ürünü etkinleştirirse etkinleştirsin geliştirici uygulamanın tam sürüm kullanımı için izin verilip verilmediğini denetlemek durumundadır. Denetleme ve güvenlik algoritması ne kadar karmaşık olursa uygulama güvenliğinin kırılması o denli güçleşecektir. Uygulamalarınız için iyi bir güvenlik algoritması kurmak için aşağıdakilere dikkat edilmelidir.
Ne kadar iyi tasarlanmış olursa olsun aşılamaz kırılamaz yazılım güvenliği kavramı olamayacağını aklınızdan çıkarmayın. Bu tür işlemler sadece bu süreci biraz daha geciktirir.Uygulamanızın bir güvenlik algoritmasıyla korunmaya ihtiyacı olup olmadığını iyice düşünün.Unutmayın ki insanların çoğu ekonomik olarak satın alabilecekleri şeylere ödeme yapabilirler. Uygulamanızın fiyatını belirlerken buna dikkat edin.Ayrıca uygulamayı geliştirdiğiniz yazılım ve diğer geliştirme araçlarını yasal yollardan elde etmiş olmalısınız ki, kendi uygulamanızda hak iddia edebilesiniz. Uygulamanızı mutlaka tescil ettirin. ![]() #include <middleeast.h> #define ISRAELIS foul_beasts |