Kod ve anahtarlar bir SD kart makinede ise Pratikte, bunlar olacak onlar, bunu de-derlemek mümkün olacaktır anahtarları keşfetmek mümkün ve onlar olacaktır hassas verileri ayıklamak mümkün.
Filmleri şifrelemek gibi, bir DVD de izleyiciye gösterilebilmesi için filmin şifresini çözmek için gereken tüm bilgileri içermelidir, böylece tüm film kopya koruma mekanizmaları sonuçta mahkumdur.
Yapabileceğiniz en iyi şey, ürününüzün tersine mühendislik ekonomisini değiştirmek.
Şifreleme ve / veya gizleme buna değer mi?
Şimdi kendinizi tamamen korumanın bir yolu olmadığını belirledik, sorular
- Bunun gerçekleşme olasılığı nedir?
- Algoritmanız ve verileriniz için başka birinin değeri nedir?
- Yazılımınızı kullanmak için lisans satın almanın maliyeti nedir?
- Algoritmanızı ve verilerinizi kopyalamanın maliyeti nedir?
- Algoritmanızı ve verilerinizi tersine mühendislik etmenin maliyeti nedir?
- Algoritmanızı ve verilerinizi korumanın maliyeti nedir?
Bunlar algoritmanızı / verilerinizi korumak için önemli bir ekonomik zorunluluk oluşturuyorsa, bunu yapmayı düşünmelisiniz. Örneğin, hizmetin değeri ve müşterilere maliyet yüksekse, ancak kodunuzu tersine mühendislik maliyeti, kodu kendisinin geliştirme maliyetinden çok daha düşükse, insanlar bunu deneyebilir.
Yani, bu sorunuza yol açar
- Algoritmanızı ve verilerinizi nasıl korursunuz?
Gizleme
Önerdiğiniz seçenek, kodu şaşırtmak, yukarıdaki ekonomi ile uğraşmaktır - size maliyeti çok fazla artırmadan (yukarıda 5) maliyeti önemli ölçüde artırmaya çalışır (6). Sorun, DVD şifrelemesinde olduğu gibi, başarısızlığa mahkum olması ve 3, 4 ve 5 arasında yeterli bir fark varsa, sonunda birisinin bunu yapmasıdır.
Başka bir seçenek , kodunuzun şifresini kimin şifresini çözdüğünü ve dağıtmaya başladığını belirlemenizi sağlayan bir Steganografi formu olabilir . Örneğin, 100 farklı verilerin bir parçası olarak float değerleri ve 1bit hata varsa LSB bu bit içine bu değerlerin her olmaz uygulamanızda, kodlamak (her müşteriye) benzersiz bir sorun nedeni tanımlayıcı arasında . Sorun, birisinin uygulama verilerinizin birden fazla kopyasına erişimi varsa, farklı olduğu açıktır ve gizli iletiyi tanımlamayı kolaylaştırır.
Koruma
Gerçekten güvenli olan tek seçenek, yazılımınızın kritik bir bölümünü, uygulamanıza dahil etmek yerine hizmet olarak sunmaktır .
Kavramsal olarak, uygulamanız algoritmanızı çalıştırmak için gerekli tüm verileri toplar , bulutta bir sunucuya (sizin tarafınızdan kontrol edilen) bir istek olarak paketler , hizmetiniz sonuçlarınızı hesaplar ve istemciye geri gönderir, hangi gösterecektir.
Bu, tamamen kontrol ettiğiniz bir alandaki tüm özel, gizli verilerinizi ve algoritmalarınızı tutar ve bir istemcinin de ayıklama olasılığını ortadan kaldırır.
Bariz dezavantajı, istemcilerin servis sağlayıcınıza bağlı olması, sunucularınızın ve internet bağlantılarının insafına olmasıdır. Artı tarafta, hata düzeltmeleri ile her zaman günceller. Ne yazık ki birçok insan tam da bu nedenlerle SaaS'a itiraz ediyor .
Bu, atmak için büyük bir adım olacaktır ve yukarıda büyük bir maliyet 6 olabilir, ancak algoritmanızı ve verilerinizi tamamen güvende tutmanın tek yolu budur .