복사 방지, 지적 보호 및 배포 문제


10

Raspberry Pi 2 Model B v1.1을 사용한 후 다음과 같은 문제가 있습니까?

  1. 취약한 교육 부문을 강화하는 데 초점을 맞추고 있지만 RPi를 기반으로 제품 을 판매 할 수 있습니까? 그것으로 돈을 벌기 위해?. 그것으로 zillionaire가 되시겠습니까?.
  2. 어떻게 개발을 보호 해야합니까? 누군가 누군가 내 RPi SD 카드를 가져 와서 복제하고, 자신의 복제본 을 갖기를 원하지 않습니다. 나의 현재 대안은 SDCard 포트를 superglue :)로 채우는 것입니다. 다른 선택은 RPi가 라이센스 서버를 온라인 으로 하도록 할 수 있으며 , 물론 WiFi 연결 이 필요 합니다. 또는 하드웨어 해시 ID (이것이 더 나은 대답이어야합니다 ...)
  3. SD 카드를 마운트하여 루트가없는 경우에도 설치를 복구하는 메커니즘도 확인했습니다. 다시 말하지만, 최고의 해결책은 초 접착 방식입니다 ....

미리 감사드립니다.


2
이것은 일반적인 임베디드 리눅스 질문입니다. 기술적으로나 법적으로 복잡한 문제입니다.
Craig

2
RaspberryPi.SE에 오신 것을 환영합니다! 이것은 하나에 너무 많은 질문입니다. 일부 문제는 매우 광범위하며 Pi 관련이 아닙니다. 주어진 시간과 노력으로 모든 복제 방지 시스템을 우회 할 수 있다는 점을 고려해야합니다. 특히 시스템이 배포되어 있고 "나쁜 사람"이 사용 가능한 모든 도구를 사용하여 보호 기능을 방해하는 것을 막을 방법이 없다면.
Ghanima

@craig : 임베디드 리눅스 커뮤니티가 있습니까?
Brethlosze

WRT # 2 : 모든 플랫폼에서 기술적 으로 불법 복제를 방지 할 수는 없습니다 . 합법적으로 싸우기 만하면 됩니다. 말 앞에 카트가 있다고 생각합니다. 이것이 우려되는 pi 기반 소프트웨어 프로젝트가있을 때, 실제로는 pi에 바인딩 된 pi 기반 프로젝트가 없다는 것을 알게 될 것입니다. 이는 범용 장치 일뿐 아니라 커뮤니티는 개발 지향적입니다.
goldilocks

2
"그들의 플랫폼"이 아니며, 응용 프로그램 개발이 현명하며이를 알고 신경 쓰지 않습니다. 그것은 "그들의 목적"이 아닙니다. ARM 아키텍처를 구현하는 Broadcom SoC입니다. 매우 광범위한 다른 장치로 사소하게 포팅 할 수없는 pi와 관련이있는 사람은 없습니다. 다시 한 번 말하면 장바구니 앞에 말이 있습니다. 지적 재산에 대한 귀하의 우려가 의미 또는 의미를 갖는 시점에 도달 할 때, 귀하는 내가 귀하에게 말하려는 내용을 이해할 것입니다.
goldilocks

답변:


6

내재적 재산 보호에 대해 정말로 우려하는 경우 Rapberry Pi 기반 응용 프로그램을 외부 맞춤형 마이크로 컨트롤러 (AVR, PIC, 8051 ...와 같은 MCU) 기반 하드웨어 키 (USB, RXTX, I2C, SPI, 1 와이어 ...). 예를 들어, Pi 측 애플리케이션은 임의의 숫자를 생성하여 MCU로 전송되고 디코딩 된 후 중요한 키를 해독하기 위해 잠금 해제 키로 다시 전송됩니다. 그런 다음 MCU에서 직접 중요한 기능을 직접 실행합니다 (매개 변수를 전달하고 MCU에서 결과를 얻음). 그의 지식이 평소보다 훨씬 넓어야하므로 해커에게 크래킹 난이도를 어떻게 증가 시킬지 상상할 수 있습니다. 완벽한 보호 기능은 없지만 실제로 도전하고 싶다면이 방법을 사용하십시오.


1
이것은 참으로 좋은 해결책입니다 .... 나는이 개념을 시도해 볼 것입니다 ....
Brethlosze

1
불행히도 하드웨어 키에 대한 솔루션은 소프트웨어 키와 동일합니다. 코드의 문제가되는 부분을 제거하고 정답을 작성하는 등의 작업을 수행하십시오. 따라서 동일한 기술이 하드웨어 키에 대해 작동합니다.
tomnexus

2
중요한 기능을 하드웨어 키에 넣고 Pi 응용 프로그램 기능에 중요하게 만들지 마십시오. 기능은 마이크로 컨트롤러에만 존재하므로 Pi 측에서는 제거 할 것이 없습니다. 이것은 깨지는 것이 불가능하지는 않지만 일반적인 코드 크래킹보다 훨씬 높은 기술을 요구하기 때문에 여러 번 어렵습니다.
avra

