Kopya Koruması, Entelektüel Koruma ve Dağıtım Sorunları


10

Raspberry Pi 2 Model B v1.1 ile bir süre sonra, aşağıdaki endişelerim var?

  1. Ben savunmasız eğitim sektörlerini geliştirmek için odaklanmıştır biliyorum ama mümkün satmak için RPI'nin dayalı bir ürün, ?. Onunla para kazanmak için ?. Onunla milyoner mi olursun?
  2. Bir gelişmeyi nasıl koruyabilirim , diyelim ki, birinin RPi SD Kartımı almasını, çoğaltmasını ve kendi kopyalarını almasını istemiyorum . Şu anki alternatifim SDCard portunu süper yapıştırıcı ile doldurmaktır :). Başka bir seçenek, RPi'yi çevrimiçi bir lisans sunucusuna pingleme yapabilir , bu da elbette bir WiFi bağlantısı gerektirir . Veya bir Donanım HASH Kimliği (Sanırım daha iyi bir cevap olmalı ...)
  3. Ben de SD Kart monte ederek, kök olmasa bile kurulumu kurtarmak için mekanizmalar vardır kontrol ettik. Yine, en iyi çözümüm süper yapıştırıcı yaklaşımıdır ....

Şimdiden teşekkürler.


2
Bu genel bir gömülü Linux sorusudur. Hem teknik hem de yasal olarak karmaşık bir sorundur.
Craig

2
Merhaba ve RaspberryPi.SE'ye hoş geldiniz! Bu bir soruda çok fazla soru var. Bazı konular da çok geniştir ve Pi'ye özgü değildir. Zaman ve çaba harcayarak tüm kopya koruma sistemlerinin atlatılabileceğini düşünmeniz gerekir. Özellikle sisteminiz konuşlandırıldıysa ve "kötü adam" ın korumanızı kırmak için mevcut tüm araçları kullanmasını engellemenin bir yolu yoksa.
Ghanima

@craig: Gömülü bir Linux Topluluğu var mı?
Brethlosze

WRT # 2: Herhangi bir platformda teknik olarak korsanlığı önleyemezsiniz , tek yapabileceğiniz yasal olarak savaşmaktır . Sanırım attan önce arabanız var. Bunun bir endişe olduğu pi tabanlı bir yazılım projeniz olduğunda, pi'ye gerçekten bağlı pi tabanlı bir proje olmadığını anlayacaksınız. Bu sadece genel amaçlı bir cihaz ve topluluk kalkınma odaklı.
goldilocks

2
Bu "onların platformu" değil, uygulama geliştirme akıllıca, ve onlar bunu biliyor ve umurumda değil. "Amaçları" bu değil. ARM mimarisini uygulayan bir Broadcom SoC. Kimse çok çeşitli diğer cihazlara önemsiz bir şekilde taşınamayan bir pi ile yapacak bir şey yok. Yani, bir kez daha: Attan önce araba var . Fikri mülkiyet ile ilgili endişenizin herhangi bir anlamı veya önemi olduğu noktaya geldiğinizde, size ne söylemeye çalıştığımı anlayacaksınız ...
goldilocks

Yanıtlar:


6

