목록ChipWhisperer (8)
graf
1. 개요 이번 목표는 인증 우회다. AES 인증을 우회하여 펌웨어를 업로드하는 것이 목표라고 한다. 내 목표도 secure boot 우회였으니 이번에 배울 점이 정말 많겠다. 이번엔 CPA 공격을 할 줄 알아야 한다고 한다. 이건.. 할 줄 모르는데... 그렇다고 SCA 문서를 다 공부하고 글리칭을 시작하는건 주객전도인 것 같고,, 일단 그냥 이어서 해보자. 모르는 내용이 나오면 공부하면서 진행해봐야겠다. 2. 기본 설정calc_crc = cw.targets.SimpleSerial2._calc_crcprint(calc_crc([0x00, 0x12])) crc를 계산하는 함수다. 현재 대상 장치에서도 인증 정보로 8비트 crc를 사용하고 있다. 여기선 simpleSerial2의 내부 구..
1. 개요 제목에서 알 수 있듯이 이번엔 메모리 덤프다. 이번엔 부트로더 쪽이 표적인 것 같다. 이번에도 꼼꼼하게 진행해보자. 현재 상황에 대한 가정이다. 516261276720736265747267206762206f686c207a76797821 현재 원문을 알 수 없는 이 암호화 데이터를 확보한 상태다. p 명령어를 통해 암호화된 펌웨어를 입력하면 장치는 이를 저장한다. 데이터를 복호화 후 메모리에 저장하는 동작을 수행하는 것으로 추정된다. 복호화 동작을 수행한 다음엔 적절한 에러 코드를 반환한다. 펌웨어 코드가 찾으면 나오긴 하겠지만 자료에서 언급한 것과 같이 이번엔 내부 상황을 알 수 없다고 가정하고 진행해보자. 유일한 전제는 에러 코드가 반환되기 전에 트리거가 발생한다는 것 뿐이다. ..
나는 지금 몹시 화가 나있다. 현재 프로그램의 동작 방식이 jupyter 서버를 생성하고브라우저로 접속해서 허스키와 통신하는 형태인데 접속이 불안정한지 이렇게 갑자기 코드가 안보이거나 연결 자체가 끊어지거나 하는 일이 벌써 몇 차례나 발생했다. 새로고침하면 괜찮아져서 지금까지는 잘 썼는데 글리칭 도중에 죽어버리니 정말 큰 분노가 느껴진다. 빌어먹을 몇시간이 날아간거야 사진 찍으려니 멀쩡하네 개같은거 아무튼 주피터 데스크탑이 있다길래 이걸 써보려고 한다. 적어도 브라우저보다는 안정적으로 연결할 수 있겠지. JupyterLab Desktop 윈도우 파일로 다운받았다. 폴더를 가져오면 일단 잘 열리긴 하는데 코드를 실행하니 모듈이 없다고 나온다. 환경이 맞춰지질 않아서 그런가보다. ..
1. 개요 이번에 시도하는 것은 패스워드 검증 우회다. 펌웨어는 이전과 동일하다. uint8_t password(uint8_t* pw, uint8_t len){ char passwd[] = "touch"; char passok = 1; int cnt; trigger_high(); //Simple test - doesn't check for too-long password! for(cnt = 0; cnt 이번에 시도하는 건 이 부분이다. 패스워드를 입력 후 일치 여부를 반환하는 동작을 한다. reboot_flush()pw = bytearray([0x74, 0x6F, 0x75, 0x63, 0x68]) # correct password ASCII representation..
허스키 튜토리얼은 먼저 읽어봤는데 이미 위스퍼러를 쓸 줄 아는 사람들에게 새롭게 추가된 내용들 위주로 설명해주는 자료였다. 이미 라이트나 프로를 써본 사람을 대상으로 한다고 되어있어서 일단 넘어왔다. course의 fault injection 관련 내용을 먼저 시작할 것이다. 아래 SOLN 파일에는 비어있는 코드 영역에 대한 답이 적혀있다. 하드웨어 설정은 이전과 동일하다. 1. Clock Glitching 이론 설명 첫번째는 클럭 글리칭에 대한 내용이다. 단순 덧셈 루프를 도는 장치에서 오동작을 유발해볼 것이라고 한다. 글리치 생성 방식에 대한 설명이다. Phase Shift를 사용해 두개의 클럭 지연 신호를 만들어내고 둘의 위상 차이에만 신호가 들어간다. 그렇게 생성된 글리치 신호..
두 번째 튜토리얼 1 - Connecting to Hardware.ipynb다. 이번엔 하드웨어 연결 후 통신을 해본다고 한다. 1. Setup Test나와있는 대로 ChipWhisperer Setup Test를 먼저 해보자. 위에는 아까 했던 것들이다. 이제는 하드웨어 테스트다. PLATFORM은 CWHUSKY로 했다. 박스만 컴퓨터와 연결하고 진행했다. 하나씩 실행을 해봤는데 컴파일러 테스트에서 전부 걸렸다. wsl에서는 버전이 다 확인된다. 주피터가 wsl이 아니라 윈도우 셸에서 실행하고 있는 게 아닌가 싶은데.. 아니다 확실하네이거 윈도우 cli에서 실행할 때 나오던 거랑 똑같다. 앞에 wsl 붙여주니까 다 잘 나온다. 장치 인식은 잘 됐고 패키지 설치도 다 확..
chipWhisperer husky가 도착했다. 생각보다 빨리 왔다. 사실 5일인가에 왔는데 그동안 할 게 있어서 바로 작업을 못하고 있었다가 이제 하던게 다 끝나서 오늘부터 시작해보려고 한다. 1. Installing WSL https://chipwhisperer.readthedocs.io/en/latest/windows-install.html 윈도우 환경에서는 wsl이 필요하다. 이건 이미 깔려있으니 넘어가자. 지금 환경은 Ubuntu22.04다. 2. Installing Compilers In WSLsudo apt updatesudo apt install -y build-essential gcc-arm-none-eabi gcc-avr avr-libc 두번째 단계다. 명시된 명령어대로 컴파..
하드웨어 보안을 다룰 때마다 등장하는 위스퍼러를 오늘 드디어 구매하기로 마음 먹었다. chipwhisperer.readthedocs.io구매처는 위 홈페이지에서 모델 별로 확인할 수 있다. plus를 제외하면 모델은 총 네가지다. 그 중에는 허스키가 제일 최신 모델인데 배송비 포함 648달러면 한국 돈으로.. 9..93만원..? 그런데 놀랍게도 다른 모델들도 다 찾아봤는데 이게 제일 싼 편이었다. lite는 starter kit 기준으로 level1이 125만원, level2가 200만원이고 pro는 이제 판매를 안한다. pro는 lite의 하이엔드 모델로 나온거라 구매 가능했더라도 더 저렴하진 않았을 거다. 사실 lite를 사려고 계획했는데 옛날에 만든 거라 제조 단가가..