1
이러한 외부 회로는 실제로 보호 기능을 추가하지만 연구, 프로토 타이핑, 제조, 테스트, 구현, 유지 관리에 많은 비용이 듭니다. 라인을 따라 무언가가 발생하면 어떻게합니까? Raspberry가 향후 모델에서 인터페이스를 변경하면 어떻게 되나요? 수명이 짧거나 취미 프로젝트라면 가십시오. 산업 / 상업용 제품이라면 아마도 OEM이 더 안전한 방법 일 것입니다.
EDP

5
  1. 나는 그것이 컴퓨팅 모듈에 대한 아이디어라고 생각합니다. 이익을 돌리는 것은 문제가되지 않습니다.

  2. / 4. superglue 옵션은 아마도 좋은 트레이드 오프 일 것입니다. 궁극적으로 장치에 물리적으로 액세스하여 공격자를 물리 칠 수는 없습니다. DRM 인프라에 수백만 달러를 투자했을 가능성이있는 게임 콘솔을 살펴보십시오. 다른 방식으로, 개방성을 수용하고 제품의 개발 버전을 판매하고 일종의 SDK를 포함 할 수도 있습니다. 기술에 중점을 둔 사용자 그룹으로부터받은 피드백은 귀중한 것이며 관심이있을 수 있습니다.


superglue 옵션은 아마도 완벽하지는 않지만 여기에서 다른 좋은 점을 지적합니다. ; |
goldilocks

실제로 Raspberri Pi의 하드웨어 ID를 생각하고 있었으므로 모든 RPi 소프트웨어를 모든 RPi 카드에 대해 프로그래밍 할 수 있으므로 소프트웨어를 복제하면 시스템이 작동하지 않습니다. 기존 uProcessors는 보드에 간단히 프로그래밍되었으므로 플러그를 뽑을 수 없습니다 . :)
Brethlosze

1
하드웨어 ID가 있더라도 물리적 액세스 권한을 가진 다른 사람이 읽을 수 있습니다. 물론 보드에 프로그래밍 된 프로세서는 디버깅 인터페이스도 제공하므로 실제로 읽을 수 있습니다. 보다 정교한 시스템에서 SOC는 서명 된 코드 실행 만 처리합니다. Broadcom 칩이 그 기능을 가지고 있다고해도 놀라지 않을 것입니다. 그러나 설명서는 없습니다. 수백만 대를 판매 할 계획이라면, 그것에 대해 이야기 할 것입니다.;)
user1217949

LOL .. 아니, 난 정말 그들 중 적은 수량을 판매 할 것 같아요 !. 따라서 Raspbian에서 실행중인 코드가 있으면 다른 사람이 SD 카드를 가져 와서 읽을 수 있습니까? 그것을 디버그? 깨뜨려? 나는 확실히 확신합니다. 물론 대답은 그렇습니다. avraHardware Key제안 하고 SD 카드를 SuperGlue와 함께 커넥터 안에 넣는 것이 최선의 선택 입니까?
Brethlosze

4

이 방법은 적용 범위를 잃어 버리는 반면 회사 사무실 환경의 데스크탑 컴퓨터에 붙어있는 USB 커넥터의 양에 놀랄 것입니다. 그리고 저는 여기서 큰 다국적 기업과 이야기하고 있습니다.

그러나 지금 주제에 ...

IP 보호가 중요한 요소 인 상용 프로젝트의 경우 Pi는 초기 프로토 타이핑 / 개념 증명에 적합합니다. 보호가 문제가되지 않더라도 대규모로 Pi를 배포하는 것은 IMHO가 최선의 해결책이 아닙니다. 여러 가지 이유로이 포럼 의 이전 스레드 에서 설명했습니다 .

리버스 엔지니어링 / 해킹 / 재생에 안전한 시스템은 없습니다. 모든 시스템을 이용할 수 있습니다. 그러나 모든 시스템에는 침투 점수가 있습니다. 개방형 접근 방식과 외부 SD 카드로 인해 Pi는 매우 낮습니다. 맞춤형 부트 로더와 함께 맞춤형 SoC, 샌드위치 구성 요소 및 다층 PCB를 갖춘 맞춤형으로 설계된 군용 하드웨어 보드는 하드웨어 암호화의 점수가 높습니다.

그 외에도 배포 요소가 있습니다. 시장이 넓을수록 사람들이 침입하여 기술을 훔치는 것이 더 흥미로워집니다.

하드웨어가 전체 설정에서 저항 요소이며 기술을 보호하는 것이 중요한 요소라면 Pi가 당신을위한 제품이라고 생각하지 않습니다. 하드웨어가 서비스 판매를위한 촉진자 인 경우 클라이언트 쪽이 아닌 서버 쪽에서 기술을 보호해야합니다.

우리는 그러한 서비스를 판매하기 위해 Pi를 사용합니다. Pi의 소프트웨어는 보호 수준이 높아졌으며 MAC 및 / 또는 CPU 일련 번호로 잠겨있는 컴파일 된 C 응용 프로그램을 사용하고 있습니다. 그러나 결국 서버 측이 없어도 소스 코드조차 거의 쓸모가 없습니다.


