유니티 어드밴스드 보안 적용하기

 

어드밴스드 보안 적용을 통해 코드를 암호화 하실 수 있습니다. 

1. 요구사항

AppSealing 튜토리얼 진행을 위해 다음과 같은 프로그램이 설치되었는지 확인해 주세요.

  • Unity 설치: 버전 4.0 이상
  • Android SDK 설치: API 8 ~ 최신 / Android SDK build-tools revision 19.1 이상
  • JAVA JDK
  • AppSealing Unity Extension 설치

2. 환경 구축

2.1 권장 사항

샘플 프로젝트를 이용하여 AppSealing을 먼저 적용해 보고 실제 프로젝트에 적용 할 것을 권장 합니다.

 

2.2 프로젝트 Import 하기

① 유니티 실행
② ‘Open’ 버튼 클릭
③ 프로젝트 폴더를 선택 해서 유니티에 Import 완료.
④ Import가 완료되면 Assets가 생성.

 

2.3 AppSealing Unity Extension 설치

① Unity Extension을 다운받습니다.

다운로드 링크: AppSealing Unity Extension

② Unity Extension을 설치.
경로: ‘Assets’ 메뉴 > ‘Import Package’ > ‘Custom Package’ 클릭
③ 다운로드 받은 폴더 경로를 찾으셔서 열기.
④ ‘Import’ 버튼을 클릭
⑤ 완료되면 상단 메뉴에 ‘AppSealing’ 메뉴가 생성.

 

3. AppSealing 태그 적용

3.1 AppSealing 시작하기

① Create AppSealing Attribute Class’ 클릭. (Fig. 1)
경로: ‘AppSealing’ 메뉴 > ‘Create Attribute Class’ 클릭

‘Assets’ 폴더에 다음의 폴더들이 생성 됩니다 :
- Assets/AppSealing
- Assets/Editor/AppSealing/


(Fig. 1)

② AppSealing 적용 가이드가 자동으로 열립니다. (Fig. 2)
③ 다음 단계 진행하기에 앞서 한글 가이드를 먼저 읽어 보는 것을 권장 합니다.


(Fig. 2)

3.2 AppSealing 태그 추가하기

보호해야 하는 코드에 AppSealing 태그를 추가(Attribute 선언)하면 됩니다. 본 튜토리얼에서는 태그 추가를 Attribute 선언을 한다는 뜻입니다. AppSealing에서 제공하는 태그는 총 3종류가 있습니다. 다음 단계에서는 각 태그를 상황에 따라 어떻게 추가하는지에 대해 설명 하겠습니다.

3.2.1 Class 보호

① [AppSealingSecurityClass] attribute를 보호를 하고 싶은 class에 선언하세요. Class 전체 보호를 위한 태그. (Fig. 3)에서  attribute 선언 예제를 보실 수 있습니다. 


(Fig. 3)

3.2.2 Method 보호

① [AppSealingSecurityMethod] attribute를 보호를 하고 싶은 method에 선언하세요. Class 보호가 아닌 특정 method만을 보호하기 위한 태그. Class 태그를 사용했을 경우 method 태그를 사용은 불필요. (Fig. 4)에서 attribute 선언 예제를 보실 수 있습니다.


(Fig. 4)

3.2.3 특정 method를 보호에서 제외

① [AppSealingSecurityNotApply] attribute를 보호를 제외 해야 하는 method에 선언하세요. 퍼포먼스를 고려해서 암호화가 불필요한 method에 적용. (Fig. 5)에서 attribute 선언 예제를 보실 수 있습니다.


(Fig. 5)

3.3 중요 가이드라인

  • 보안 기능의 정상적인 동작을 위해 반드시 게임의 첫번째 Scene의 Awake (또는 Start) method에 attribute를 선언.
  • C# 이름 난독화가 적용된 APK에 실링을 적용할 경우 실행 시 문제가 발생 할 수 있습니다.
  • Assembly-CSharp.dll이 암호화 돼 있을 경우 실링 과정을 진행하지 못 합니다.
  • 아래와 같은 method는 실링 단계에서 코드 암호화가 적용되지 않으므로 중요한 코드는 별도의 method로 옮긴 후 호출.
    • Coroutine method
    • 익명 method 및 람다식
    • lock 또는 System.Threading.Monitor를 사용하는 method
    • abstract class
  • Class attribute를 사용할 경우 Inner class에는 attribute가 적용되지 않습니다. Inner class의 method를 보호하기 위해서는 해당 Inner class에도 추가로 attribute를 적용.
  • 최적화 된 앱 실행 성능을 위해 다음과 같은 method들은 보호 대상에서 제외:
    • Scene의 Update method 및 Update에서 호출하는 다른 method
    • 서드 파티 라이브러리의 method (예. 구글 플레이 로그인, 페이스북, 트위터 등등...)
    • 실행 시 짧은 시간 내에 지속적으로 호출 되는 method

NOTE: 태그 추가가 끝나면 게임이 유니티에서 동작을 해야 합니다. 게임이 실행이 되지 않는다면 태그가 올바르게 추가 됐는지 또는 게임 로직상에 문제가 없는지 확인하고 실링을 하시기 바랍니다.

① 유니티 에디터 상단에 있는 재생 버튼을 클릭. (Fig. 6)
② 게임이 정상 실행 되면 다음 단계를 진행.


(Fig. 6)

3.4 APK 파일 빌드

① 유니티 APK 빌드 기능을 이용해서 APK 빌드.
경로: Ctrl+Shift+B 또는 ‘File’ > ‘Build Settings…’ 클릭
② ‘Build’ 버튼 클릭
③ APK 파일명과 저장 경로를 설정.
④ APK 파일이 생성 완료.

 

4. APK 실링

APK 실링을 완료해야 보안 모듈이 활성화 됩니다. APK를 개발자 콘솔 사이트에 업로드 해주시기 바랍니다.

실링 튜토리얼 링크 : 실링 튜토리얼

이 문서가 도움이 되었습니까?
1명 중 1명이 유용하다고 평가하였습니다.
또 다른 질문이 있으십니까? 문의 등록
comment section

0 댓글

이 문서에는 댓글을 달 수 없습니다.