2012년 5월 10일 목요일

[In-app Billing_2]In-app Billing 보안 및 설계

 # 보안과 사용자 애플리케이션 디자인을 살펴보자

@ Security Best Practices

 1. 사인(signature)의 식별 작업을 서비스 서버에서 한다. 

- 이는 애플리케이션 디컴파일 되어서 해킹이 될 위험으로 벗어나게 해준다. 이를 위한 전제는 서비스 서버를 두고 이를 위한 통신 모듈(보안)이 개발되어야 한다.

 2. 잠금 해제된 컨텐츠를 보호해야 한다. 

- 결제를 통해 획득한 컨텐츠가 유포되지 않도록 보호 해야 한다. real-time 서비스를 이용하면 매번 컨텐츠 구매 여부를 확인 할수있다. 그리고 서비스 서버가 존재하면 매번 컨텐츠를 가져다 줄수 있다. 만약 컨텐츠가 가져와서 저장될 수 있다면 이 역시 암호화 해야 한다.

3. 소스 코드를 암호화 한다. 

- 예를 들어 안드로이드에서 제공하는 프로가드를 통해 코드를 암호화할 수 있다.
# 프로가드로 암호화 할시에는 아래 명령어를 써서 IPC 패키지는 유지하도록 한다.
  ==> keep class com.android.vending.billing.**

 4. 샘플 코드를 수정해서 사용한다. 

 - 샘플 코드를 그래도 사용한다면 이를 알고 있는 해커에게 쉽게 해킹이 될 수 있다.

 5. 보안 nonces를 랜덤하게 생성해서 사용한다.

 - nonces가 예상되어 지거나 계속적으로 하나만 사용하면 해킹의 대상이 될수 있다. 항상 암호화된 랜덤 숫자를 생성해서 사용한다.
 - 서버에서 nonce를 생성하는 것도 괜찮은 방법이다.


 6. 컨텐츠와 저작권 도용에 대해 구글 플레이에 신고를 한다.


 7. 구글 플레이 공개 키를 암호화해서 노출 되지 않도록 한다. 

- 소스 코드에 그대로 박으면 안된다.






댓글 없음:

댓글 쓰기