[면책 조항 : 나는 보안 / 암호 전문가이며 매일 이와 같은 보안 아키텍처 질문을 처리합니다.]
무인 프로세스가 자격 증명에 액세스 할 수있는 방식으로 자격 증명을 저장하는 문제에 부딪 쳤지 만 공격자는 할 수 없습니다. 이것은 잘 알려져 있고 해결하기 어려운 문제입니다.
IoT 장치에 일부 TPM과 같은 마더 보드에 내장 된 하드웨어 키 저장소가 있거나 Android 하드웨어 지원 키 저장소 또는 Apple Secure Enclave 와 동등한 경우이를 사용할 수 있습니다.
기존 서버에서는 HSM 또는 스마트 카드를 사용할 수 있지만 내가 아는 유일한 전체 소프트웨어 솔루션은 모든 하드웨어 장치의 일련 번호를 결합하여 구축 된 일종의 "하드웨어 지문"에서 AES 키를 파생시키는 것입니다. 그런 다음 해당 AES 키를 사용하여 자격 증명을 암호화하십시오. 동일한 서버에서 실행되는 프로세스는 AES 키를 재구성하고 자격 증명을 해독 할 수 있지만 서버에서 파일을 추출하면 본질적으로 해독 할 수 없습니다.
IoT는 두 가지 이유로 렌치를 던져 넣습니다.
하드웨어 일련 번호가 고유하다는 가정은 아마 유지되지 않을 것입니다.
서버와 달리 공격자는 장치에 실제로 액세스 할 수 있으므로 암호 해독 프로그램을 실행하기 위해 장치의 셸을 얻을 수 있습니다.
기본적으로 로컬 프로세스가 데이터를 해독 할 수있는 경우 공격자가 해당 로컬 프로세스를 실행할 수 있기 때문에 하드웨어 암호화 (TPM) 및 "하드웨어 지문"암호화가 모두 난독 화됩니다.
따라서 표준 트릭은 작동하지 않는 것처럼 보입니다. 스스로에게 물어봐야 할 첫 번째 질문은 다음과 같습니다.
- 내 위협 모델은 무엇입니까
Secure <--> Convenient
? 이 프로젝트는 어디에 있습니까?
궁극적으로, 나는 당신에게 그것을 결정하는 중 필요가 있다고 생각 security > convenience
하고 인간이 각각의 부팅 (같은 사용하여 뭔가 후 자격 증명을 입력해야 BenceKaulics의 대답 @를 )하거나 결정할 security < convenience
그냥 어쩌면 약간 난처 당신이 경우를 사용하여 장치의 자격 증명을 넣어 차이를 느끼게합니다.
IoT 장치의 특성상 어려운 문제입니다.
완벽을 기하기 위해이 문제에 대한 완전한 산업 솔루션은 다음과 같습니다.
- 제조시 각 IoT 장치에 고유 한 RSA 공개 키를 제공하십시오. 이 공개 키를 장치 일련 번호에 대한 DB에 기록하십시오.
- 민감한 자격 증명을 적절한 서버에 저장하고 "게이트웨이"라고합니다.
- IoT 장치가 RSA 키를 사용하여 게이트웨이를 인증하면 게이트웨이는 저장된 자격 증명을 사용하여 세션을 열고 세션 토큰을 장치에 다시 전달합니다.
- 최상의 보안을 위해 게이트웨이는 물리적 (또는 VPN) 게이트웨이이므로 IoT 장치의 모든 트래픽이 게이트웨이를 통과하고 방화벽 규칙 및 항목을보다 강력하게 제어 할 수 있습니다. 인터넷 접속.
이렇게하면 장치를 손상시키는 공격자가 세션을 열 수 있지만 자격 증명에 직접 액세스 할 수는 없습니다.