파이썬 코드를 보호하는 방법


저는 지금 고객들에게 배포될 소프트웨어를 파이썬으로 개발하고 있습니다. 사장님은 시간제 라이센스를 걸어 소프트웨어의 사용을 제한하고 싶어하네요.

문제는 만약 .py 혹은 .pyc 파일을 배포하게 되면 (디컴파일하거나) 고객이 라이센스를 확인하는 코드를 지워버릴 수가 있다는 겁니다.

사장님 또한 고객이 코드를 읽을 수 있으면 코드를 베껴갈 수 있다는 걱정 때문에 코드가 고객에게 공개되지 않기를 바라고 있습니다.

어떻게 하면 이 문제를 해결할 수 있을까요? 되도록이면 규격화된 해결법이면 좋을 것 같습니다.

참고로 소프트웨어는 리눅스 시스템 기반에서 작동할 예정입니다. (그래서 py2exe는 해결방법이 되지 못할 것 같네요.)

  • 2016년 06월 13일에 작성됨

조회수 135


1 답변


좋아요
0
싫어요
채택취소하기

바이트 코드로 컴파일된 인터프리팅 언어인 파이썬의 코드를 보호하는 것은 꽤 어려운 일입니다. py2exe와 같은 exe 패키징 툴을 사용하더라도, 실행파일의 구조가 꽤 알려져 있고, 파이썬의 바이트 코드는 가독성이 좋은 편이기 때문이죠.

이러한 경우에는 어느정도의 타협이 필요합니다. 과연 그 코드가 얼마나 보호받을 가치가 있는지, 정말 숨겨야할만한 내용 (이를테면 은행 거래에 사용될 암호화의 키값과 같은 수준의 것)이 있는지, 아니면 그저 너무 과잉 보호하려는 것은 아닌지 등을 고려할 필요가 있습니다. 최고의 상품을 최대한 빨리 개발할 수 있게끔 해줄 언어를 선택하고, 아이디어가 얼마나 가치있는지를 현실적으로 바라볼 필요가 있습니다.

만약 라이센스 확인이 안전하게 이루어질 필요가 있다고 정말로 생각하신다면, 기본적인 코드는 파이썬으로 놔둔채, 라이센스 확인에 관한 코드만 작은 크기의 C 확장으로 작성함으로써 리버스 엔지니어링을 굉장히 어렵게 만들 수 있습니다. (물론 불가능한 것은 아닙니다!)

  • 2016년 06월 14일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close