Contents
DNS의 암호화 방법
   2022년06월06일     2분정도면 다 읽어요

서론

오늘은 DNS의 보안에 대해 알아볼게요

참고한 형님들

  • 마크다운 언어
    • https://cizz3007.github.io/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4/%EB%AC%B8%EB%B2%95/markdown/2018/04/08/markdown/
  • TCP 와 UDP 정의 및 차이점
    • https://dump.tistory.com/4369
    • https://jamong1014.tistory.com/37
  • DoH, DoT 등 DNS 용어
    • https://t-okk.tistory.com/86


DNS?

도메인 네임 서비스

  • IP주소를 사용자가 인식할 수 있는 주소(naver등)으로 변환해 주는 역할
  • 이 DNS의 쿼리/응답은 UDP로, 텍스트 전송됨
  • 하단 UDP의 통신 방법을 확인하면 위험하구나~ 를 알 수 있음


UDP 통신?

간단하게 보면 다음 그림과 같다!
img.png
누가 일주일 전에 뿌린 신문에 우연히 맞아서 읽는 것..


TCP와 UDP

간단하게만 비교해 보면

img.png

설명Transport Control ProtocolUser Datagram Protocol
특징신뢰성을 추구하는 프로토콜연속성을 추구하는 프로토콜
세션유무세션을 먼저 설정 후 데이터를 주고 받음세션같은 연결 세팅 없이 그냥 전송
검증데이터가 잘 갔는지 확인할 수 있음(HandShake)최소한의 확인 절차만 거침(UDP CheckSum)
순서전송 순서가 유지됨전송 순서 보장하지 않음
중복중복이 발생하지 않음데이터 중복 발생
속도세션을 설정하는 등 절차가 있어 레이턴시가 큼최소한의 절차만 거쳐서 레이턴시가 적다!
굳이 설명하자면저랑 대화좀 할까요 요청해서 정보를 하나씩 교환하는 느낌길거리에서 누가 날린 신문에 맞아서 읽는 느낌

따라서 UDP는 인증 및 암호화가 없기 때문에 스푸핑(나한테 올 데이터는 아니지만 IP를 변조해서 원래 목적지인것처럼 속여야지!) 공격에 취약하다


다시 본론으로 돌아와서

왜 DNS에 보안이 필요할까?

  • 아까 봤던 것처럼, DNS 쿼리는 UDP로 이루어짐
  • UDP는 인증절차가 허술하다 -> ISP 등지에서 빼 읽을 수 있음


어떻게 암호화할까?

  • DNS over TLS
  • DNS over HTTPS


다음 시간에 계속~ 아직 작성중이라 계속 수정할 예정