Linux의 보안 Java 코드

Linux의 보안 Java 코드

우리는 Linux Debian 배포판을 사용하여 마이크로컴퓨터에서 실행되는 애플리케이션을 개발했습니다. 애플리케이션은 Java로 작성되었으므로 실행 파일로 컴파일되지 않습니다. (즉, Java 파일을 쉽게 열어 코드를 볼 수 있음)

마이크로컴퓨터는 항상 셸에 내장되어 있지만 누군가 이 셸을 해독하면 외부 저장소를 훔치고 우리 애플리케이션(및 소스 코드)을 점유할 수 있습니다. 우리는 이러한 상황으로부터 애플리케이션을 보호하고 싶습니다.

몇 가지 조사를 했지만 내가 찾은 것은 코드를 난독화할 수 있다는 것뿐이었습니다. 사실 그것만으로는 충분하지 않기 때문에 저장 매체에 접근하는 누군가로부터 우리 코드를 보호할 수 있는 다른 (보다 안전한) 방법을 찾고 있습니다.

우리는 코드를 넣을 암호화된 폴더를 고려했지만 그것이 가능한지, 좋은 접근 방식인지는 확실하지 않습니다. 솔루션을 찾는 데 도움을 주거나 Linux에서 Java 코드를 보호하기 위한 모범 사례를 설명해 줄 수 있는 사람이 있습니까?

답변1

사람들이 코드를 실행하는 컴퓨터에 물리적으로 접근할 수 있는 경우 코드에 액세스할 수 있습니다. 사람들이 귀하의 코드에 액세스하는 것을 원하지 않으면 액세스 권한을 부여하지 마십시오.

설명하는 시나리오에서는 암호화 코드가 쓸모가 없습니다. 컴퓨터가 코드를 실행하려면 코드를 해독해야 합니다. 컴퓨터가 코드를 해독할 수 있다면 어딘가에 해독 키가 있어야 하며 물리적 접근 권한이 있는 사람은 누구나 코드를 해독할 수 있습니다.

컴퓨터가 물리적으로 보호되고 안전한 실행 환경을 제공하는 경우는 예외입니다.스마트 카드이러한 환경이 제공되고 가격도 상당히 저렴하지만 컴퓨팅 성능이 매우 제한적입니다. (큰 컴퓨터에 암호화 코드 키를 저장하는 데만 사용되는 스마트 카드는 스마트 카드가 아니라 더 큰 컴퓨터가 대상이 되기 때문에 도움이 되지 않습니다.)하드웨어 보안 모듈이러한 환경도 이용 가능하며 대략 저가형 PC만큼 강력하지만 가격이 매우 비쌉니다. 일부 컴퓨터에는 다음을 기반으로 보호된 환경이 있습니다.인텔 SGX또는ARM 트러스트 존"우연한" 물리적 공격에 대해서만 중간 수준의 보호를 제공합니다(케이스를 열되 칩을 깨려고 하지 마십시오).

그러나 실제로는 바이너리를 리버스 엔지니어링하는 데 드는 비용이 그리 사소하지 않으며, 소스 코드를 유지하는 데 드는 비용도 매우 높습니다. 애플리케이션이 유용한 경우 추가 보안 조치는 비즈니스 가치가 거의 없습니다. 실제로 판매하는 것은 지원입니다.

관련 정보