Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
dtls — ECDHE 및 PSK 키 교환, AEAD 암호, 연결 ID, 세션 재개, 0-RTT, Encrypted Client Hello를 지원하는 DTLS 1.2 및 1.3의 네이티브 Go 구현입니다. | Kitploit
도구/GitHubGitHub/pion/dtls
General Purpose UtilitiesPacket Sniffing & AnalysisEncryption/Decryption ToolsNetwork SecurityCryptographyUtilities & FrameworksAuthentication
GitHubpion/dtls

dtls

ECDHE 및 PSK 키 교환, AEAD 암호, 연결 ID, 세션 재개, 0-RTT, Encrypted Client Hello를 지원하는 DTLS 1.2 및 1.3의 네이티브 Go 구현입니다.

저장소 보기
71121699시간 14분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
웹사이트
공유


Pion DTLS

DTLS의 Go 구현

Pion DTLS Sourcegraph Widget join us on Discord Follow us on Bluesky
GitHub Workflow Status Go Reference Coverage Status Go Report Card License: MIT


Go 프로그래밍 언어로 구현된 네이티브 DTLS 1.2 및 DTLS 1.3 구현입니다.

장기적인 목표는 전문적인 보안 검토와, 어쩌면 표준 라이브러리(stdlib)에 포함되는 것입니다.

RFC

구현됨

  • RFC 6347: 데이터그램 전송 계층 보안 버전 1.2
  • RFC 9146: DTLS 1.2용 연결 식별자
  • RFC 9147: 데이터그램 전송 계층 보안(DTLS) 프로토콜 버전 1.3
  • RFC 9849: TLS 암호화 클라이언트 헬로
  • RFC 9853: DTLS 1.2 및 1.3용 반환 라우팅 가능성 검사
  • RFC 5705: 전송 계층 보안(TLS)용 키 자료 내보내기
  • RFC 7627: 전송 계층 보안(TLS) - 세션 해시 및 확장 마스터 시크릿 확장
  • RFC 7301: 전송 계층 보안(TLS) - 애플리케이션 계층 프로토콜 협상 확장

기능

Pion DTLS는 DTLS 1.2와 DTLS 1.3을 지원합니다. 기여와 버그 수정을 환영합니다.

현재 기능

  • DTLS 1.2 및 DTLS 1.3 클라이언트/서버
  • ECDHE(curve25519, nistp256, nistp384) 및 PSK를 통한 키 교환
  • psk_ke 및 psk_dhe_ke를 지원하는 DTLS 1.3 외부 PSK, SHA-256 및 SHA-384 지원
  • DTLS 1.3은 서버 선택을 위해 핸드셰이크당 여러 PSK ID를 제공
  • 핸드셰이킹 중 패킷 손실 및 재정렬 처리
  • 키 내보내기 (RFC 5705)
  • Resume을 통한 DTLS 1.2 및 DTLS 1.3 연결 상태 직렬화 및 복원
  • DTLS 1.3 세션 티켓 재개 및 선택적 0-RTT 조기 데이터
  • WithECH로 구성되는 DTLS 1.3 암호화된 클라이언트 헬로(ECH) (RFC 9849)
  • 확장 마스터 시크릿 확장 (RFC 7627)
  • ALPN 확장 (RFC 7301)
  • DTLS 1.2 및 DTLS 1.3용 연결 ID(CID), 피어 주소 변경 전반에 걸친 리스너 라우팅 포함
  • DTLS 1.3 핸드셰이크 후 CID 업데이트 및 경로 마이그레이션을 위한 예비 CID
  • DTLS 1.2 및 DTLS 1.3용 반환 라우팅 가능성 검사(RRC) (RFC 9853)
  • Conn.AddPath, Path.Probe, Path.Switch를 사용한 DTLS 1.3 로컬 경로 프로빙 및 마이그레이션
  • Conn.UpdateKeys를 사용한 DTLS 1.3 트래픽 키 업데이트

지원되는 암호

DTLS 1.3: 인증서 및 PSK
  • TLS_AES_128_GCM_SHA256 (RFC 8446)
  • TLS_AES_256_GCM_SHA384 (RFC 8446)
  • TLS_CHACHA20_POLY1305_SHA256 (RFC 8446)
DTLS 1.2: ECDHE
  • TLS_ECDHE_ECDSA_WITH_AES_128_CCM (RFC 6655)
  • TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 (RFC 6655)
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (RFC 5289)
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (RFC 5289)
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (RFC 5289)
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (RFC 5289)
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (RFC 8422)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (RFC 8422)
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (RFC 7905)
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (RFC 7905)
DTLS 1.2: PSK
  • TLS_PSK_WITH_AES_128_CCM (RFC 6655)
  • TLS_PSK_WITH_AES_128_CCM_8 (RFC 6655)
  • TLS_PSK_WITH_AES_256_CCM_8 (RFC 6655)
  • TLS_PSK_WITH_AES_128_GCM_SHA256 (RFC 5487)
  • TLS_PSK_WITH_AES_128_CBC_SHA256 (RFC 5487)
  • TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 (RFC 7905)