Entelektüel mülkünüzü korumaktan endişe ediyorsanız, Rapberry Pi tabanlı uygulamanızı harici yapılmış özel bir mikro denetleyici (AVR, PIC, 8051 ... gibi MCU) tabanlı bir donanım anahtarı (Pi, USB, RXTX, I2C, SPI, 1 tel ...). Örneğin, Pi tarafı uygulaması, MCU'ya gönderilen, kodu çözülen ve önemli bir şeyin şifresini çözmek için bir kilit açma anahtarı olarak geri gönderilen rastgele bir sayı üretir. Daha sonra ek olarak, doğrudan MCU'da yürütülen bazı önemli işlevleriniz vardır (sadece parametreleri iletir ve sonucu MCU'dan alırsınız). Bilgisinin normalden çok daha geniş olması gerektiğinden, bunun bir hacker için çatlama zorluğunu nasıl artıracağını hayal edebilirsiniz. Mükemmel bir koruma yok, ama gerçekten bir meydan okuma yapmak istiyorsanız, o zaman bu bir yol olabilir.


1
Bu gerçekten güzel bir çözüm .... Ben bu konsepte bir deneyin ....
Brethlosze

1
Ne yazık ki bir donanım anahtarının çözümü bir yazılım anahtarı ile aynıdır - sadece kodun rahatsız edici kısmını kaldırın, doğru cevabı oluşturun, vb. Böylece aynı beceriler bir donanım anahtarına karşı çalışacaktır.
tomnexus

2
Donanım anahtarına bazı önemli işlevler koyarsanız ve Pi uygulama işlevselliğiniz için sonucu kritik hale getirirseniz değil. İşlev yalnızca bir mikro denetleyicide bulunduğundan, Pi tarafında çıkarılacak hiçbir şey yoktur. Bu kırılması imkansız değil, ama birçok kez daha zor, çünkü normal kod kırılmasından çok daha yüksek beceriler gerektiriyor.
avra

1
Bu harici devre gerçekten koruma sağlarken, bu şeyler çok paraya mal olur: araştırma, prototipleme, üretim, test, uygulama, bakım. Hat boyunca bir şey olursa ne olur? Ahududu gelecek modellerde arayüzlerini değiştirirse ne olur? Kısa bir ömür veya bir hobi projesi varsa, devam edin. Endüstriyel / ticari bir ürünse, belki OEM daha güvenli bir bahistir.
EDP

5
  1. Bence bu baştan beri hesaplama modülü ile ilgili bir fikirdi. Kar çevirmek sorun olmamalı.

  2. / 4. Superglue seçeneği muhtemelen iyi bir değiş tokuştur. Sonuçta, cihaza fiziksel erişimi olan bir saldırganı yenemezsiniz. Muhtemelen milyonlarca DRM altyapısına yatırım yapmış olan oyun konsollarına bir bakın ve hepsi sonunda düşecek. Farklı bir ruhla, açıklığı kucaklayabilir ve ürününüzün geliştirme sürümünü satabilir ve bir çeşit SDK ekleyebilirsiniz. Teknik odaklı bir kullanıcı grubundan aldığınız geri bildirimler değerli olabilir ve ilginizi çekebilir.


Superglue seçeneği muhtemelen tamamen fındıktır, ancak burada başka iyi noktalara değiniyorsunuz. ; |
goldilocks

Aslında, her RPi yazılımının her RPi kartı için programlanabilmesi için Raspberri Pi'nin bazı donanım kimliğini düşünüyordum ve bu nedenle, yazılımı klonlarsam, sistem çalışmaz. Eski uProcessors, gemide basitçe programlandı, bu yüzden fişini çekemezsiniz :).
Brethlosze

1
Bir donanım kimliğiniz olsa bile, fiziksel erişimi olan herkes bunu okuyabilir. Tabii ki programlanan işlemciler de hata ayıklama arabirimleri sağlar, böylece onları gerçekten okuyabilirsiniz. Daha sofistike sistemlerde SOC muhtemelen sadece imzalı kodun yürütülmesiyle ilgilenecektir. Broadcom çipinin bu yönde bazı işlevleri varsa çok şaşırmazdım, ancak bunun için belgeleriniz yok. Birimlerdeki milyonları satmayı planlıyorsanız, sizinle bunun hakkında konuşabilirler;)
user1217949

LOL .. hayır, sanırım onlardan çok az bir miktar satacağım !. Yani, Raspbian altında çalışan bir kod varsa, başka herhangi bir SD kart almak ve onu okuyabilir? hata ayıklama? çatlatır mısın? Kesinlikle eminim, cevap elbette evet. En iyi seçim bir sahip olacak Hardware Keyönerdiği Avra ve konnektöründen iç Superglue ile SD kart gömmek?
15:15

4

Bu uygulama kesinlikle kapsama alanını kaybederken, kurumsal ofis ortamlarındaki masaüstü makinelere yapıştırılmış USB konektörlerinin miktarından şaşıracaksınız. Ve burada büyük çokuluslu şirketler hakkında konuşuyorum.

Ama şimdi konu hakkında ...

IP korumasının önemli bir faktör olduğu ticari projeler için Pi, en iyi erken prototipleme / konsept kanıtı için iyidir. Koruma bir sorun olmasa bile, Pi'nin daha büyük ölçekte konuşlandırılması en iyi çözüm değil IMHO'dur - bu forumun önceki bir başlığında açıkladığım birkaç nedenden dolayı .

Tersine mühendislik / bilgisayar korsanlığı / yeniden üretime karşı güvenli bir sistem yoktur. Herhangi bir sistem sömürülebilir. Ancak her sistemin bir penetrasyon puanı vardır. Açık yaklaşımı ve harici SD kartı ile Pi'nin çok düşük bir kartı var. Özel bir bootloader ile birlikte özel SoC, sandviç bileşenler ve çok katmanlı PCB ile özel olarak tasarlanmış askeri onaylı bir donanım kartı, donanım şifrelemesi daha yüksek bir puana sahip olacaktır.

Üstelik dağıtım faktörü var. Pazarınız ne kadar genişse, insanların içeri girmesi ve teknolojinizi çalması o kadar ilginç hale gelir.

Donanım tüm kurulumda direnç parçanızsa ve teknolojinizi korumak önemli bir faktörse, Pi'nin sizin için bir ürün olduğunu düşünmüyorum. Donanımınız hizmet satmak için bir kolaylaştırıcıysa, koruma teknolojisi, istemci tarafında değil sunucu tarafında yapılmalıdır.

Pi'yi bu tür hizmetleri satmak için kullanıyoruz. Pi'deki yazılımımızın yükseltilmiş bir koruma seviyesi var, derlenmiş bir C uygulaması kullanıyoruz, MAC ve / veya CPU seri numarasında kilitli. Ama sonunda, sunucu tarafımız olmadan, kaynak kodu bile neredeyse işe yaramaz.


3

Bir şifreleme anahtarı ile ahududu içinde bir domuzcuk arka kullanabilirsiniz. Piyasada birkaç ticari cihaz var. Ben çok iyi çalışan Raspberry Pi için bu Yazılım Seri Koruma kullandım .


