Android에서 개발 한 것을 따라 다니는 경우 지난 몇 년 동안 "Verified Boot"라는 이름을 들었을 것입니다. Google은 Android 4.4 (Kitkat)의 보안 기능을 철저히 비 침입적 방식으로 도입했으며 최신 안드로이드 운영체제에 대한 가시성이 서서히 증가하고 있습니다.
지난 며칠 동안 Google은 세계에서 가장 많이 사용되는 모바일 OS 인 Google의 최신 반복에서 " 엄격하게 검증 된 부팅 (Strictly Enified Verified Boot) "에 대한 뉴스를 보았습니다. Android Nougat는 기기 부팅시 높은 수준의 보안 검사를 사용합니다. Marshmallow에서 Verified Boot는 사용자에게 시스템 파티션과 관련된 문제를 발견했을 경우를 대비하여 경고를 한 후 Android Nougat이 한 걸음 더 나아가서 Google이 "Strictly Enified Verified Boot"라고 부르는 것을 사용합니다. 파티션의 이상 현상, 부트 로더의 변경 사항 또는 장치의 "악의적 인"코드의 존재 여부를 감지하여 장치가 전혀 부팅되지 않도록하십시오. 이것은 "사용자에게 정확히 의미하는 것은 무엇입니까?"라는 질문에 대답합니다. 대답은 안드로이드 사용자 (캐주얼 사용자 및 파워 사용자)의 두 가지 주요 범주에 따라 다르며 두 가지 모두에 대한 답을 제공 할 것입니다 .
엄밀히 검증 된 부팅
첫째, 검증 된 부팅에 대한 약간의 배경 : 일반적으로 Android에서 파티션에 대한 확인 테스트를 실행하는 경우 파티션을 4KiB 블록으로 나누고 서명 된 테이블과 비교하여 확인합니다. 모든 것이 확인되면 시스템이 완전히 깨끗하다는 뜻입니다. 그러나 일부 블록이 훼손되거나 손상된 경우 Android는 사용자에게 문제를 알리고 문제를 해결할 사용자에게 남겨 둡니다.
Android Nougat 및 Strictly Enforced Verified Boot로 모두 변경하려고합니다. 검증 된 부팅이 강제 모드에서 실행되면 파티션의 모든 오류 를 허용하지 않습니다 . 문제를 발견 하면 장치를 부팅 할 수 없으며 사용자가 안전 모드 환경 으로 부팅하여 문제를 해결할 수 있습니다. 그러나 Strictly Enified Verified Boot는 불량 데이터 블록에 대한 검사가 아닙니다. 일반적으로 데이터 블록의 오류도 수정할 수 있습니다. 이는 데이터 블록의 오류를 수정하는 데 사용할 수있는 오류 정정 코드가 있음으로써 가능합니다. 그러나 이것이 항상 작동 할 수는 없으며 그렇지 않은 경우 물속에서 거의 죽어 있습니다.
엄밀히 시행 된 검증 된 부팅 : 좋음, 나쁨 및 추악한
1. 좋은
Android 기기에서 Verified Boot를 시행하면 기기 보안 이 강화 됩니다. 장치가 맬웨어에 감염되면 Strictly Enforced Verified Boot는 다음 번에 장치를 부팅 할 때이를 감지하고이를 수정하거나 무언가를하라는 메시지를 표시합니다.
또한이 기능은 데이터 손상 여부를 검사 하며, 대부분의 경우 FEC 코드 덕분에 데이터에 발생한 오류를 수정할 수 있습니다. Google은 255 비트에서 하나의 알 수없는 비트 오류를 수정할 수있는 FEC 코드를 사용합니다. 확실히, 그것은 꽤 작은 숫자처럼 보이지만, 모바일 장치와 관련하여 그것을 관점으로 보겠습니다.
참고 : 아래 값은 Android 개발자의 Google 엔지니어 인 Sami Tolvanen의 블로그 게시물에서 가져온 값입니다.
Google은 RS (255, 223) FEC 코드를 사용할 수있었습니다.이 코드는 255 비트에서 16 개의 알 수없는 비트 오류를 수정할 수 있었지만 32 비트의 중복 데이터 때문에 공간 오버 헤드가 거의 15 % 특히 휴대 기기에서 그렇습니다. Android가 4-8GB 메모리가 장착 된 예산 스마트 폰의 주된 OS이며 15 %의 여유 공간이 많은 것으로 보입니다.
공간을 절약하기 위해 오류 수정 기능을 희생함으로써 Google은 RS (255, 253) FEC 코드를 사용하기로 결정했습니다. 이 코드는 255 비트의 단일 알 수없는 오류 만 수정할 수 있지만 공간 오버 헤드는 0.8 %에 불과합니다.
주 : RS (255, N)은 오류 정정 코드의 일종 인 리드 - 솔로몬 코드의 표현이다.
2. 나쁜
"동전에는 양면이 있습니다"라는 말을 들어 본 적이 있습니까? 당연하지. Strictly Enforced Verified Boot에 대한 Google의 의도는 의심의 여지없이 아기 유니콘처럼 순수하지만 문제의 고유 한 집합이 있습니다.
Strictly Enforced Verified Boot 는 맬웨어 를 검사 할 때 커널, 부트 로더 및 기타 사용자에게 불법적 인 수정 작업 을 검사하지만, 이는 Android Nougat이 루팅 관련 문제를 많이 겪게된다는 것을 의미합니다. Verified Boot는 원하지 않는 맬웨어 코드와 부트 로더를 잠금 해제 한 코드를 구분할 수 없기 때문에 맞춤 ROM을 깜박입니다. 즉, 장치에 잠긴 부트 로더가 설치되어 있고 OEM이 부트 로더 잠금 해제를 허용하지 않으면 거의 불가능합니다. 바라기를, 어떤 사람은 이것을위한 착취를 알아낼 것이다.
고맙게도 기기를 근면 한 대부분의 사람들과 추가 된 기능을위한 맞춤 ROM은 Nexus와 같은 개발자가 쉽게 사용할 수있는 휴대 전화로 이동합니다. 이 주제와 관련하여 고려해야 할 사항이 많이 있으며, 적어도 잠금 해제 된 부트 로더와 함께 제공되거나 부트 로더를 잠금 해제 할 수있는 장치에는 맞춤 ROM의 끝이 아닙니다. 그러나 Samsung 전화와 같은 장치는 공식적으로 부트 로더 잠금 해제를 허용하지 않으며 이러한 장치에서 부트 로더 잠금을 해제하면 Verified Boot에서 "문제"로 간주되어 장치가 부팅되지 않습니다.
Strictly Enified Verified Boot에서 발생할 수있는 또 다른 문제는 루트 권한을 얻거나 사용자 지정 ROM을 설치하는 것을 정말로 신경 쓰지 않는 사용자에게 영향을주는 문제입니다. 시간이 지남에 따라 장치를 사용할 때 자연스러운 메모리 손상이있을 수 있습니다. 맬웨어가 있기 때문에가 아니라 단순히 발생하기 때문입니다. 이것은 일반적으로 문제가 아니며 적어도 Verified Boot가 심각하게 문제가되지는 않습니다. Strictly Enforced Verified Boot가 부팅시 수정할 수없는 손상된 데이터가 있으면 장치를 부팅 할 수 없습니다. 필자의 견해로는 사용자 파티션의 일부 손상된 데이터보다 더 크고 눈에 잘 띄는 문제입니다.
3. 추악한
Verified Boot를 시행 할 때 얻을 수있는 모든 이점과 잠재적 인 모든 문제에서 가장 불안한 것은 아마도 OEM이 장치를 잠그기 위해 악용을 시작하여 사람이 의미하는 바를 위해 Android를 사용할 수 없기 때문일 것입니다. 다음과 같아야합니다. 개방적이고 개발자에게 친숙하며 완전히 사용자 지정할 수 있습니다. Strictly Enified Verified Boot는 사용자가 자신의 장치에서 부트 로더를 잠금 해제 할 수 없도록함으로써 사용자가 맞춤 ROM 및 Xposed Modules와 같은 기능 향상 도구를 설치하지 못하도록하는 권한을 OEM에게 부여합니다.
Android Nougat : Android 작동 방식의 급진적 인 변화?
Google의 의도는 기기가 악성 코드로 인해 영향을 받았거나 메모리가 데이터 블록을 손상시킨 경우 대처할 방법을 모르는 일반 사용자가 안심하고 사용할 수있는 잠재적 인 문제를 피하는 것이었지만, 제조업체는 사용자가 제공되는 제품으로 생활하게하는 완벽한 도구입니다.
당연히 누군가는이 상황에 대한 악용이나 해결 방법을 알아낼 것이고, 안드로이드의 진정한 정신으로 그들이 할 수 있기를 바랍니다. 그러나 누군가가 해결책을 찾아 낼 때까지 사용자가 할 수있는대로 우리는 개발자 친화적 인 제조업체에서 장치를 구입할 수 있습니다.
특색 지어진 이미지 예의 : Flickr