안드로이드 기기 안전하게 지우기

!
경고: 이 글이 작성된 지 365일이 넘었습니다. 글의 정보가 오래되어 부정확할 수 있습니다.

이 글은 2021년 1월 26일에 수정되었습니다. (awipe 프로젝트 정보 추가)


오래된 안드로이드 기기를 중고시장에 판매할 때 개인정보가 유출되지 않도록 기기를 지워야 됩니다. 만약 기기의 플래시 펌웨어가 제대로 작성되어 있다면, 리커버리에서 데이터 파티션을 포맷할 때 정보가 완전히 지워지도록 되어 있습니다. 하지만 모든 기기의 펌웨어가 이렇게 작동한다고 보장할 수 없기에 다른 방식으로 기기를 지워야 합니다.

문제는, 인터넷에 나와있는 대부분의 글들이 서로 상충합니다. 어떤 분들은 그냥 리커버리에서 공장 초기화를 진행하면 충분하다고 하지만, 어떤 분들은 초기화 전 기기를 암호화해야 기기의 비어있는 공간까지 전부 암호화되어 지워지기 때문에 암호화해서 기기를 지워야 한다고 합니다. 거기에다가 데이터가 특히 중요한 정보라면, 기기 파괴밖에 답이 없다고 하네요.

누가 맞고 틀린지 모르는 상황에서, 안드로이드 기기를 초기화시키는 방법을 가장 편집적인 순위로 나열해봤습니다!

1 - 그냥 지우기

만약 기기가 최근에 출시된 기기고, 공장에서 암호화되어 출고되었다면 그냥 지우셔도 충분합니다.

안드로이드 10을 달고 나오는 기기는 FBE (file-based encryption, 각 파일 암호화 방식)를 지원해야 하기에 이렇게 초기화하면 암호화된 데이터만 남기에 개인정보가 파기됩니다.

만약 기기가 FBE로 암호화되어 있는지 확인하고 싶다면 다음 프롭 (prop)을 확인합니다. ro.crypto.statero.crypto.typefile로 설정되어 있어야 합니다.

2 - 암호화하고 지우기

만약 기기가 최근 몇 년 안에 출시된 기기고 FDE (full-disk encryption, 전체 디스크 암호화 방식)을 지원한다면 암호화하고 지우시면 됩니다.

만약 기기가 FDE로 암호화되어 있는지 확인하고 싶다면 다음 프롭 (prop)을 확인합니다: ro.crypt.state.

3.1 - dd

원본 레딧 글

위에 링크된 글을 읽으면서, 거의 대부분의 안드로이드 기기가 Busybox와 함께 출고된다는 것을 기억했습니다. 이렇게 딸려 오는 Busybox에는 dd라는 유틸리티가 포함되어 있는데, 이 툴을 사용해서 데이터 복구를 막을 수 있습니다.

기기의 모든 블록을 지우기 위해 시스템의 랜덤 데이터 스트림과 dd 유틸리티로 랜덤 파일을 만듭니다:

adb shell
cat /dev/urandom > random_file

만약 원글 게시자처럼 편집증이 심하시다면 여러 번 돌리셔도 됩니다:

for i in 0 1 2 3 4 5 6 7 8 9; do cat /dev/urandom > $i; rm $i; done

사실, 이렇게 많이 돌리는 건 쓸데없는 것 같습니다. 플래시 저장소는 일정한 쓰기 사이클 (write cycle) 수를 초과하면 고장날 수 있고, 플래시 저장소의 여분 셀에서 데이터를 복구하는 것도 확률이 매우 낮은 걸로 알고 있습니다.

3.2 - 앱 사용

위에 있는 유틸리티를 사용하기 쉽게 어플로 한번 제작해봤습니다.

플레이 스토어에 가면 이렇게 랜덤 데이터를 가지고 똑같이 메모리를 덮어쓰기하는 어플이 많이 있는데, 전 소스 코드가 공개되어 있지 않아 그렇게 믿을 수가 없어 그냥 직접 만들었습니다.

어플의 이름은 awipe이고, 작동 방식은 위에 있는 dd 툴처럼 랜덤 데이터를 가지고 내부 저장소에 기록합니다.

다른 어플이나 지우기 방식보다 이 어플이 좋은 이유는:

  • USB 디버깅을 활성화할 필요가 없습니다.
  • 컴퓨터 없이 지우기가 가능합니다.
  • OTG와 USB로 어플 설치가 가능해서, 플레이 스토어에 구글 계정으로 로그인할 필요가 없습니다. 그냥 .apk 파일을 다운받아 한번 돌리고 공장 초기화를 진행하면 기기에 남는 개인정보가 없습니다.
  • dd 툴과는 다르게 진행 상황을 보여줍니다.
  • 오픈 소스 어플입니다!
  • dd 툴의 사용 커맨드를 안 외워도 됩니다.
  • 기기 상에서 동작하기에 별도 특별한 장비가 필요하지 않습니다.

4 - 물리적 파괴

만약 진짜 중요한 정보가 저장되어 있는 기기고, 중고장터에 팔 필요가 없다면 그냥 물리적으로 기기를 파괴해도 됩니다.

만약 기기를 분해할 수 있고 다른 부품은 재활용하고 싶으시다면 보드상의 플래시 칩만 파괴하면 됩니다. iFixit이나 유튜브의 분해영상을 보고 칩이 어디 있는지 확인해서 드릴로 구멍을 박으면 복구가 엄청 어려워집니다. 아니면, 배터리를 분리해서 버린 다음 기기만 불로 태워버리면 됩니다. (물론, 한국에선 개인 소각이 불법이지만, 영문 버전에서 나온 방법이기 때문에 여기에 간략하게 적습니다.)

댓글