사물 인터넷 기술
엔지니어가 하드웨어 보안에 관심을 가져야 하는 이유는 무엇입니까? 설계를 통해 취약점을 예방할 수 있기 때문입니다!
엔지니어들은 전통적으로 보안 문제에 대해 이야기하는 것을 별로 좋아하지 않습니다. 그러나 이것이 엔지니어가 암호화에 대해 아는 것이 얼마나 중요한지를 부정하지는 않습니다. 따라서 앞으로 설계에서 이 문제를 해결할 수 있습니다.
지금까지 우리는 엔지니어의 (간단한) 암호학, Diffie-Hellman 교환 및 ECC(타원 곡선 암호) 작동 방식에 대해 이야기했습니다.
이제 해커가 암호를 해독하는 방법을 배울 때입니다. 따라서 일반적인 공격으로부터 설계를 보호하기 위한 긴 여정을 시작할 수 있습니다.
기업 수준 또는 안전이 중요한 설계에 보안 장치를 제공할 책임이 있는 경우 설계 프로세스의 모든 단계에서 칩 공급업체 및/또는 보안 연구원과 설계에 대해 논의해야 합니다. Microchip, SiLabs, WolfSSL 등과 같은 회사에는 설계를 지원하고 보안에 대해 교육할 수 있는 엔지니어가 직원에 있습니다.
결국 100% 안전한 시스템은 없습니다.
<블록 인용>
“못 타는 말은 없었다. 던지지 못하는 라이더는 없었습니다.”
보안 연구원은 해커와 평생 게임을 합니다. 몇 번이고 "깨지지 않는" 암호화가 깨졌습니다. 메시지가 암호화된 상태로 유지되는지 여부는 부품 선택, 회로를 얼마나 잘 설계했는지, 코드를 얼마나 잘 구현했는지, 공격자가 설계를 무효화할 충분한 동기와 장비를 갖추고 있는지 여부에 달려 있습니다. 엔지니어로서의 임무는 개인 키를 보호하기 위해 할 수 있는 모든 일을 하는 것입니다.
국가로부터 개인 키를 보호하기 위해 할 수 있는 일은 사실상 아무 것도 없다는 것을 알고 계실 것입니다. 다양한 정부 기관이 전자 및 인간 표적에 대항하기 위해 가져올 수 있는 자원은 상당하고 압도적입니다. 스파이가 기기에서 개인 키를 검색할 수 없더라도 항상 기기를 프로그래밍한 컴퓨터를 해킹하고 IC가 제조되는 공장에 침투하고 직원을 손상시킬 수 있습니다...
다행스럽게도 국가가 기기를 해킹하는 것에 대해 걱정할 필요가 없습니다. 해제 다행히도 일반적으로 우리가 믿고 싶은 것보다 훨씬 간단한 문제입니다. 약 250달러 상당의 하드웨어와 YouTube 교육 비디오에 액세스할 수 있는 십대는 오후에 마이크로컨트롤러에서 개인 키를 꺼낼 수 있습니다. 그리고 악의적인 프로그래머는 단 몇 분 만에 데이터를 훔칠 수 있습니다.
보안 설계에 대비하기 위해서는 당면한 위협을 이해하는 것이 중요합니다. 다음은 잘 알려진 하드웨어 기반 보안 취약점과 이를 완화하기 위해 할 수 있는 일에 대한 개략적인 보기입니다.
몇 가지 주요 하드웨어 취약성 예를 살펴보고 보다 안전한 설계를 위한 몇 가지 팁에 대해 논의해 보겠습니다.
연구원들은 수십 년 동안 전자기 부채널 공격에 대해 알고 있었습니다. 기계식 스위치나 트랜지스터가 상태를 변경할 때마다 전자기파는 도체를 따라 그리고 도체에서 바깥쪽으로 전파됩니다. 해커가 전자파를 가로채면 파동을 생성하는 데 사용된 데이터를 재구성할 수 있는 경우가 많습니다. 자세한 내용은 Van Eck Phreaking, Tempest 또는 아래 동영상을 참조하세요.
전자기 부채널 공격 완화
PCB를 설계하고 배치할 때 업계 모범 사례를 사용하십시오.
<올>장치에 물리적으로 액세스하는 사람을 막지는 못하지만 작업을 훨씬 더 어렵게 만듭니다.
대부분의 마이크로컨트롤러에서 암호화를 해독하려면 $0.005 저항, 아날로그-디지털 변환기, Python 프로그래밍 언어에 대한 기본적인 이해만 있으면 됩니다.
마이크로컨트롤러의 디지털 게이트가 전환되면 마이크로컨트롤러로 연결되는 전원 레일을 방해합니다. 해커는 마이크로컨트롤러 작동 중에 발생하는 전류의 미세한 변화를 기록하기 위해 전원 레일에 50Ω 저항과 아날로그-디지털 변환기를 배치하는 방법을 배웠습니다.
마이크로컨트롤러는 차동 전력 측정 데이터가 기록되는 동안 SPI 프로그램/디버그 인터페이스를 통해 조사됩니다. 나중에 데이터를 분석하고 피크와 펄스를 사용하여 개별 마이크로컨트롤러 동작을 상호 연관시키고 지문을 생성합니다.
주의 깊은 분석을 통해 해커는 마이크로컨트롤러에서 원하는 거의 모든 정보를 꺼낼 수 있습니다.
차동 전력 분석 공격 완화
이 해킹은 소프트웨어 기반 암호화 코드로 쉽게 수행되므로 가능하면 DPA 대응책을 구현하는 암호화 하드웨어 가속기를 사용하십시오. 이전과 마찬가지로 디자인 및 레이아웃에서 업계 모범 사례를 사용합니다. BGA 풋프린트를 선택하고 PCB의 중간 레이어에서 파워 레일을 실행하고, 정말로 우려할 만한 이유가 있는 경우 위아래 구리 평면이 있는 PCB 중간 레이어에 IC를 내장하고 스티칭을 통해 사용하세요. 결국 나쁜 놈이 파워 레일에 도달하지 못하면 차동 전력 분석을 쉽게 수행할 수 없습니다.
또는 이 해킹에 취약하지 않은 하드웨어 기반 보안 코어를 사용합니다(여전히 해킹 가능함). 엔지니어는 이 취약점에 대해 알고 다양한 방법으로 이에 대한 설계를 합니다. 예를 들어, Silicon Labs Wireless Gecko Series 2에는 통합 보안 코어가 있으며 Microchip은 설계에 사용할 수 있는 암호화 모듈을 포함하여 보안 IC 제품군을 만듭니다.
여러 가지 메시지 가로채기(Man-in-the-Middle) 공격이 있습니다. 이 문서는 "Invalid Curve Attack"에 대해 설명합니다. 다음에 나오는 더 간단한 가상의 예는 하나의 가능한 공격 벡터일 뿐입니다.
"MyTunes"라는 Bluetooth 스피커를 통해 컴퓨터에서 음악을 재생하면 데이터가 컴퓨터에서 스피커로 직접 이동합니다. 그러나 컴퓨터를 "AllAboutCircuits.com"이라는 외부 웹 사이트에 연결할 때 컴퓨터가 "AllAboutCircuits"라는 다른 컴퓨터에 직접 연결되지 않는다는 사실을 인지하거나 알지 못할 수 있습니다.
가장 먼저 발생하는 일은 컴퓨터가 라우터에 연결하고 라우터가 AllAboutCircuits.com이라는 이름을 IPV4 또는 IPV6 주소(104.20.234.39)로 변환하는 DNS(Domain Name Server)에 연결하는 것입니다. 이는 일반적으로 빠르게 발생하며 데이터는 향후 탐색 속도를 높이기 위해 로컬에 저장됩니다.
그런 다음 데이터는 IP 주소가 104.20.234.39와 일치하는 컴퓨터로 전환하기 위해 컴퓨터에서 라우터, 게이트웨이로 바운스됩니다. 홉 수는 웹사이트와 위치에 따라 다릅니다. 각 위치에서 컴퓨터가 보안되지 않으면 데이터가 가로채거나 트래픽이 리디렉션되거나 완전히 다른 작업이 수행될 수 있습니다.
중간자 공격 설정
메시지 가로채기 공격이 발생할 수 있는 방법은 다양합니다. 한 가지 유형의 공격만 고려하십시오.
Bob은 멋진 새 무선 라우터를 샀습니다. 그는 장난감을 집에 가져와 홈 네트워크에 연결합니다. 그리고 새 장난감에 너무 많은 돈을 쓰지 않았는지 확인하기 위해 컴퓨터에서 은행 계좌 잔고를 확인합니다.
말로리는 해커입니다. 그녀는 웹사이트 shodan.io(또는 이와 유사한 것)를 사용하여 인터넷에 있는 라우터, 웹캠, Raspberry Pi 또는 IoT 장치를 식별하고 Bob의 새 라우터를 보고 이제 새 장난감도 갖게 되었기 때문에 웃으면서 위협적으로 손을 비볐습니다.
Mallory는 모든 장치와 함께 제공되는 기본 사용자 이름/비밀번호(admin/default, admin/admin, admin/password 등)를 사용합니다. 대부분의 제조업체는 모든 장치에 대해 동일한 사용자 이름/비밀번호를 사용하며 대부분의 사람들은 변경을 귀찮게 하지 않으므로 하나 이상의 진입점을 찾는 데 많은 시간이 걸리지 않습니다. Mallory는 단순히 장치에 로그인하고 자신의 펌웨어로 플래시한 다음 DNS 서버를 자신이 선택한 DNS 서버로 변경합니다.
그녀가 할 수 있는 이유:
<울>이제 Mallory는 개인 네트워크에 액세스할 수 있습니다. 그녀는 더 이상 웹에서 해커가 아니며 이제 Bob의 개인 홈 네트워크에 있으며 데이터가 앞뒤로 이동하는 것을 볼 수 있습니다. 데이터가 암호화되어 있어 데이터가 무엇인지 알 수는 없지만 Bob이 ThisBankDoesNotExist.com(123.123.123.123)을 꽤 자주 방문하고 로그인하는 것을 볼 수 있으므로 ThisBankDoesNotExist.com의 로그인 페이지를 픽셀 단위로 완벽하게 복사한 Bob입니다.
그런 다음 Mallory는 ThisBankDoesNotExist.com에 대한 Bob의 DNS 항목을 (123.45.67.89)
로 변경합니다.공격
Bob은 ThisBankDoesNotExist.com으로 이동합니다. 그는 도메인 이름 앞에 https://를 입력하는 것을 귀찮게 하지 않으며 Mallory의 해킹을 통해 올바른 컴퓨터에 연결하지 않고 http://ThisBankDoesNotExist.com에 있으므로 인증서 경고가 표시되지 않습니다.피>
Bob은 이것에 대해 전혀 모릅니다. 그는 픽셀 완벽한 사본을 보고 Mallory의 컴퓨터에 사용자 이름/비밀번호를 입력하고 예상한 대로 계정 정보가 나타납니다.
지금을 제외하고 Mallory는 모든 거래, 승인된 모든 계정 소유자, 심지어 Bob이 그의 계정 정보를 보호하기 위해 사용하는 매우 복잡한 사용자 이름/비밀번호(bob/letmein)까지 모든 것을 볼 수 있습니다.
해킹의 여파
거의 모든 웹 사이트는 종단 간 암호화를 사용합니다. 즉, Bob의 컴퓨터와 Bank 컴퓨터에서만 데이터를 해독할 수 있습니다. 말로리는 새로운 끝점을 도입했습니다. Bob의 트래픽은 그의 컴퓨터에서 인코딩되고 Mallory의 컴퓨터에서 디코딩됩니다. 그런 다음 데이터는 말로리의 컴퓨터에서 다시 인코딩되고 은행 컴퓨터에서 디코딩됩니다. 이것은 여전히 Bob과 Bank 모두에게 종단 간 암호화로 나타납니다.
그러나 중간 끝점이 있습니다. 바로 말로리의 컴퓨터입니다. Mallory는 Bob의 병원 기록, 이메일 등을 찾기 위해 동일한 트릭을 수행할 수 있습니다.
기기를 안전하게 보호하는 가장 쉬운 방법은 제품을 해킹하기 어렵게 만드는 것입니다.
저항에 부딪히면 해커가 다음 대상으로 이동할 가능성이 있습니다. 반면에 개인이나 소규모 기업이 국가적 해킹을 예방하기는 어렵다. 다행스럽게도 많은 "해커"는 새로운 공격을 개발하고 문제가 발생했을 때 해결할 수 있는 전문 지식이 부족한 "스크립트 키디"에 불과합니다. 기기에 대한 YouTube 동영상과 GitHub가 없으면 무엇을 해야 할지 모르고 계속 진행할 것입니다.
또한 장치 보안에 대해 자세히 알아보려면 마이크로칩 공급업체에 문의하십시오. Microchip과 Silicon Lab은 모두 이 기사 시리즈에서 두 회사 모두 엔지니어를 인터뷰 대상으로 삼았기 때문에 이 기사 시리즈에서 두드러지게 등장했습니다.
IoT 장치를 설계하는 경우 부주의한 엔지니어링 및 프로그래밍 관행으로 인해 고객이 생명을 잃을 가능성을 줄이기 위해 할 수 있는 몇 가지 방법이 있습니다.
위에서 언급한 생각 외에도 다음 추가 단계를 고려하십시오.
<올>이 기사 시리즈는 보안에 대한 단순한 소개였습니다. 모든 사람에게 안전한 IoT를 만드는 것은 엔지니어의 책임입니다.
사물 인터넷 기술
재료의 기계적 특성 재료의 기계적 특성 하중이라는 외력 작용에 따른 재료의 거동을 정의합니다. 사용 중인 재료의 강도와 지속적인 특성이 측정되며 도구, 기계 및 구조 설계에서 매우 중요합니다. 금속의 기계적 특성 금속의 유용성 범위에 의해 결정되고 예상되는 서비스를 설정합니다. 기계적 특성 또한 금속을 지정하고 식별하는 데 유용합니다. 그리고 고려되는 가장 일반적인 특성은 강도, 경도, 연성, 취성, 인성, 강성 및 내충격성입니다. 재료의 기계적 성질 목록 다음은 재료의 기계적 특성입니다. 강도 탄력성 가소성
매개변수는 모든 CNC 특징 및 기능에 대한 설정을 지정하며 모든 CNC에 대해 수백, 수천 가지가 있습니다. 매개변수에 대해 논의할 때 항상 매개변수 백업의 중요성을 반복합니다. CNC를 사용하는 사람으로서 이를 수행할 책임이 있습니다. 오늘날의 CNC를 사용하면 플래시 드라이브에 쉽게 백업할 수 있으므로 백업하지 않을 이유가 없습니다. 또한 매개변수 백업이 있으면 CNC 오류가 발생한 경우 며칠은 아니더라도 몇 시간을 절약할 수 있습니다. 거의 모든 CNC 관련 문제에는 매개변수 설정이 포함됩니다. 실제로 기계가 어떤 식으로든