마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱 내 정보의 암호화 필요성

0 추천

우선, (다른 부분도 그렇지만) 암호화/난독화 관련 부분의 초보라 잘못된 지식을 기반으로 이야기 할 수 있다는 점을 생각해주시고 다음 질문을 읽어주시길 바랍니다.

프로가드를 이용해 소스코드의 난독화까지는 적당히 처리했으나 릴리즈 버전으로 빌드한 저의 앱을 APKTool로 까보니 리소스는 적나라하게 다 볼 수 있더군요. 제가 만든 앱은 사용자의 개인 정보는 취급하지 않으므로 유출되었을 때 그나마 찝찝할 것 같은 정보는 다음 두 가지 정도가 될 것 같은데요.

1. Asset에 포함된 DB

2. 애드몹의 App ID, Ad ID

1번의 경우 어차피 인터넷에서 다 찾아볼 수 있는 정보들을 정리하여 속도를 위해 로컬에 둔 것 뿐이라 크리티컬한 부분은 아닌 것 같고, 2번의 경우 광고 구현을 배우는 과정에서 제시된 예제에서부터 Strings.xml 리소스에 두는 경우를 많이 봐서 그런지 유출되었을 때 별 문제가 없는 게 아닐까 하는 생각이 듭니다. 어떠한 파장이 일어날 지 경험이 없는 저로선 상상하기 힘드네요.

과연 위 두 가지 정보가 암호화가 필요한 부분인지 궁금합니다. 암호화하더라도 (제가 이해한 바로는) 복호화 키를 클라이언트 소스코드에 숨겨 놓는 것 같은데, 그렇게 한들 초보인 저도 쉽게 찾을 수 있을 것 같아 무슨 소용인가 싶기도 합니다.

pigstoe (510 포인트) 님이 2023년 11월 23일 질문
pigstoe님이 2023년 11월 23일 수정

2개의 답변

+1 추천
 
채택된 답변

애드몹의 App ID, Ad ID 가 만드신 앱에 광고가 얼마나 뿌려졌는지 집계의 기준이 될 것입니다.

해커라면 저것을 탈취하여도 얻는 이득이 없습니다. 

저 정보에 자신의 광고를 뿌린다? 만드신 앱의 매출을 도와주겠죠.

추가적으로 애드몹에들어가 App ID, Ad ID에 대한 정보를 해킹한다? 모두 해커에게 실익이 없습니다.

보통 예제는 그 방법이 크리티컬하게 보안에 위배되지 않기때문에 가이드 합니다.

너무 걱정하지 마시고 개발진행하시면 될 거 같습니다~

1번은 글쓰이분도 생각햇듯이 별문제가 안될겁니다. 혹시 직접 저작권을 가진 컨텐츠가 있다면...
유출되는건 어쩔 수 없고 저작권을 보호하려면 라이센스 등록 같은걸 해야겠죠. 

( 영세한 업체는 당연히 불가하고요. 대기업이라고해도 서비스가 성공할때까지 굳이 비용을 지불하진 않을거 같네요. )

minukobba (880 포인트) 님이 2023년 11월 23일 답변
pigstoe님이 2023년 11월 23일 채택됨
일각에서는 광고 계정에 대한 부정클릭 상황을 만들어 해커가 공격할 경우를 우려 하더군요. 답변주신 내용과 다른 여러 검색 결과들을 보니 "App ID, Ad ID는 굳이 암호화가 필요없다." 가 대세로 느껴집니다. 부정클릭은 구글이 알아서 잘 판단하리라 믿고, 난독화 정도에만 신경써서 마켓에 올려봐야겠네요. 답변 감사합니다.^^
+1 추천
보안에 신경쓰셔야하는 부분은 대표적인 경우가 로그인 같은 사용자 정보가 있는 경우나 서버에서 사용하는 키값 같은 것들입니다. DB의 경우는 암호화가 필요하지 않은 데이터만 사용하면 상관은 없을 것 같은데 추후 혹시나 암호호가 필요하다고 판단되시면 SQLCipher같은 라이브러리를 사용하시면 됩니다. 다른 암호화는 Android KeyStore를 이용해서 처리하시면 되구요. 그리고 빌드설정을 통해 필요하시면 리소스를 minify하실 수도 있습니다. proguard 설정을 통해 난독화 수위를 조절하실 수도 있구요.
spark (227,530 포인트) 님이 2023년 11월 23일 답변
spark님이 2023년 11월 23일 수정
적어뒀다가 추가적으로 보안이 필요한 부분에서 공부해봐야겠네요. 좋은 정보 감사합니다.^^
...