2016-09-06 10 views
2

TEE을 사용하여 신뢰할 수있는 응용 프로그램을 개발하는 데 관심이 있습니다. Nexus 5이 있으며 Android 5.1.1 (LMY48M)이 표시되어 있습니다. 실제 기기에서 실행되는 TEE 로직을 이해하기 위해 아주 기본적인 hello world 앱을 만들고 싶습니다. Nexus 5는 QSEE (Qualcomm Secure Execution Environment)을 지원하지만 QSEE 통신 라이브러리를 일반 Android 애플리케이션에 포함시키는 방법에 대한 문서를 찾을 수 없습니다. ADB 루트 쉘에서 Android 애플리케이션에서 QSEE와 통신하는 방법은 무엇입니까?

,

cat /d/tzdbg/log 
cat /d/tzdbg/qsee_log 

는 표시를 빈 결과를 명령한다.

이전에 이와 같은 응용 프로그램을 개발하려는 사람이 있습니까? 도움이 될 것입니다.

답변

0

당신이 발견하는 경우이 : http://source.android.com/security/trusty/index.html 나는이 관련 부분이라고 생각

: 그래서

Currently all Trusty applications are developed by a single party and packaged with the Trusty kernel image. The entire image is signed and verified by the bootloader during boot. Third-party application development is not supported in this version of Trusty.

당신이 당신의 자신의 사용자 정의 ROM을 작성하지 않는 한, 당신이 트러스티으로 아무것도 할 수 있다고 생각하지 않습니다 .

+1

답변 해 주셔서 감사합니다. 이전에 해당 설명서를 읽었습니다. 나는 Trusty TEE와 QSEE가 다른 TEE OS라고 생각한다. Android 소스 코드에는 QSEE (QSEEComAPI.h, libQSEEComAPI.so, qseecom.h 등)와 관련된 일부 파일이 있지만 Trusty TEE와 관련된 것은 없습니다. 특정 ACL에만 사용할 수있는 다른 저장소입니다. 따라서 QSEEComAPI를 사용하여 TrustZone에서 SMC 호출을 만들고 싶습니다. – acalb

+0

TEE가 QSEE에 의해 구현되었다고 해석합니다. 본 적이 있습니까 : https://www.blackhat.com/docs/us-14/materials/us-14-Rosenberg-Reflections-on-Trusting-TrustZone.pdf 세 번째 페이지 다이어그램은 '정상적인 세계'와 '안전함 세계'. 내 생각에 '안전한 세상'에서 무엇이든 할려면 Qualcomm의 라이센스가 필요합니다. Custom ROM을 통해 TEE로 Trusty를 구축하지 않는 한. –

0

먼저 TEE에 대해 APP에는 TA (Trust APP, TEE에서 실행)와 CA (클라이언트 APP, REE에서 실행)의 두 부분이 포함됩니다.

QSEE에는 GlobalPlatform (GP) API (모든 GP API는 아님)가 구현되어 있으므로 GP API 백서를 읽고 CA 및 TA를 개발할 때 사용해야합니다.

그러나 CA와 TA는 TSM에서 디스패치해야하므로 사용자가 직접 CA와 TA를 설치할 수 없습니다.

+0

[Open-TEE] (http://open-tee.github.io)를 사용하여 CA와 TA를 개발했습니다. 이 프로젝트는 GP와 호환되지만 가상 TEE 환경을 제공합니다. QSEE API를 사용하여 실제 하드웨어 환경에서 TEE와 통신하는 방법을 찾고 있습니다. 그런데 TSM이 무슨 뜻입니까? 조금 더 설명해 주시겠습니까? – acalb

+0

@acalb 안녕하십니까, TA와 CA를 개발했음을 알려 주어서 기쁩니다. Open-TEE 프로젝트에 문제가 있습니다. core/build-binary.mk 1.Error : (688) Android NDK : 모듈 nativelibtee-jni는 정의되지 않은 모듈에 따라 달라집니다. c 오류 : (701) *** Android NDK : 중단 (APP_ALLOW_MISSING_DEPS = true를 설정하여 누락 된 종속성 허용) . 그만해. 서비스 : 빌드 네이티브 실패 FAILED 2./사용자/안/문서/오픈 테이트/테잎/펜티 - 앤드류/서비스 /src/main/jni/LibteeWrapper.cpp 오류 : (17, 35) tee_shared_data_types.h : 해당 사항 없음 파일 또는 디렉토리 컴파일이 종료되었습니다. –

0

현재이 작업을 수행하는 데는 간단한 방법이 없습니다.

TEE 사용법을 배우고 싶다면 OP-TEE 또는 Open-TEE를 실행하는 VM을 사용하는 것이 좋습니다 (위에서 @Cobain에 대한 답변을 읽었을 때). GlobalPlatform API는 여러 장치에서 널리 지원됩니다.

유감스럽게도 장치 OEM 또는 기존 소프트웨어 공급 업체가되어 지금 당장 원하는 작업을 수행 할 수 있어야하지만, 이는 향후에 더 쉽게 얻을 수 있습니다. 이는 상대적으로 새로운 기술로 작업 할 때의 단점입니다.

TSM은 일부 GlobalPlatform TEE 구현에서 TEE에 TA를로드하는 데 사용되는 기술인 신뢰할 수있는 서비스 관리자입니다. QSEE에는 적용되지 않습니다.

Trusty는 Google의 독점적 인 TEE이며이를 사용자에게 공개하는 사용 가능한 기기에 대해 알지 못합니다. QSEE는 Qualcomm TEE입니다. 불행히도 내가 할 수도 있고하지 않을 수도있는 것에 대해 정확히 말할 수는 없습니다.

0

나는 이것을 원했지만 Rustberry Pi 3의 OP-TEE에서 신뢰할 수있는 응용 프로그램을 개발하기 위해 sequiturlabs 프레임 워크를 사용했다. 하드웨어에 대한 안녕 TA를 가능하게했지만 TA 개발을 허용 할만한 것을 여전히 찾고있다. REE로 Android가 설치된 보안 OS의 경우

https://www.sequiturlabs.com/media_portfolio/sequitur-labs-collaborates-with-linaro-to-lower-barriers-to-iot-security-education-for-raspberry-pi-maker-community/