2
Bu, sistemi klonlamaya karşı korumanıza yardımcı olmaz - bilgisayar korsanları, istedikleri takdirde HW anahtarı denetimini ikili dosyadan kaldıracaktır ... HW anahtarı yalnızca belirli bir koruma düzeyi sağlayacaktır (belki de birinci düzey hobi durdurmak için) hacker).
Kozuch

2

Açık kaynak yap

Ciddi bir şekilde kopyalamaya çalışmayın. Açık kaynak yapın. Mümkünse, başkalarının projenize katılmasına izin verin.

Sonra hizmetler için ücret. Bunu doğru yaparsanız kova kazanabilirsiniz.

Red-had bunu ve diğer birkaç şirketi böyle yapıyor. Hepsi iyi gidiyor ve büyüyor.


1
Hayır, bu bir ürün değil, bir proje, ne büyük bir proje ne de ilginç bir programlama projesi. Kulağa hoş geliyor, ama yine hayır.
17'de

1
Katılmıyorum. Deneyimlerime göre, müşteri tarafından gönderilen ve aktif olarak kullanılan her programa destek çağrıları, geliştirme talepleri ve elbette hata düzeltmeleri olacaktır. Bunlardan hiçbirine sahip olmayan tek yazılım, gönderildikten sonra asla kullanılmayan yazılımdı.
MadMike


Mesele bu, bu bir ürün, bir cihaz için. yazılımda hiç sanat yoktur, ancak değişkenlerin işlenme şekli, tıpkı herhangi bir akıllı kontrolör gibi korunmalıdır. Bu anlamda gelişmelerinizi açık kaynak yapmak istemiyorsunuz, bu söz konusu değil, bu başka bir iş. Belki bir şirkettesiniz ve müşteri sizi aradığında kızgınsınız, aslında patronlarınıza daha fazla fatura verir ve size uzun vadede iyi olan satış sonrası hizmeti verir. Her durumda, açık kaynak kâr etmek için değil, insanlık için iyidir.
21:21

1
Yine bu, tüm çalışmalarınızı insan yararı için armağan etmek veya yaptığınız her şey için herkesi ücretlendirmek hakkındaki ütopik tartışmadır.
Brethlosze

1

Birkaç sentim:

  1. Doğrudan okunabilen komut dosyaları çevresinde asla bir çözüm oluşturmayın.
  2. Birden çok yazılım / süreç ve donanım açısından arıza işlevleri.
  3. Bazı okuma donanımı "işlevsel" bağımlılığı ekleyin.
  4. Akıllı kart okuyucu ekleyin ve ürününüzle birlikte "etkinleştirici" akıllı kart satmak.
  5. Lisans sunucunuz olsun
  6. EEPROM'da bir kullanım sayacı var !!! Ve çevrimiçi "şarj" için bir yol olmalı .. ;-)

...


1

Giriş düzeyinde bir koruma olarak, altında /sys/block/mmcblk0/device/tipik disk görüntüsü klonlama yazılımı tarafından klonlanmayan benzersiz bir SD kart kimliği bulunur . Bu, benzersiz kimliği tutmak için ayrı bir cihaz gerektirmeme avantajına sahiptir ve süper yapıştırıcıdan sonra ikinci bir koruma katmanı olarak oldukça iyi çalışır. En azından SD kartı klonlayabilen insanları durduracak.

Kimlik kullanarak koruma ile ilgili bir başka ipucu da basit bir kontrol kullanmaktan kaçınmaktır.

if(readID() != 0xDEADBEEF) exit();

Bunun gibi basit kontroller kolayca keşfedilebilir (bilinen kimliği arayarak veya çağrıları izleyerek exit()) ve kaldırabilir. Çok daha iyi bir yaklaşım, ID'yi hesaplamalara bir sabit olarak dahil etmektir. Yani, i++kodunuzda bir yer yerine yazacaksınız

i = i + readID() - 0xDEADBEEF + 1;

Kod kimliği ( 0xDEADBEEF + 1 == 0xDEADBEF0) içinde tam kimlik görünmeyeceğinden ve tüm çağrıları incelemek exit()de koruyucu kodunuzun yerini göstermeyeceğinden , bunun keşfedilmesi çok daha zor olacaktır . Bunun yerine, kodunuz yanlış kimliğe sahip bir sistemde kilitlenir ve saldırganın sorunu anlamak ve çözmek için uygulamanızın mantığında hata ayıklaması gerekir.


0

Harici bir bileşen kullanarak, güvenlik bileşeninin bu sorunu çözeceğini söyledim. Fikrinizin gerçekten harika olduğunu ve bunun için ekstra maliyete değer olduğunu düşünüyorsanız, bunu yapmak için bazı profesyonel MCU / CPU kullanmanızı öneririm. Broadcom BCM58101 serisi gibi, gerçekten uygun maliyetli değildir ve yeni bir kullanıcı için kolay değildir, ancak yüksek güvenlik seviyesi de fikrinizi / tasarımınızı koruyabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.