내 로봇 코드를 어떻게 보호할 수 있나요?

내 로봇 코드를 어떻게 보호할 수 있나요?

Raspberry-Pi와 같은 미니 컴퓨터를 사용하고 Linux OS를 사용하여 로봇을 만들고 싶습니다. 내 생각에 해당 보드(RPi, NanoPi 등)에는 OS를 부팅할 외부 SD 카드가 있고 내 코드는 거기(SD 카드)에 저장됩니다. 그렇다면 내 코드를 복사하려는 사람으로부터 코드를 보호하려면 어떻게 해야 할까요?

내 코드에서는 CMUsphinx, Opencv 등을 사용하여 작성된 프로그램을 의미합니다.

어쨌든 하나의 지정된 보드에 대해 각 SD 카드를 지정할 수 있습니까? 즉, SD 카드 no.1은 보드 no.1에서만 실행됩니다.

아니면 하나의 알고리즘을 사용하고 실행하려면 일치해야 하는 숨겨진 코드를 보드와 SD 카드에 넣을 수도 있습니다.

답변1

장치에 물리적으로 접근할 수 있는 사람이 코드를 복사하는 것을 방지할 수 없습니다. 보드가 귀하의 코드를 읽을 수 있다면 다른 사람도 읽을 수 있습니다.

코드 복사를 방지하려면 변조 방지 저장소가 있는 장치를 사용해야 합니다. 이러한 하드웨어가 존재하지만 가격 범위가 더 높습니다.

코드에 테스트를 추가하여 일부 하드웨어 식별자를 확인하고 다른 하드웨어 장치에서 실행 중인 경우 시작을 거부할 수 있습니다. 이로 인해 실행이 불가능해집니다.정확한직접 복사할 수 있지만 코드를 변경하여 검사를 우회하거나 코드에 예상되는 하드웨어 식별을 제공하는 가상화된 환경에서 실행하는 것은 여전히 ​​쉽습니다. 기본적으로 이는 정직한 사람들을 정직하게 유지하는 방법이지만 코드를 복사하려는 사람을 단념하지는 않습니다.

답변2

데이터를 보호하려면 물리적으로 보호하고 제어할 수 있으며 비밀 데이터와 별도로 분리할 수 있는 모든 종류의 키가 있어야 합니다. 두뇌 속 비밀번호는 그러한 솔루션의 예입니다. 비밀번호는 소유자가 암기하여 물리적으로 보호합니다.

암호로는 소프트웨어를 해독하고 해당 방식으로 실행할 수 있는 바코드가 있는 종이 조각과 같이 슈퍼 로봇에 대한 시각적 토큰이 있을 수 있습니다. 물론 openvc와 스크립트의 도움으로 생성을 종료하는 데 동일한 종이가 사용될 수 있으므로 고려해 볼 가치가 있습니다.

덜 실용적이지만 구현하기 쉬운 방법은 2개의 SD 카드를 갖는 것입니다. 하나는 키를 포함하고 시스템을 부팅하는 데 사용되며 sd카드를 변경할 때까지 기다린 후 계속 부팅됩니다.

당신은 방법을 조사해야합니다initramfs전체 시스템을 부팅하는 데 사용됩니다. 만드는 방법을 살펴 봐야합니다.사용자 정의 initramfs, 메인 시스템에 두 번째 카드 마운트를 대기하고 해독하기 위한 초기화 스크립트를 수정할 수 있습니다.

시스템은 완벽하지는 않지만 더럽고 저렴합니다.

또한 initramfs 솔루션일 필요는 없습니다. 일부 USB 드라이브에서 실행 코드를 램디스크로 복사하는 것과 같은 솔루션을 사용할 수도 있습니다. 이 USB 드라이브는 생성을 시작할 목적으로만 삽입하고 활성화되기 시작하면 제거합니다.

하나의 미디어에 비밀과 키가 있으면(영리한 트릭, 숨겨진 것 등) 리버스엔지니어링이 가능합니다.

나로서는 initramfs 솔루션을 만드는 데 더 적은 노력이 필요하고 사용자 정의 initramfs를 만드는 방법에 대한 많은 정보가 필요합니다.

관련 정보