From d14b0b1f09b1a28350c25a87b981b66cbed107d4 Mon Sep 17 00:00:00 2001 From: jay817 Date: Sun, 28 Sep 2025 01:38:35 +0900 Subject: [PATCH] Add security/README.md --- security/README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 security/README.md diff --git a/security/README.md b/security/README.md new file mode 100644 index 0000000..c9cfffb --- /dev/null +++ b/security/README.md @@ -0,0 +1,24 @@ +# DNS 0x20 인코딩 (DNS Case Randomization) +``` +캐시 포이즈닝 공격 방어 + +DNS 쿼리 ID는 16비트(65,536개)로 예측 가능 +공격자가 가짜 응답을 보내서 DNS 캐시를 오염시킬 수 있음 +대소문자 랜덤화로 추가 엔트로피 제공 (2^도메인길이) +쿼리 고유성 증가 + +원본: worker.yauk.tv +랜덤화: workER.YAuK.TV, WORker.yauk.TV, etc. + +같은 도메인이라도 매번 다른 대소문자로 쿼리 +공격자가 정확한 케이스를 맞추기 어려워짐 +RFC 문서 + +RFC 1035: DNS는 case-insensitive +RFC 5452: DNS 0x20 보안 확장 표준 +실제 구현체들 +Cloudflare, Google DNS: 기본적으로 0x20 사용 +BIND: use-v4-udp-ports, use-v6-udp-ports 옵션 +Unbound: use-caps-for-id 옵션 +그래서 DNS 서버는 항상 case-insensitive하게 처리해야 합니다. 이는 보안 기능이 아니라 DNS 표준 준수입니다. +``` \ No newline at end of file