
DC34 배지용 Vault 앱
vault 애플리케이션[!WARNING] 배지에 직접 펌웨어를 로드하면 경량 암호화 키가 삭제되고 배지가 개발자 모드로 전환됩니다.
공지: 이 저장소는 현재 고아 상태이며 곧 보관될 예정입니다. xous-core에 병합되었기 때문입니다. 이 저장소는 컨퍼런스 전에 비공개로 유지해야 했기 때문에 bunnie GitHub 저장소에만 존재했습니다. 이제 공개되었으므로 xous-core의 일부로 유지 관리됩니다. 향후 모든 PR은 xous-core로 보내주시기 바랍니다. Tetris PR은 결국 별도의 앱으로 마이그레이션될 예정이므로, 해당 작업이 완료될 때까지 이 저장소는 활성 상태로 유지됩니다.
Defcon34용으로 커스터마이즈된 vault 애플리케이션입니다.
컨퍼런스 내 배지 상호작용 기능을 제공합니다. 즉, 배지 간에 암호화된 QR 코드를 스캔하여 조명을 커스터마이즈하는 기능입니다.
코드 속에 몇 가지 이스터 에그가 숨겨져 있습니다. 찾아보시고 싶다면 말이죠. 충분히 열심히 찾으면 잡을 수 있는 플래그도 있을지도 모릅니다.
다음 디렉토리 구조를 가정합니다:
.
├── dc34-api
├── dc34-console
├── dc34-vault
└── xous-core
그리고 이 명령들은 xous-core 디렉토리 내부에서 실행된다고 가정합니다. 사전 요구 사항:
xous-core 저장소 내부에서 cargo xtask install-toolkit 실행echo "===== Building Console ====="
(
cd ../dc34-console &&
cargo build --release --target riscv32imac-unknown-xous-elf --features board-baosec --features oem-baosec-lite --features bao1x --features utralib/bao1x &&
) || {
echo "dc34-console build failed!"
exit 1
}
echo "===== Building Vault ====="
(
cd ../dc34-vault &&
cargo build --release --target riscv32imac-unknown-xous-elf --features board-baosec &&
) || {
echo "dc34-vault build failed!"
exit 1
}
cargo xtask baosec-lite ../dc34-console/target/riscv32imac-unknown-xous-elf/release/dc34-console~flash ../dc34-vault/target/riscv32imac-unknown-xous-elf/release/dc34-vault \
--no-timestamp --feature usb --kernel-feature debug-proc --no-verify
코어 모듈이 배지 캐리어에 결합되면 모듈은 기본적으로 "컨퍼런스" 모드로 전환되며, Defcon 로고가 표시되고 https://github.com/bunnie/dc34-image 를 사용하여 업로드한 이미지가 번갈아 표시됩니다.
QR 코드를 스캔하여 다른 배지와 조명 패턴을 "믹스"할 수 있습니다. 조명 패턴은 전체 인구에 걸쳐 공유되는 공통 키로 암호화됩니다. 이 키를 추출할 수 있다면 임의의 조명 패턴에 대한 "시더(seeder)"가 될 수 있습니다. 그러나 처음에는 모든 배지의 색상 범위가 제한되어 있으며, 배지를 더 화려하게 만드는 유일한 방법은 원하는 색상을 가진 사람과 상호작용하는 것입니다.
상호작용은 다음과 같이 진행됩니다:
암호화 교환에 대한 자세한 내용은 defcon_scheme.md를 참조하십시오.
현재 계획은 공유 키의 일부를 유출하여, 자신의 강력한 ASIC 크래커를 자랑하고 싶은 사람이 키를 무차별 대입으로 공격할 수 있게 하는 것입니다. 쇼가 끝날 때까지 아무도 키를 무차별 대입하거나 추출하지 못했다면, 고급 데스크톱 GPU와 하루 정도의 노력으로 무차별 대입이 가능할 만큼 충분한 비트가 유출될 것입니다.
컨퍼런스를 떠난 후에는 모듈 뒷면의 나사 두 개를 풀어 투명 플라스틱 코어 모듈을 분리할 수 있습니다. 배지 키트에는 배지 캐리어에서 분리할 때 생기는 구멍을 막기 위한 교체용 나사 한 쌍과 실리콘 캡이 포함되어 있습니다.
이렇게 분리한 후 USB로 배지를 컴퓨터에 연결하여 2FA(FIDO2) 토큰으로 사용할 수 있습니다. 또한 QR 코드를 스캔하여 TOTP와 일반 텍스트 비밀번호를 저장하는 것도 지원합니다. QR 코드는 이 브라우저 확장 프로그램을 설치하여 생성합니다. QR 코드는 현재 시간을 인코딩합니다. 장치에는 내부 배터리가 없으므로 TOTP 기능을 사용하려면 장치를 연결할 때 QR 코드 중 하나를 스캔하여 현재 시간을 설정해야 합니다.
펌웨어 업데이트는 https://ci.betrusted.io/releases/latest/baochip/dc34-badge/latest.zip에서 받을 수 있습니다. zip 파일은 장치에 복사하기 전에 세 개의 구성 파일(xous.uf2, swap.uf2, loader.uf2)로 압축을 풀어야 합니다!
업데이트를 수행하려면:
이 마지막 부팅 단계는 부분적으로 쓰여진 섹터를 디스크에 플러시하는 데 필요합니다. 부팅하지 않고 장치를 끄면 OS에 따라 마지막 섹터의 일부가 누락될 수 있습니다.