다 아는 내용이지만 걍 정리할 겸 올려본다.


이것저것 풀면서 시리즈물로 써보려고함 


안드로이드 기반에서는 "풀 디스크 암호화"는 항상 쉽게 풀 수 있다고 하는데.

그 이유를 알아보고 곁가지로 왜 번호나 패턴을 요구하는지도 알아보자.


틀리면 지적 ㄱ







1. 풀 디스크 암호화







풀 디스크 암호화는 너의 핸드폰에 이런 구조로 데이터가 저장된다. 

기기의 보안에 직결된 디바이스 키를 이용하여 스마트폰의 데이터를 암호화시키는 방식이지.



디바이스 키를 이용해야만 데이터에 접근할 수 있는 구조임. 


그런데 여기에는 심각한 맹점이 있는데,








기기 안에 암호 키를 보관하게 되므로 , (아무리 잘 숨겨도 결국 "디바이스 암호를 확인") 해야 하므로 필연적으로 스마트폰  메모리에 디바이스 암호가 존재할 수 밖에 없고, (디바이스에 종속된 암호화이므로) 결국 존재한다는건 어떤 형태로든 찾을 수 있다는 것이기 때문에 태생적인 한계를 지니고 있다.

대부분의 FDE 시스템은 이런 형식으로 암호에 상관없이 매우 빠르게 무력화된다.


 디바이스의 보안을 따라가기 때문에 "암호화는 키에 종속되어야 한다"를 정면으로 위반하기 때문이다.


관리자 권한 탈취를 이용한 해제 사례 






아무튼 여러모로 개쓰레기이므로 앵간해서는 FDE를 사용하지 말자

앵간해서는이 아니라 그냥 절대 쓰지마라.












이를 보완하기 위한 것이, 파일 기반 암호화인데.



파일 기반 암호화의 경우는 매우매우 간략하게 표현하자면 위와 같은 구조를 가지고 있다.

더이상 디바이스의 보안과 관련 없이 키만으로 데이터의 보안이 결정되는 제대로 된 구조이다.



이렇게 키를 쓰는 곳에 너의 "키"를 입력하고 나면 . 그 이후는 풀 디스크 암호화와 크게 다르지 않다.





여기서, 재부팅시나 기기가 잠기면 무조건 "키"를 요구하는 이유가 드러나는데,

"지문,홍채"는 언제나 같은 데이터를 보장하는 물건들이 아니므로, (쉽게 지문으로 예를 들자면 완벽하게 같은 각도로 완벽하게 입력되는 "데이터"가 아니라, 그저 "등록된 지문"의 유사성을 파악해서 이미 입력해준 "키"를 대신 입력해주는 방식)이므로


비활성화나 전원을 끄고 킨 이후에 항상 생체인식 대신 비밀번호를 요구하는 것이다. 






그러므로 얼마 전에 올라온 "생체 인식 강제"는 사실상 기술적으로 불가능함.

결국 "생체 인식"으로 "등록된 키"를 불러오는 구조인데

"등록된 키"를 우리가 키고 입력해야되니까.. 기기에 키를 저장해두면 되지 않냐고?...

그게 풀 디스크 암호화고 구글에서 안드 10부터 퇴출된거다... 하여간 먹물 병신들 ..




말이 딴데로 새었는데

결국 "AFU 상태에서는 매우 보안이 취약해진다"라고 접근하면 된다.


이렇게 일단 키를 니가 "입력하고"나면,  어디서 많이 본 그림일텐데





바로 위에서 설명한 "풀 디스크 암호화"와 비슷한 딜레마를 공유하게 된다.

한번 키가 입력되면 , 결국 이녀석도 키가 스마트폰 속에 남게 된다. 그러니까 폰을 켜서 내면

사실상 안드9 스마트폰을 낸 것과 다름없는 상태가 된다.





물론 최신 폰들은 이에 대한 접근을 막는 보안 프로세서나, 트러스트존, 녹스 볼트등의 방지책이 존재하지만(굳이 암호 키 보관이 아니더라도)

아무리 "홈쳐갈 물건"을 잘 감시하고 철통처럼 막는다고 해도









홈쳐갈 물건이 존재하지 않는거보다 안전할까?



결국엔 기기를 BFU 상태로 유지해야만이 최강의 보안을 유지해 줄 수 있다 .











번외: 암호 키 별 경우의 수


3x3 패턴 : 389,112개.


핀 번호 

4자리 : 10,000개

6자리 :1,000,000개

10자리 :10,000,000,000개

12자리: 1,000,000,000,000개







비밀번호(숫자,대소문자,특문 10개 포함) 


본격적으로 암호 해독을 위해 초당 3000번의 암호를 무작위 대입으로 입력하는  오버스펙 암호해독기 사용,

(셀레브레이트의 "AFU"기준 대입 속도)

참고로 무차별 대입은 시간에 대해선 거의 완벽하게 병렬화가 가능하다(X배의 자원을 들이면 1/X로 시간이 줄어듬)

당연한 소리인가 싶지만 실제로 이렇게 정직하게 줄어드는 작업은 거의 없음





6자리 : 98,867,482,624개

약 9,154시간. 381일

LA테러 혐의로 암호해독기 9개를 추가 구입하여 38일만에 해제



12자리: 9,774,779,120,406,942,000,000

("해독 불가능, 소위 말하는 안,전빵"의 범주에 드는 단계)

905,072,140,778,420 시간. 

약 37,711,339,199,100일

지구연방 내란 혐의로 암호해독기 1,000,000,000개를 추가 구입하여도 

37,711일 후에 해제.



16자리: 208,998,227,690,370,100,000,000,000,000개

(안드로이드 기본 암호 최대 길이)

 22090967750 억 년 후에 해제. 

오리온 성운 웜홀 테러 혐의로 암호해독기 100억개를 추가 구입해도 22090967년 소모



20자리: 4,468,669,689,581,414,600,000,000,000,000,000,000 

(한동훈의 자리 수)

472335287669268412 억년 후에 해제. 암호해독기 1000조개를 추가 구입해도 4723352876 년 소모




한동훈 아이폰 번호를 풀려는 노력이 없었으니 수사 의지가 없다고 비난하던데

실제로는 풀려고 노력하는것이야말로 수사 의지가 없었음을 확인한 시간이였다. 















결론 :  

비밀번호는 닥치고 길이가 깡패다

풀 디스크 암호화는 허벌창

AFU(After First Unlock)는 허벌창이므로 제출할땐 폰 끄고 내라


원글: https://gall.dcinside.com/mgallery/board/view/?id=vpngate&no=19256

이전글: https://arca.live/b/96privacy/81277605
관련글 더보기: https://arca.live/b/96privacy/71217975 - 간단하게 key disclosure에 대해 알아보자