3

암호화 키로 라즈베리 내부에서 피기 백을 사용할 수 있습니다. 시장에는 몇 가지 상용 장치가 있습니다. 나는 Raspberry Pi 용이 소프트웨어 직렬 보호를 사용 했는데 매우 효과적입니다.


2
이것은 시스템이 복제되지 않도록 보호하는 데 도움이되지 않습니다. 해커는 원하는 경우 바이너리에서 HW 키 검사를 제거합니다. 해커).
Kozuch

2

그것을 오픈 소스로 만드십시오

복사 방지를 시도하지 마십시오. 그것을 오픈 소스로 만드십시오. 가능하면 다른 사람들이 프로젝트에 참여하게하십시오.

그런 다음 서비스 비용을 청구하십시오. 그렇게하면 돈을 벌 수 있습니다.

Red-had 는 이와 같은 몇 가지 다른 회사를 좋아합니다. 그들은 모두 잘하고 성장하고 있습니다.


1
아니요, 이것은 프로젝트가 아니라 제품이거나 큰 프로젝트도 아니고 흥미로운 프로그래밍 프로젝트도 아닙니다. 꽤 들리지만 다시는 안됩니다.
Brethlosze

1
동의하지 않습니다. 내 경험상 클라이언트가 제공하고 적극적으로 사용하는 내가 작성한 모든 프로그램에는 지원 요청, 개선 요청 및 물론 버그 수정이 있습니다. 이러한 소프트웨어가없는 유일한 소프트웨어는 소프트웨어를 배송 한 후에는 사용되지 않은 소프트웨어였습니다.
MadMike


즉, 이것은 제품, 장치를위한 것입니다. 소프트웨어에는 기술이 전혀 없지만 스마트 컨트롤러와 마찬가지로 변수가 처리되는 방식을 보호해야합니다. 당신은 그런 의미에서 개발을 오픈 소스로 만들려고하지 않습니다. 그것은 의문의 여지가 없으며 또 다른 종류의 일입니다. 어쩌면 당신은 회사에 있고 고객이 전화를 걸거나 실제로 상사에게 더 많은 비용을 청구하고 사후 판매 서비스를 제공 할 때 화가 나면 장기적으로 좋습니다. 어쨌든 오픈 소스는 이익이 아닌 인류에게 좋습니다.
Brethlosze

1
다시 말하지만 이것은 모든 이익을 위해 모든 일을 선물하거나 모든 일에 대해 모든 사람에게 비용을 청구한다는 주제입니다.
Brethlosze

1

내 몇 센트 :

  1. 직접 읽을 수있는 스크립트를 중심으로 솔루션을 만들지 마십시오.
  2. 여러 소프트웨어 / 프로세스 및 하드웨어 측면에서 고장 기능.
  3. 일부 읽기 하드웨어 "기능"종속성을 추가하십시오.
  4. 스마트 카드 리더를 추가하고 제품과 함께 "enabler"스마트 카드를 판매하십시오.
  5. 라이센스 서버를 가지고
  6. EEPROM에 사용 카운터가 있습니다 !!! 온라인으로 "충전"할 수있는 방법이 있어야합니다 .. ;-)

...


1

엔트리 레벨 보호로서 /sys/block/mmcblk0/device/일반적인 디스크 이미지 복제 소프트웨어에 의해 복제되지 않는 고유 한 SD 카드 ID 가 있습니다. 이것은 고유 ID를 보유하기 위해 별도의 장치를 필요로하지 않는 장점이 있으며 슈퍼 글루 후 제 2 보호 계층으로 잘 작동합니다. 최소한 SD 카드를 복제 할 수있는 사람들을 막을 수 있습니다.

ID를 사용한 보호와 관련된 또 다른 팁은 간단한 확인을 사용하지 않는 것입니다.

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

이와 같은 간단한 확인은 알려진 ID를 검색하거나에 대한 호출을 모니터링하여 쉽게 발견 exit()하고 제거 할 수 있습니다. 훨씬 더 좋은 방법은 ID를 계산에 상수로 포함시키는 것입니다. 즉, i++코드 어딘가에 대신 쓸 것입니다.

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

정확한 ID는 코드 그대로 ( 0xDEADBEEF + 1 == 0xDEADBEF0) 표시되지 않으며 모든 호출을 검사 exit()해도 보호 코드의 위치가 드러나지 않으므로 검색하기가 훨씬 어렵습니다 . 대신, 잘못된 ID를 가진 시스템에서 코드가 충돌하기 때문에 공격자는 문제를 이해하고 수정하기 위해 응용 프로그램의 논리를 디버깅해야합니다.


0

외부 구성 요소를 사용하면 보안 구성 요소가 해당 문제를 해결할 것입니다. 아이디어가 훌륭하고 추가 비용이 든다고 생각한다면 전문 MCU / CPU를 사용하는 것이 좋습니다. Broadcom BCM58101 시리즈와 마찬가지로 비용 효율적이며 새로운 사용자에게는 친숙하지 않지만 높은 보안 수준으로도 아이디어 / 디자인을 보호 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.