HDL로 작성한 연산 블록을 테스트하려는데, HDL로 제어 블록이니 데이터패스니 그냥 작성하기는 너무 어려워서... 대안을 찾아보려 했는데요.

HLS 툴을 쓰는 방법이 있지만,

  • 라이선스가 있는 Xilinx Vivado HLS는 출력물을 Xilinx 제품에 안 쓰면 라이선스 철퇴맞는다는 답변이 있고 (예상은 했지만 역시나)
  • Mentor Catapult 등등 있긴 한데 라이선스가 없으니...

위키백과에 가면 이것저것 있는데, 거의 다 오래되었거나 유료고... 좋아보이는 게 안 보이네요.

다른 툴을 둘러보다가, 용도가 아예 다르긴 하지만 RTL 모델링 툴을 둘러봤습니다.

Python 기반

MyHDL

파이썬으로 쓰는 HDL 언어 정도가 되겠네요. Verilog로 TDD 하려면 테스트벤치 쓰기가 너무나 어려운데, 파이썬으로 테스트케이스 쓰면 편리할 것 같습니다.

문제는 hierarchy로 블록을 만들었을 때, 전체 블록 대신에 소블록별로 내보내는 방법이 있는지 모르겠네요.

PyMTL

여기는 아키텍처 모델링하는 데에 방점이 있어 보입니다. Behavior 레벨, Cycle 레벨, 그리고 RTL 레벨 각각에 대해 디자인을 만들면 이에 대한 테스트를... 고급지게... 할 수 있는 것 같아요.

Intel FPGA, "Securing IoT Devices can be Never-Ending"

IoT 요소와 보안 요소

  • IoT device = HW + SW (+firmware) + data + messages into/out-of device
  • 각 요소에 대한 세 가지 가정
    • 각 요소는 신뢰할 수 있는 출처에서 제작되었다
    • 위·변조되지 않았다
    • 시스템 디자이너가 의도한 작업만을 수행한다
    • device는 위 가정을 신뢰하거나, 매 번 시험하는 선택을 할 수 있다.
  • "대전제": 완벽한 보안을 달성할 수는 없다. 주어진 설계/제조 예산 아래서, 시스템이 다루는 작업의 중요성보다 해킹에 필요한 비용이 최대한 비싸도록 만드는 것이 목표.

기기에 도달된 메시지를 신뢰하려면

공개키 인증을 통해 메시지를 검증한다

  • 서버와 기기가 공통된 hash 방법을 구현한다
  • 서버는 메시지와, 메시지의 hash를 개인키로 암호화한 hash를 전달한다
  • 기기는 같은 방법으로 메시지를 hash한 후, 공개키로 hash를 복호화하여 두 hash를 비교한다
  • 같으면 높은 확률로 메시지를 신뢰할 수 있다
  • 메시지 자체를 암호화할 수도 있으나, 공개키 연산은 비싸다

그러면 그 공개키는 어떻게 믿을 수 있을까?

  • Certification Authority (인증 기관) chain이 있다.
  • 키를 인증하는 상위 키도 같은 공개키 암호화 방식으로 작동.
  • chain을 쭉 따라가면 결국 끝이 있는데, 여기는 현실 계약서 서류가 보호해 주는 걸로.

기기의 인증 절차는 믿을 수 있을까? "나"를 믿을 수 있을까?

걱정거리는 더 있다.

  • 인증 절차를 관장하는 코드가 변조되면? 기기 OS가 변조되면?
  • 개발 PC가 해킹당해서 인증서가 변조되면?
  • "하드웨어 디자인에 백도어가 심겨 있다면?"

미사일 발사 시스템도 아닌데 과한 걱정이라구? IoT 아기 모니터를 변조해서 DDoS용 봇넷으로 만든 빌런이 있다. 어떤 시스템을 만들든 최악의 상황을 고려는 해야 한다.

소프트웨어 개발, 업데이트 배포 시에도 위의 메시지 인증 절차와 같이 인증 절차를 넣어 두어야 한다. 그런데 이 소프트웨어는 어떻게 믿지?

"The Root of Trust"

CPU의 보안 동작 모드, 나아가 "Root of Trust"를 구현하는 것은 쉽지 않다

  • "신뢰할 수 있는 하드웨어가 신뢰할 수 있는 코드를 실행해야 한다."를 구현하기 위해,
  • 신뢰할 수 있는 하드웨어
    • 신뢰 수준이 낮아도 된다면, 믿을 수 있는 제조사의 MCU
    • 그렇지 않다면,
      • formal verification 및 functional safety 기준을 만족하도록 철저히 설계·검증한 디자인
      • 당신의 기관에서 검증하거나 직접 다룰 수 있는 공장에서 제조
      • tamper protection, side-channel attack protection 적용된 디자인
      • physically unclonable function (PUF) 통해 유출·복제되지 않는 비밀 ID 부여
  • 신뢰할 수 있는 코드 실행
    • hardware security module (HSM)
      • 보안 키 저장소, (HW 기반) 암호화 엔진, ...
      • tamper, intrusion 감지 기능, secure boot 관장
    • 메모리 보호
      • HSM만 읽고 쓸 수 있는 메모리 영역 제공

