student_developer
학생개발자의 IT Story
student_developer
전체 방문자
247,845
오늘
130
어제
124
반응형
  • 분류 전체보기 (187)
    • About Me (2)
    • IT NEWS (135)
      • Mobile NEWS (94)
      • laptop NEWS (3)
      • HW NEWS (4)
      • IT technology N.. (8)
      • IT company news (10)
    • OS || 운영체제 (1)
      • LINUX (1)
    • IT INFO (8)
      • Windows (5)
    • Programming (7)
      • C++ (1)
      • Python (3)
      • Project (1)
    • 일상 (7)
      • 일상 (6)
      • 이슈 (0)
    • 정보&꿀팁 (7)
    • IT & SW 칼럼 (1)

블로그 메뉴

    공지사항

    • 2020 새해 복 많이 받으세요^^
    • 소개

    인기 글

    • 학교 인터넷 게임 사이트 차단 속도 저하 없이 우회하기!
      2019.12.20
    • Python으로 미세먼지 농도를 확인하자!
      2020.03.06
      Python으로 미세먼지 농도를 확인하자!
    • [Review | Tip]딥러닝 기반 코드 자동완성 플러그⋯
      2019.12.12
      [Review | Tip]딥러닝 기반 코드 자동완성 플러그⋯
    • Windows 11, "이 설정은 관리자가 관리합니다"라고⋯
      2021.08.03
      Windows 11, "이 설정은 관리자가 관리합니다"라고⋯
    • [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 K⋯
      2019.02.25
      [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 K⋯

    태그

    • 삼성전자
    • Samsung
    • galaxy S10
    • 삼성 갤럭시 S10
    • Nvidia
    • 중국
    • ai
    • 폴더블
    • samsung galaxy S10 Plus
    • Exynos 9820
    • Exynos
    • 윈도우
    • 삼성 갤럭시 S10 플러스
    • 삼성 갤럭시
    • ces2019
    • 갤럭시 언팩 2019
    • 5G
    • 갤럭시 S10
    • 삼성
    • 갤럭시

    최근 댓글

    • 좋은 글 감사합니다.
      아이폰 14 pro max
    • 안녕하세요! 설치전 질문 있습니다. 보안부팅을 해제후에 설⋯
      ㅜㅜ
    • node.js 설치 확인해보세요
      IlllIIllIllIl
    • URL 주소는 어디서 찾아볼 수 있을까요?? 공공데이터 포⋯
      연빈
    • 리뷰 정말 잘 봤습니다. 블로거님 글 보니 저도 가격비교하⋯
      세일즈코리아

    최근 글

    • 삼성 갤럭시 GOS(Game Optimizing Servi⋯
      2022.03.04
      삼성 갤럭시 GOS(Game Optimizing Servi⋯
    • 삼성 Exynos 2200 공개!.. Samsung Xcl⋯
      2022.01.18
      삼성 Exynos 2200 공개!.. Samsung Xcl⋯
    • 삼성 갤럭시 S22 론칭 시점에 Exynos 2200 공개⋯
      2022.01.13
      삼성 갤럭시 S22 론칭 시점에 Exynos 2200 공개⋯
    • 삼성전자 CES 2022 티져 영상 공개
      2021.12.28
      삼성전자 CES 2022 티져 영상 공개
    • [Windows 11] 비정상적으로 느린 윈도우 업데이트 ⋯
      2021.11.21
      [Windows 11] 비정상적으로 느린 윈도우 업데이트 ⋯

    티스토리

    hELLO · Designed By 정상우.
    student_developer

    학생개발자의 IT Story

    [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 KNOX 원리 -1-
    일상/일상

    [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 KNOX 원리 -1-

    2019. 2. 25. 13:51
    반응형

    [보안/기술] 삼성 KNOX (삼성 녹스) 란? -- 삼성 KNOX 원리 -1-

    Screenshot 2019-02-25 at 13.42.42

    안녕하세요. 학생개발자입니다. 

    -번역 컨텐츠-

    삼성전자는 자사 스마트폰에 삼성 KNOX {(삼성 녹스)삼성 녹스(Samsung Knox, Samsung KNOX)}를 탑제합니다.
    삼성KNOX를 필자는 KNOX라고 표기하겠습니다.
    KNOX는 삼성전자(이하 삼성)가 개발, 판매하는 하드웨어 기반 개인, 기업용 모바일 보안 솔루션입니다.

    KNOX 원리

    Knox는 안드로이드 시스템 및 타이젠을 탑제한 
    모든 삼성전자의 모바일 및 IOT기기 에 탑제되는 하드웨어 기반 보안 솔루션 입니다.
     
    Knox는 외부의 위협을 다중 계층 보안이라는 기술을 사용해 디바이스의 해킹과 
    허가하지 않은 접근을 원천 차단합니다.
     
    Knox의 다중 계층 보안의 구성은 4단계로 이루어져 있습니다.
    Screenshot 2019-02-25 at 12.47.32

     

    먼저 하드웨어 기반인 보안 시스템인 SECURE/TRUSTED BOOT 및 하드웨어 루트 오브 트러스트입니다. 보안 수단의 우회 또는 손상을 방지하기 위해 Knox는 하드웨어 루트 오브 트러스트에 의해  지원되는 부트 타임 보호로 부팅 프로세스가 진행되는 동안 디바이스의 무결성을 확인합니다.

    루트 오브 트러스트(ROOT OF TRUST)

    *리눅스 / 유닉스 계열에서는 ROOT는 시스템 권한을 가진 파워 유저라는 의미로 사용됩니다. Knox는 하드웨어 난수 생성기를 사용하여 디바이스 제조 단계에서 생성된 DUHK (장치 고유 하드웨어 키:  삼성은 장치 초기 제조 시 장치 하드웨어에 장치 고유의 대칭 키인 DUHK를 통합합니다. DUHK는 데이터 (예 : 장치 상태 증명 데이터)를 특정 장치에 바인딩하며  하드웨어 암호화 모듈에서만 액세스 할 수 있으며 장치 소프트웨어에 직접 노출되지 않습니다.

     

    그러나 소프트웨어는 DUHK가 데이터를 암호화하고 해독하도록 요청할 수 있습니다.  이 DUHK 암호화 데이터는 장치에 바인딩되어 있으며 다른 장치에서 해독할 수 없습니다.)는  Device Root Key (DRK)와 Samsung Attestation Key(SAK).  DRK 및 SAK에는 수신자가 제공된 장치의 IMEI 및 일련번호를 확인할 수있게하는 인증 코드가 들어 있습니다. 

     

    기존 구매 시스템은 장치의 IMEI 및 일련 번호를 사용하여 DRK 식별자가 아닌 장치를 추적하므로  사용자는 구입 한 장치와 상호 작용한다는 증거를 얻을 수 있습니다.  DUHK는 TrustZone 운영 체제에서만 사용할 수 있습니다. 

     

    TrustZone OS는 DUHK를 사용하여 각 신뢰할 수 있는 응용 프로그램에 고유 한 후속 키를 만듭니다.  신뢰할 수있는 응용 프로그램은 이러한 키를 사용하여 안전하게 데이터를 저장합니다.  DRK 및 SAK는 신뢰할 수있는 응용 프로그램이  자신의 ID 및 실행중인 장치의 ID를 증명할 수있게 해주는 개인 키입니다.  이러한 신뢰할 수있는 응용 프로그램은 하드웨어와 깊이 통합되어 하드웨어 지원 보안을 제공합니다.  

     

    장치를 시작할 때 삼성은 SSBK ( Samsung Secure Boot Key )를 사용하여 모든 소프트웨어 구성 요소를 검사합니다.  구성 요소 중 하나는 보안 코드 및 데이터를 위해 예약된 칩 분할 영역 인 TrustZone Secure World입니다.  TrustZone Secure 영역 내에서 실행되는 특별히 권한이 부여된 소프트웨어 모듈 만이  이러한 키에 액세스 할 수 있습니다. *Samsung Secure Boot Key (SSBK) 란? SSBK는 삼성에서 승인 한 부트 실행 파일에 서명하는 데 사용되는 비대칭 키 쌍입니다. SSBK의 퍼스널 키 부분은 삼성이 보조 및 앱 부트 로더에 서명하는 데 사용됩니다. SSBK의 퍼블릭 키 부분은 삼성 공장 제조 시 하드웨어의 일회용 실시간 재프로그래밍 퓨즈(efuse)에 저장됩니다.  보안 부팅 프로세스는 이 공개 키를 사용하여 로드되는 각 부팅 구성 요소의 승인 여부를 확인합니다.

     

    *efuse란? efuse는 허가되지 않는 접근이 발생하면 스스로 회로를 끊어버려서 특정한 상태를 나타냅니다. 삼성 디바이스가 루팅 된 경우 knox 워렌티가 0x0(정상)에서 0x1(보증 만료)로 변경되며 efuse는 한번 상태가 변경되면 초기화가 불가능하여 강력한 보안 기능을 제공합니다.

    efuse

    Samsung Knox 장치는 e-fuse를 사용하여 "신뢰할 수 없는"(Samsung 이외의) 부팅 경로가 실행되었는지 여부를 나타냅니다.  장치가 Samsung 이외의 부트 로더, 커널, 커널 초기화 스크립트 또는 데이터로 부팅되는 경우 e-fuse가 설정됩니다.  따라서 장치를 켜고 비 삼성 안드로이드 버전을 설치하면 e-fuse가 설정됩니다.  e-fuse가 설정되면 장치는 더 이상 Knox Workspace 컨테이너를 만들거나  기존 Knox 작업 영역에 저장된 데이터에 액세스 할 수 없습니다.

     
     
     

    루트 오브 트러스트는 실행을 허용하기 전에 각 Knox 플랫폼 기능에 대한 점검을 수행합니다. 

    이러한 일련의 보안 검사는 최초의 하드웨어 검사로 시작되므로 각 기능은 하드웨어 루트 신뢰로 보호됩니다. 

    공격자가 목표로 하는 체인의 링크에 관계없이 보안 검사 중 하나가 이를 탐지합니다.

     

    보안 하드웨어

    ARM TrustZone Secure World는 매우 민감한 소프트웨어가 실행되는 환경입니다. 

    ARM TrustZone 하드웨어는 메모리를 보장하며 보안 영역 (예 : 지문 판독기)에는 

    Secure World에서만 액세스 할 수 있습니다. 

     

    커널, 미들웨어 및 앱을 포함한 대부분의 시스템은 일반 세계에서 실행됩니다. 

    반면 Secure World 소프트웨어는 더 많은 권한을 가지며 보안 및 일반 세계 자원에 모두 액세스 할 수 있습니다.

     

    부트 로더 ROM - PBL (Primary Bootloader)은 부트 프로세스 중에 실행되는 첫 번째 코드입니다. 

    PBL은 부팅 체인을 측정하고 확인하기 위해 신뢰됩니다. 

    변조를 방지하기 위해 PBL은 보안 하드웨어의 ROM에 보관됩니다. 

    장치 하드웨어는 부팅 시 ROM에서 PBL을 로드하고 실행하며 PBL은 보안 및 신뢰할 수 있는 부팅 프로세스를 시작합니다.

     

    하드웨어 키

    장치 고유 하드웨어 키 (DUHK) - 삼성은 장치 초기 제조 시 장치 하드웨어에 장치 고유의 대칭 키인 DUHK를 통합합니다. 

    DUHK는 데이터 (예 : 장치 상태 증명 데이터)를 특정 장치에 바인딩하며 

    하드웨어 암호화 모듈에서만 액세스 할 수 있으며 장치 소프트웨어에 직접 노출되지 않습니다. 

    그러나 소프트웨어는 DUHK가 데이터를 암호화하고 해독하도록 요청할 수 있습니다. 

    이 DUHK 암호화 데이터는 장치에 바인딩되어 있으며 다른 장치에서 해독할 수 없습니다.

     

    장치 루트 키 (DRK) - DRK는 X.509 인증서를 통해 삼성의 루트 키로 서명된 장치 고유의 비대칭 RSA 키 쌍입니다. 

    이 인증서는 삼성이 DRK를 제작했음을 증명합니다. 

    DRK는 삼성 공장에서 제조 시 생성되며 DUHK에 의해 암호화된 장치에 저장되어 장치에 바인딩됩니다. 

    DRK는 TrustZone Secure World 내에서만 액세스 할 수 있으며 DUHK의 보호를 받습니다. 

    DRK는 다른 서명 키를 파생하므로 Trust of Root의 중요한 부분입니다. 

    DRK는 장치마다 고유하므로 암호화 서명을 통해 장치에 데이터를 연결할 수 있습니다. 

    서명 키는 DRK에서 파생되고 데이터에 서명하는 데 사용됩니다.

     

    Samsung Secure Boot Key (SSBK) - SSBK는 삼성에서 승인 한 부트 실행 파일에 서명하는 데 사용되는 비대칭 키 쌍입니다.

    SSBK의 개인 부분은 삼성이 보조 및 앱 부트 로더에 서명하는 데 사용됩니다.

    SSBK의 공용 부분은 삼성 공장 제조 시 하드웨어의 일회용 프로그래머블 퓨즈에 저장됩니다. 

    보안 부팅 프로세스는 이 공개 키를 사용하여 로드되는 각 부팅 구성 요소의 승인 여부를 확인합니다.

     

    SAK (Samsung Attestation Key) - SAK는 삼성의 루트 키로 서명된 장치 고유의 비대칭 키 쌍입니다. 

    이 서명 된 키 쌍은 SAK가 삼성에서 생산되었음을 증명합니다. 

    SAK는 장치가 신뢰 상태에 있는지를 나타내는 증명 blob에 서명하는 데 사용됩니다.

     

    서명은 Attestation 데이터가 TrustZone Secure World에서 가져온 것임을 증명합니다. 

    DRK와는 달리 SAK는 ECDSA 키 세트입니다. 

    ECDSA는 RSA와 비슷하지만 더 작고 더 빠른 동일한 강도의 새로운 비대칭 알고리즘입니다.

     

    하드웨어 퓨즈

    RP (Rollback Prevention) 퓨즈 - RP 퓨즈는 삼성에서 승인 한 부트 로더의 최소 허용 버전을 인코딩합니다. 

    이전 소프트웨어에는 악용될 수 있는 알려진 취약점이 있을 수 있습니다. 

    롤백 방지는 승인되었지만 만료된 부트 로더가 로드되는 것을 제외합니다. 

    RP 퓨즈 버전 번호는 시스템 소프트웨어가 처음 설치될 때 및 특정 업데이트가 발생할 때 설정됩니다. 

    RP 퓨즈 버전 번호가 설정되면 기존 소프트웨어 버전으로 되돌릴 수 없습니다.

     

    보증 퓨즈 

    Knox 플랫폼은 장치가 승인되지 않은 상태로 부팅되었는지 여부를 나타내는 

    일회용 프로그래머블 퓨즈를 사용합니다. 

     

    신뢰할 수 있는 부팅 프로세스가 감지하거나 승인되지 않은 구성 요소를 사용, 

    또는 SELinux가 같은 특정 중요 보안 기능을 사용할 경우, 퓨즈를 설정합니다. 

    퓨즈가 설정되면 다음과 같은 보안 조치가 취해집니다.

     

    장치 상태 증명 확인이 실패합니다.

    Knox Keystore는 민감한 데이터 보호 가 데이터 암호화 및 암호 해독에 사용하는 키를 제거하여 

    중요한 데이터에 대한 액세스를 차단합니다.

    녹스 작업 공간은 더 이상 보안 기업 애플리케이션 및 내의 데이터에 대한 액세스를 방지 작동하지 않습니다.

     

    2편에서는 KNOX의 커널 기반 보안의 원리를 포스팅합니다.

    학생 개발자의 IT Story에 방문해주셔서 감사합니다.

     

    아래 공감[하트]버튼을 눌러주시면 필자에게 힘이 됩니다.
    댓글과 공감은 로그인 없이 참여할수 있씁니다.
    학생개발자의 IT Story의 발전을 위하여 아래 링크를 통해 후원을 하실 수 있습니다.
    [ 트위치 계정 필요합니다. Powered by Twip ]
     [  후원  ] 
    본 포스팅의 내용을 무단 전재하거나 복제하지 마십시오.
    학생 개발자의 IT Story의 콘텐츠의 저작권은 학생 개발자에게 있습니다.
     
    euiseoad03@gmail.com
    cschauiseo1234@naver.com
     
    copyright(c) 학생 개발자 2019

    -본문 이미지 출처-

    삼성 Knox 웹 사이트 : https://www.samsungknox.com

    XDA 포럼 : https://www.xda-developers.com

    반응형
      '일상/일상' 카테고리의 다른 글
      • [Project Zero 번역] Windows‌ ‌Exploitation‌ ‌Tricks:‌ ‌Spoofing‌ ‌Named‌ ‌Pipe‌ ‌Client‌ ‌PID‌
      • [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 KNOX 원리[커널] -2- + RKP 취약점 정리
      • [하나은행]미성년자가 비자 체크카드와 외환/입출금 통장을 법정대리인 없이 발급 받는 법
      • GitHub란
      efuse, Knox, knox원리, samsung knox, TPM, 루팅, 보증 퓨즈, 삼성 녹스, 삼성 보안 솔루션, 삼성전자, 실시간 재프로그래밍 칩셋, 트러스트 부트, 트러스트 오브 루트, 하드웨어 보안, 하드웨어 보안 모듈
      student_developer
      student_developer
      최신 IT 동향 정보 및 뉴스, SW개발 분야, 게임 관련 뉴스 및 정보를 다루는 종합 IT & Culture 블로그
      댓글쓰기
      [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 KNOX 원리[커널] -2-  + RKP 취약점 정리
      다음 글
      [보안/기술]삼성 KNOX (삼성녹스) 란? -- 삼성 KNOX 원리[커널] -2- + RKP 취약점 정리
      [하나은행]미성년자가 비자 체크카드와 외환/입출금 통장을 법정대리인 없이 발급 받는 법
      이전 글
      [하나은행]미성년자가 비자 체크카드와 외환/입출금 통장을 법정대리인 없이 발급 받는 법

      티스토리툴바