DTLS 1.2: ECDHE 및 PSK
  • TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 (RFC 5489)
  • TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 (RFC 7905)

제외된 기능

  • DTLS 1.0
  • 재협상
  • 압축

Pion DTLS

이 라이브러리는 기본적으로 DTLS 1.2 및 DTLS 1.3을 활성화하며, DTLS 1.3을 우선합니다. 연결을 DTLS 1.2로 제한하려면 WithMaxVersion(protocol.Version1_2)를 사용하고, DTLS 1.3을 요구하려면 WithMinVersion(protocol.Version1_3)을 사용하세요.

127.0.0.1:4444에서 수신 대기하는 DTLS 서버의 경우

go run examples/listen/selfsign/main.go

127.0.0.1:4444에 연결하는 DTLS 클라이언트의 경우

go run examples/dial/selfsign/main.go

OpenSSL

Pion DTLS는 자기 자신 및 OpenSSL에 연결할 수 있습니다.

  // Generate a certificate
  openssl ecparam -out key.pem -name prime256v1 -genkey
  openssl req -new -sha256 -key key.pem -out server.csr
  openssl x509 -req -sha256 -days 365 -in server.csr -signkey key.pem -out cert.pem

  // Use with examples/dial/selfsign/main.go
  openssl s_server -dtls1_2 -cert cert.pem -key key.pem -accept 4444

  // Use with examples/listen/selfsign/main.go
  openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -debug -cert cert.pem -key key.pem

DTLS 1.3 재개 및 조기 데이터

DTLS 1.3은 선택적 0-RTT 조기 데이터와 함께 세션 티켓 재개를 지원합니다. 재개는 psk_dhe_ke(임시 ECDHE를 사용하는 PSK)만 허용합니다.

재개 예제는 인증서로 인증된 첫 연결, 암호화된 세션 저장, 그리고 재개 및 선택적 조기 데이터를 사용하는 후속 연결을 보여줍니다. 실행 방법과 0-RTT를 위한 세션 저장소의 일회용 Claim 요구 사항은 해당 README를 참조하세요.

State/Resume API는 새로운 핸드셰이크 없이 설정된 DTLS 1.3 연결을 복원하는 것도 지원합니다. Resume을 참조하세요.

PSK와 함께 사용하기

DTLS 1.3은 SHA-256 또는 SHA-384를 사용하는 psk_ke(PSK 전용) 및 psk_dhe_ke (임시 ECDHE를 사용하는 PSK) 방식의 외부 PSK를 지원합니다. 클라이언트는 핸드셰이크마다 여러 PSK ID를 제공하여 서버가 선택하도록 할 수 있습니다.

PSK 예제는 기본적으로 DTLS 1.3을 사용하며, TLS_AES_128_GCM_SHA256을 사용합니다.

Pion DTLS

go run examples/listen/psk/main.go
go run examples/dial/psk/main.go

DTLS 1.2를 TLS_PSK_WITH_AES_128_CCM_8과 함께 사용하려면 두 곳 모두에 -dtls12를 전달하세요:

go run examples/listen/psk/main.go -dtls12
go run examples/dial/psk/main.go -dtls12

OpenSSL

이 OpenSSL DTLS 1.2 명령을 사용할 때는 -dtls12 옵션과 함께 Pion 예제를 실행하세요.

  // Use with examples/dial/psk/main.go -dtls12
  openssl s_server -dtls1_2 -accept 4444 -nocert -psk abc123 -cipher PSK-AES128-CCM8

  // Use with examples/listen/psk/main.go -dtls12
  openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -psk abc123 -cipher PSK-AES128-CCM8

커뮤니티

Pion은 Discord에서 활발한 커뮤니티를 운영하고 있습니다.

프로젝트 업데이트와 중요한 WebRTC 소식을 확인하려면 Pion Bluesky 또는 Pion Twitter를 팔로우하세요.

우리는 언제나 여러분의 프로젝트를 지원할 준비가 되어 있습니다. 만들고 싶은 것이 있다면 언제든 연락해 주세요! 상업적 지원이 필요하거나 공개적인 방법을 사용하고 싶지 않다면 [email protected]로 연락하실 수 있습니다.

기여하기

이 프로젝트를 가능하게 만드는 놀라운 사람들의 그룹에 참여하려면 기여 위키를 확인하세요.

도구 다운로드