HN에 올라올 줄은 몰랐는데, 이제 mitmproxy 12.3이 출시됨. 릴리스 블로그도 공개했으며, 사용법은 --emudhra 를 넘기면 끝임.
개인 키를 포함해 두는 대신 요청마다 통신 중에 무차별 대입으로 풀게 하지 않은 게 아쉬울 정도임.
현재는 emSign 루트 경로를 사용하는 것 같은데, AAA 루트 경로도 다른 상황에서 유용함. AAA는 아주 오래전부터 루트 저장소에 있었지만 2025년 2월 이후의 저장소에서는 HTTPS 용도로 비활성화됨. 반면 emSign은 약 2018년부터 포함됐고 2026년 10월에 제거됨.
오래된 IoT 기기를 해킹한다면, 2018년 이후 업데이트하지 않은 기기는 AAA 경로가, 2025년 2월 이후 업데이트하지 않은 기기는 두 경로 모두가, 2026년 10월 이후 업데이트하지 않은 기기는 emSign 경로가 통할 것으로 보임.
이 커밋이 HN에 올라올 줄 알았다면 처음부터 통합을 한 번에 마쳤을 것임. 이 PR에서 AAA 루트 경로를 추가함.
두 경로 중 하나를 선택할 수 있도록 AAA 루트 경로를 추가하는 MR이 열려 있음.
제대로 이해했다면, 이 방법으로 스마트 TV와 제조사 사이의 통신을 들여다볼 수 있는 건가?
스마트 TV가 여전히 eMudhra를 신뢰한다면 가능함. 그 신뢰를 철회하는 업데이트를 TV가 받아 가지 못하도록 각별히 주의해야 함.
가능할 수도 있지만, 제조사에 따라 전체 루트 인증서 목록을 넣지 않거나 사설 인증기관을 쓰거나 인증서 고정을 적용할 수 있음.
출시된 지 몇 년 이내인 TV이고, 인증서 폐기 목록(CRL) 을 확인하지 않으며, 아직 패치되지 않았다면 가능함.
이 인증서는 최근에야 신뢰받기 시작해서, 어느 정도 새 제품이면서도 너무 최신은 아닌 기기만 취약한 줄 알았는데 작동 방식을 잘못 이해한 건가?
결함이 워낙 심각해서 서명에 사용된 루트 인증서인 emSign ECC Root CA – G3 자체가 신뢰 저장소에서 제거되고 있음. 터무니없이 약한 키 8개가 생성된 건 확인됐지만, 그보다 조금 덜 약하면서도 여전히 허용할 수 없는 키가 전혀 없었다고는 확신할 수 없음.
예를 들어 엔트로피가 80비트인 CA 키를 발급했다면, 무차별 대입에 공개 이후 지금까지보다 더 긴 시간이 걸리더라도 안전하다고 볼 수는 없음. 원래는 엔트로피가 384비트여야 함. 따라서 해당 루트가 서명한 모든 것, 어쩌면 그 CA가 서명한 모든 것을 신뢰할 수 없음. 기억하기로 G3 루트는 2018년에 만들어졌으므로 잠재적으로 노출된 기기가 많음.
실제로 탈옥, 역공학, 중간자 공격에 얼마나 큰 도움이 되는 건가?
클라이언트가 시작하면서 서버에 광고를 요청하고, 서버가 최신 광고를 돌려주는 상황을 생각하면 됨. 어떤 이유로든 그 광고가 코드를 실행할 수 있다면, 이제 클라이언트에 대한 원격 코드 실행(RCE) 이 가능해짐.
나도 궁금함. 중간자 공격이 탈옥으로 이어지는 과정도 잘 이해하지 못하겠음.
유출된 eMudhra CA 키 6개로 프록시를 만들었음. 전체 8개 중 2개는 TLS가 아닌 코드 서명용임. 처음에는 해당 커밋처럼 d=4인 키 하나만 사용했지만 아무 데도 통하지 않는 듯했고, 6개를 전부 추가하자 일부 통신을 가로챌 수 있게 됨.
주된 목적은 영향받는 IoT 기기를 확인하고 보호하는 것이었고, 하루 종일 작업한 터라 트래픽을 들여다보려던 것은 아님. 그래서 프록시는 통신을 가로챈 뒤, 유출된 키를 쓰지 않는 새로운 TLS 연결로 상위 서버에 전달하기만 했음.
가지고 있는 구형 Android 휴대전화 몇 대에서 앱 통신을 들여다보기에 좋겠음. 인증서 고정을 쓰지 않기를 바람.