RPI 4의 Debian에서 코드 실행 시간 제한은 30일입니다.

RPI 4의 Debian에서 코드 실행 시간 제한은 30일입니다.

RPI4를 고객에게 평가판으로 전달해야 하는데 코드 실행을 100회로 제한하거나 30일(특정 날짜) 후에 시작되지 않도록 시간 제한을 설정하고 싶습니다. RPI에 I2C-RTC DS3231을 설치했습니다.

확인했지만 crontab날짜 이후 실행을 제한하는 데 사용할 수 있는지 잘 모르겠습니다.

몇 가지 메모

  • 사용자는 Pi에 액세스할 수 없습니다. Pi가 부팅되면 코드가 실행되기 시작합니다.
  • 이 응용 프로그램에는 인터넷 접속이 필요하지 않으며 주변에서 인터넷을 사용할 수 없습니다.

최종 사용자가 특정 날짜 이후에 실행할 수 있는 횟수와 실행할 수 없는 횟수를 제한하는 방법이 있습니까?

답변1

귀하가 묻는 질문은 UNIX/Linux에만 국한된 것이 아니라 귀하의 응용 프로그램에만 해당됩니다. 이 애플리케이션은 턴키 시스템의 일부로 제공되므로 유연성이 뛰어납니다.

쉽지 않은 것은 언급하지 않은 Pi 관련 문제를 처리하는 방법입니다. SD 카드에 액세스할 수 있는 경우 누군가가 시스템의 모든 파일에 대해 승인되지 않은 변경을 수행할 수 있습니다. 여기에는 루트에 해당하는 계정 추가, 네트워크 액세스 활성화, 평가 시간 초과 코드 우회 등이 포함됩니다.

이 문제를 해결하려면 SD 카드를 제거할 수 없도록(접착!) 하거나, 모호함을 통해 보안을 구현하거나, 일종의 암호화/암호 해독/토큰화 서비스를 제공하기 위해 Pi에 추가 패키지를 추가해야 합니다.

또한 라이센스 기간을 원격으로 연장하는 방법도 고려하십시오. 특히 장치에 네트워크 액세스가 없는 경우 더욱 그렇습니다. 여기서 해결책을 제안하지는 않지만 새 라이센스 파일을 업로드할 수 있는 응용 프로그램의 특수 메뉴 옵션일 수 있습니다.

먼저 고객에게 사용 횟수를 100회 또는 한 달로 제한하는 계약에 서명하도록 하세요.

그런 다음 기술적인 솔루션을 살펴보세요. 예를 들어 애플리케이션에 라이센스 파일을 구현합니다.

변조를 방지하기 위해 초기 패키지의 일부로 해당 라이센스 파일에 다음을 포함하는 것을 고려합니다.

  • 종료 날짜는 파일에서 가능한 최대 값으로 설정되어야 합니다(예: 3개월 전).
  • 파일에 실행 중인 카운터가 있어야 합니다:= 0
  • 이 두 값에 대한 파일에는 "비밀 해시"가 있어야 합니다. 이러한 "비밀 해시"에는 애플리케이션에만 알려진 비밀이 포함되어야 합니다.

애플리케이션이 시작되면 해당 규칙은 다음과 같습니다.

  • 파일이 없으면 실행하지 마세요
  • 파일에 잘못된 데이터(날짜/카운터 값 및 "비밀 해시" 불일치 포함)가 포함된 경우 실행하지 마세요.
  • 파일에 유효한 데이터가 포함되어 있지만 만료 날짜나 실행 횟수를 초과한 경우 실행하지 마세요.
  • 실행 카운터가 0이면 만료 날짜를 오늘부터 1개월로 설정합니다.
  • 러닝 카운터 늘리기
  • "비밀 해시" 업데이트

답변2

이 특정 문제에 대한 몇 가지 해결책이 있습니다. 이 문제를 해결하는 가장 우아한 방법은 애플리케이션에서 스크립트를 만드는 것입니다. 이 스크립트는 무슨 일이 있어도 실제 프로그램/코드를 실행합니다.

SQL 데이터베이스 또는 유사한 데이터베이스에 모든 날짜(현재 날짜 및 프로그램 실행 날짜)를 기록할 수 있습니다. 항목이 100개를 초과하거나 처음 실행 후 30일이 넘은 경우 여기에서 확인을 생성할 수 있습니다. 고객이 활성화 키를 입력해야 하거나 다시 잠금을 해제하기 위해 생성한 항목을 입력해야 하는 오류 메시지를 생성할 수 있습니다.

이것이 가장 기업적인 접근 방식이 될 것입니다. 그리고 이 코드는 재사용이 가능합니다.

건배

관련 정보