일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 보안강의
- 캠핑
- 초캠중고
- 캠핑장
- 프로그래밍
- ARM Trustzone 설명
- 에어텐트
- ARM Trustzone
- ARM Trust Zone
- 주식선택기준
- 텐트
- arm trust zone 강의
- 반고
- threadtime
- 개발자
- ARM trustzone 내용
- nft
- adb logcat
- 면접
- 중고텐트
- setns
- 언어치료
- android log
- 아웃웰
- 개발자면접
- 프로그래머
- 코딩
- 프로그래머면접
- 게임 NFT
- arm trustzone 강의
- Today
- Total
콩딱일상
[ARM TrustZone] 시작? 그리고 monitor mode 본문
ARM TrustZone과 관련하여 많은 글들이 존재 하지만 나도 그 글들 사이에 한번 끼어들어 볼려고 합니다.
사실 이 글을 적는게 처음은 아닙니다. 관련 주제로 3번정도 글을 작성해본 경험이 있는데 그때 마다 새롭고 새롭네요.
이 글을 누가 읽을지 그 대상이 있기는 할지 모르겠으나 한번 작성해 볼려고 합니다. 여러번 글을 적어본 경험중에 가장 좋았던 경험은 그림을 토대로 설명을 드렸던 부분인것 같습니다.
그래서 그 기억을 되살려서 다시한번 작성해 볼려고 합니다.
ARM Security Technology Building a Secure System using TrustZone® Technology
위 제목의 문서를 위주로 설명을 드릴것입니다. 왜냐면 제가 TrustZone에 대해서 공부한지 벌써 8년정도 지났었고 당시에 봤던게 저 내용이기 때문입니다. 추후 시간이 허락한다면 "Trustzone for armv8-a"를 읽어보도록 하겠습니다.
많은 글들이 위와 같은 그림을 대상으로 이야기를 진행합니다. 하지만 이것은 조금 더 큰그림의 모습일 뿐입니다.
TEE를 Trustzone을 이용해서만 구현할 수 있는것은 아니라는 의미입니다. 저희가 계속해서 알아볼 TrustZone은 Hardware기반 보호기술로 이해하시면 편리합니다.
그것을 활용하여 TrustExecutionEnvironment(TEE)를 만들수 있다고 생각하시면 됩니다. 또한 대다수 TEE Kernel혹은 SecureOS라고 불리는 프로그램들은 Global Platform 규격을 맞추어 만들어진다고 생각하시면 됩니다.
즉 Trustzone은 TEE를 구성할수 있게 해줄뿐이지 Trustzone이 곧 TEE는 아닙니다.
오늘은 가볍게 첫 글이니 위에 그림에 대해서 이야기하는 시간을 가져보겠습니다.
첫 글이기 때문에 오히려 핵심이라고 생각할수 있는 부분이기도 한 그림입니다.
Normal World를 흔히 REE(Rich Execution Environment) 라고 부릅니다. 여러분이 사용하시는 대다수의 General Purpose Operating System(GP-OS) 가 이에 포함됩니다. 그리고 Secure World를 흔히 TEE라고 표현하며, 보안 및 특정 목적을 위해서 개발된 운영체제가 동작하게 됩니다.
이러한 환경의 변화를 시켜줄수 있는것이 Monitor mode입니다. 기존 ARM에 대해서만 아시는 분들을 생소하신 Mode이실텐데요.
일반적으로 위에 모드들 중에서 알고있는 부분은 UND까지가 전부일 것입니다. 그 후에 Monitor mode와 Hypervisor mode가 존재하죠. 위에서 이야기하는 Monitor mode역시 arm의 다양한 mode중에 하나라고 생각하시면 됩니다.
단 여기서 주의하실점은 monitor mode는 Normal World 가 아닌 Secure World영역에서 수행된다는 점입니다.
이때 사용하는 명령어가 SMC(Secure Monitor Call)을 이용하여 변환을 수행하게 됩니다.
Normal World에서 호출된 SMC인지 Secure World에서 호출된 SMC인지는 NS bit를 통해서 확인하게 되는데요.
이러한 부분들은 차츰차츰 알아가면 된다고 생각합니다.
Monitor mode에서 Secure영역을 위해 bank된 register가 아닌 경우에는 context switch를 진행해 주어야 한다는 점을 잊으시면 않됩니다.
오늘은 가볍게 여기서 마무리 하도록 하겠습니다.
'소프트웨어 > TrustZone' 카테고리의 다른 글
[ARM TrustZone] L1 Cache Memory (0) | 2021.11.03 |
---|