RSA 공개키 안에 문구를 심어 Let's Encrypt 인증서로 항의한 개발자
- RSA 모듈러스 n의 상위 절반에 ASCII 문구를 심고 q를 n/p로 계산한 뒤 다음 소수로 올리면 유효한 개인키가 나옴. base64로 인코딩된 인증서에서 //// 구간의 문구가 그대로 읽힘
- 실제 maurycyz.com 인증서(Let's Encrypt YR2 서명)에 You dont actually have to pick random private keys, No one checks these things, A certificate authority got away with the number 4 for a year 문구가 삽입됨
- CA가 표준 공개 지수 65537 외 값을 거부해서 e는 건드릴 수 없고, 2048 또는 4096비트 모듈러스가 사용자가 제어하는 유일한 영역임
- 동기는 ACME 갱신 부담과 몇 달마다 만료되는 인증서, 그리고 eMudhra가 공개키로 4를 쓴 사례에 대한 항의임
- 검증은 openssl s_client로 인증서를 받아 sed로 BEGIN/END 블록만 뽑고 grep으로 확인하는 한 줄 명령임
Hacker News 의견들
능동적 공격자는 전부 MITM이야. 보통은 네트워크 경로에 끼어드는 게 아니라 피해자가 자기 트래픽을 돌리게 속이는 거고. 인증 없는 TLS 세션을 secure라고 부를 순 없지.
그 트래픽 돌리게 속인다는 게 실제로 뭐임? VPN 프로파일 설치시키는 건가?
소화전에서 물 새는 거 봤다고 배관 다 뜯어내자는 소리로 들림.
개인키도 검사해야 한다는 뜻인가? 숫자 4만 키보드로 갈겨도 못 맞히게 최소한 확인은 하자는 거지.
불과 몇 년 전만 해도 Verisign EV 인증서에 연 1000달러 넘게 내고 팩스에 전화까지 했어. Let's Encrypt가 쓸 만해졌을 때 다들 좋아했지. 요즘 애들은 좋은 세상인 줄 모름.
그땐 HTTPS 없이도 웹에 뭐 올릴 수 있었잖아. 도메인에 IP에 서버만 있으면 되던 게 지금은 최소 관료주의가 훨씬 커졌어.
브라우저가 HTTPS 안 쓴다고 사이트를 매장시키지도 않았고.
링크된 tom7 논문 엄청 긴데 재밌음. 애플 공증에 연 100달러 뜯기는 얘기 나오는 데서 제일 공감했어.
영상판도 있음. 유튜브에 올라와 있어.
내 사이트 접속할 때 신용카드 훔치는 공격자는 없었다고 확신한다? MITM은 사이트에 뭐든 주입할 수 있으니 확신할 수가 없음. 평문 HTTP에 트래킹이랑 광고 심는 건 수십 년째 일상이고.
tty 모드로 보면 눈이 편함. 학창시절 앰버 VT-220 생각난다.
plaintext^e mod n이 실제로 뭘 하는 건지 모르겠음.
평문을 숫자로 바꿔서 e승 하고 n으로 나눈 나머지를 취하는 거임. ASCII 코드를 이어 붙여 하나의 큰 정수로 만드는 식.
CA 인증서는 self-signed인데, 사용자가 자기가 만든 self-signed는 기본적으로 막히고 누구를 신뢰할지는 남이 정해. eMudhra를 몇 년씩 신뢰하라고 강요당했지.
똑똑한 사용자보다 아닌 사람이 수천 배 많으니까 어쩔 수 없었음. 다만 Let's Encrypt 나오면서 그 논리가 많이 약해졌고.
2014년 Stupid Certificate Tricks랑 거의 같은 아이디어임. 독립적으로 발견한 거겠지.
Let's Encrypt는 인증서당 도메인 100개, 도메인당 256자까지 되니까 서브도메인으로 CT 로그에 kB 단위 데이터를 심을 수 있음. 오프라인 HSM 키로 서명하는 데 쓸 수도 있고.
그거 예전에 이미 한 사람 있음. 제발 하지는 마세요.
AI 방명록은 크롤링하는 LLM을 약화시키려는 의도인가? 실제로 효과가 있는지 궁금하네.