내 봇 코드를 어떻게 보호하나요?

내 봇 코드를 어떻게 보호하나요?

저는 소형 컴퓨터(예: Raspberry-Pi)와 Linux 운영 체제를 사용하여 로봇을 만들고 싶습니다. 내 생각에 이러한 보드(RPi, NanoPi 등)에는 OS를 부팅하기 위한 외부 SD 카드가 있고 내 코드가 거기(SD 카드에) 배치될 것입니다. 그렇다면 다른 사람이 내 코드를 복사하지 못하도록 어떻게 보호할 수 있나요?

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

특정 보드에 대해 각 SD 카드를 지정하는 방법이 있습니까? 내 말은 SD 카드 nom.1이 nom.1 보드에서만 실행될 수 있다는 뜻입니다.

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

답변1

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

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

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

답변2

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

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

덜 실용적이지만 구현하기 쉬운 방법은 2개의 SD 카드를 사용하는 것입니다. 그 중 하나에는 시스템을 부팅하는 데 필요한 키가 포함되어 있으며 부팅을 계속하려면 sd카드를 교체할 때까지 기다립니다.

넌 어떻게 하는지 봐야 해파일 시스템 초기화전체 시스템을 시작하는 데 사용됩니다. 생성하는 방법을 살펴봐야 합니다.사용자 정의 initramfs, 메인 시스템에서 두 번째 카드 설치를 기다리고 암호를 해독하도록 init 스크립트를 수정할 수 있습니다.

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

initramfs 솔루션일 필요도 없습니다. 실행 코드를 일부 USB 드라이브에서 램디스크로 복사하여 생성을 시작하고 활성화되기 시작하면 삭제되는 솔루션을 사용할 수 있습니다.

매체에 비밀과 키(영리한 트릭, 숨겨진 것 등)가 있으면 리버스 엔지니어링할 수 있습니다.

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

관련 정보