Active Monitor

critical system이라면 위의 시스템들과 별개로, 비정상 동작을 감지하여 경고 또는 시스템을 중단시키는 감시자가 필요할 수도 있다.

  • 정상 동작을 간단한 규칙으로 정의할 수 있다면 HSM 내의 소프트웨어든 하드웨어든 만들면 그만
  • 규칙이 복잡하다면? 딥러닝을 활용할 생각을 할 수 있으나,
    • 딥러닝 전문가 인력이 적고,
    • 지도 학습을 위해 옳은/위험한 동작 데이터를 마련하는 일은 불가능하다시피 하다
    • 동작 데이터 자체가 변조될 수 있는 가능성을 걱정해야 한다
    • MCU에서 구현하기에 딥러닝 연산은 자원을 많이 필요로 한다
  • 정말정말 critical system이면, heterogeneous redundancy 개념이 쓰이게 된다
    • 같은 설계 사양을 다르게 구현한 시스템 세 개를 마련해서, 둘 이상이 일치하는 출력 결과로 동작 수행
    • 다른 시스템 두 개 이상을 모두 해킹하기는 비용이 많이 들겠지.

그러나... 설계/제조 비용 문제

1$짜리 MCU 칩에 위 보안 기능을 넣는 것은 현실적으로 불가능하다.

  • HSM 넣을 돈이 없다
  • redundancy 넣을 자리가 없다. 물론 돈도 없다
  • 어쨌든 돈도 없고 아무것도 없다

그러면 어떻게 할까?

  • 무시한다
  • 적당히 포기하고 낮은 수준의 보안을 적용한다
  • 보안 책임을 IoT 기기 대신 상위 단계의 IoT 허브로 넘긴다
  • 보다 미세화된 신공정으로 triple-redundant MCU & internal HSM을 구현한다.
  • 시스템 전체를 통째로 팔면서, 보안을 위한 설계·제조 비용을 시스템 전체 비용에 반영한다.
    • ARM 수석 연구원 왈, "어차피 IoT 시스템은 칩 하나만이 아니라 시스템 전체라야 의미 있는 것 아니냐"
  • 그냥 보안 강화 칩을 비싸게 판다 ($15 > $1)

곧 들이닥칠 IoT 보안 문제, 어떻게든 풀게 될 것이다.

The Anti-Helicopter Parent’s Plea: Let Kids Play!

성공한 IT 벤처 사업가인 위 르포의 주인공...

현대 아이들에 대한 분석 결과...

  • 자녀 과보호 -- 유년 시절에 위험에 아예 맞서보질 못함!
  • 자녀 안전 걱정 -- 자녀를 못 믿어서 그러는 것?
  • IT 기기, "어른 지도 하의" 놀이, ... -- 핵노잼
  • 자기 아이를 자유롭게 놀게 한대도, 다른 집 아이 상황도 위와 동일 -- 같이 놀 수 없음

그래서?

  • 성공한 IT 벤처 사업가니까 -- 어렵지 않게 마당 딸린 집 구입
  • 울타리 치고 출입금지, 낙서금지라고 써 붙이는 대신 "놀러 오세요!", "놀이터"라고 써 붙임
  • 뒷마당에 2층 놀이집, 펜스 없는 트램펄린, ... -- 어느 정도 위험을 감수하는 놀이기구 설치
    • 뭐 녹슬고 그래서 생기는 위험을 감수하란 건 아님
  • 앞마당에 테이블 -- 행인과 대화
  • 프로젝터 -- "피리 부는 사나이"
  • 해서 자기 아이들과 놀아줄 이웃 아이, 그리고 이웃 부모 끌어들이기!

교훈

  • 현대에는 "평범한" 유년도 사치인 것 같다
  • 부모 재력이 되어야, 또는 위와 같이 재력 되는 이웃이 있어야 가능한 행복한 소년기 만들어주기.
  • 다만, 마지막 줄의 "I held Kieran’s hand tightly and decided never to play there again." ㄷㄷㄷ
    • 희박한 가능성이라도 자녀 생명의 위협을 부모가 무시하기는 어렵다.
    • (스포) 소설 "키친하우스"에서 그네를 너무 험하게 밀어서 운명을 달리한 소녀 ㄷㄷㄷ

+ Recent posts