<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Firmware on tail -f logs/pwnblitz</title><link>https://pwnblitz.net/tags/firmware/</link><description>Recent content in Firmware on tail -f logs/pwnblitz</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Thu, 12 Nov 2026 15:20:00 +0900</lastBuildDate><atom:link href="https://pwnblitz.net/tags/firmware/index.xml" rel="self" type="application/rss+xml"/><item><title>ESP32 펌웨어 암호화와 eFuse: 칩 속 퓨즈의 구조부터 플래시 암호화까지</title><link>https://pwnblitz.net/posts/2026-11-12/efuse-firmware-encryption/</link><pubDate>Thu, 12 Nov 2026 15:20:00 +0900</pubDate><guid>https://pwnblitz.net/posts/2026-11-12/efuse-firmware-encryption/</guid><description>&lt;h2 id="한눈에-보기" aria-labelledby="한눈에-보기-t">&lt;span id="한눈에-보기-t">한눈에 보기&lt;/span> &lt;a class="anchor" href="#%ed%95%9c%eb%88%88%ec%97%90-%eb%b3%b4%ea%b8%b0" tabindex="-1" aria-label="이 섹션 링크: 한눈에 보기">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>eFuse는 칩 다이 안에 있는 한 번만 쓸 수 있는 비트&lt;/strong>
&lt;ul>
&lt;li>보드 위 부품이 아니라 SoC 실리콘 안의 작은 회로 블록(eFuse 매크로)&lt;/li>
&lt;li>큰 전류로 가는 연결부를 끊어 0을 1로 바꾸고, 되돌릴 수 없음&lt;/li>
&lt;li>용량은 수백 바이트 수준. &lt;a href="#efuse-%EA%B5%AC%EC%84%B1">ESP32&lt;/a>는 모두 1024비트(128바이트), ESP32-C3는 4096비트 중 사용자 영역이 최대 1792비트(224바이트)라 256비트(32바이트) 키를 여러 개 담을 수 있음&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>IoT 기기가 펌웨어를 암호화하면 키를 둘 곳이 필요함&lt;/strong>
&lt;ul>
&lt;li>펌웨어는 보드 위 외부 플래시에 있어 누구나 읽을 수 있음&lt;/li>
&lt;li>키는 칩 안에, 칩마다 다르게, 바꿀 수 없게, 소프트웨어가 못 읽게 둬야 함. eFuse가 이 조건을 맞춤&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>eFuse가 펌웨어 보호에서 맡는 일은 다섯 가지&lt;/strong>
&lt;ul>
&lt;li>암호화 키 저장, 서명 검증용 공개키 해시 저장, 장치 고유 키, 디버그 잠금, 롤백 방지 카운터&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>&lt;a href="#esp32-%ED%94%8C%EB%9E%98%EC%8B%9C-%EC%95%94%ED%98%B8%ED%99%94">ESP32&lt;/a>는 eFuse에 플래시 암호화 키를 직접 구움&lt;/strong>
&lt;ul>
&lt;li>하드웨어가 플래시를 읽을 때마다 투명하게 복호화&lt;/li>
&lt;li>시큐어 부트용 공개키 해시도 eFuse에 두어 신뢰의 출발점으로 씀&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>eFuse도 &lt;a href="#efuse%EC%9D%98-%ED%95%9C%EA%B3%84%EC%99%80-%EA%B3%B5%EA%B2%A9">깨질 수 있음&lt;/a>&lt;/strong>
&lt;ul>
&lt;li>부팅 직후 eFuse를 읽는 순간에 결함을 주입하거나, 칩을 열어 셀을 직접 판독&lt;/li>
&lt;li>그래서 모든 기기에 같은 키를 굽지 말고 기기마다 다른 키를 써야 함&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="왜-칩-안에-한-번만-쓰는-비트가-필요한가" aria-labelledby="왜-칩-안에-한-번만-쓰는-비트가-필요한가-t">&lt;span id="왜-칩-안에-한-번만-쓰는-비트가-필요한가-t">왜 칩 안에 한 번만 쓰는 비트가 필요한가&lt;/span> &lt;a class="anchor" href="#%ec%99%9c-%ec%b9%a9-%ec%95%88%ec%97%90-%ed%95%9c-%eb%b2%88%eb%a7%8c-%ec%93%b0%eb%8a%94-%eb%b9%84%ed%8a%b8%ea%b0%80-%ed%95%84%ec%9a%94%ed%95%9c%ea%b0%80" tabindex="-1" aria-label="이 섹션 링크: 왜 칩 안에 한 번만 쓰는 비트가 필요한가">&lt;/a>&lt;/h2>
&lt;p>공유기나 스마트 플러그 같은 IoT 기기를 뜯어 보면, 보드 가운데에 SoC(System on Chip, 프로세서와 주변 장치를 칩 하나에 담은 것)가 있고 그 옆에 다리 8개짜리 작은 칩이 붙어 있는 경우가 많다. 이 작은 칩이 SPI(Serial Peripheral Interface) 플래시이고, 펌웨어는 여기에 들어 있다.&lt;/p></description></item></channel></rss>