Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
camel-pqc-tls — Apache Camel을 사용한 포스트퀀텀 암호화(PQC) TLS 1.3 예제: JDK 21(BouncyCastle) 및 JDK 27(네이티브)에서 X25519MLKEM768 하이브리드 키 교환 | Kitploit
도구/GitHubGitHub/oscerd/camel-pqc-tls
Network SecurityCryptographyLearning & EducationCurated Resources
GitHuboscerd/camel-pqc-tls

camel-pqc-tls

Apache Camel을 사용한 포스트퀀텀 암호화(PQC) TLS 1.3 예제: JDK 21(BouncyCastle) 및 JDK 27(네이티브)에서 X25519MLKEM768 하이브리드 키 교환

저장소 보기
213개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Apache Camel을 사용한 포스트퀀텀 TLS

이 저장소에는 Apache Camel을 사용하여 포스트퀀텀 암호화(PQC) TLS 1.3 핸드셰이크를 시연하는 세 가지 예제가 포함되어 있으며, X25519MLKEM768 하이브리드 키 교환을 사용합니다.

X25519MLKEM768은 기존의 X25519 타원 곡선 Diffie-Hellman과 포스트퀀텀 격자 기반 키 캡슐화 메커니즘인 ML-KEM-768(NIST FIPS 203)을 결합합니다. 두 알고리즘이 함께 실행되므로 하나가 깨지더라도 보안이 유지됩니다.

예제

예제JDKTLS 공급자방식
pqc-ssl-contextJDK 27SunJSSE(JDK 네이티브)JEP 527이 JDK 기본 제공 TLS 스택에 PQC 명명된 그룹을 추가
pqc-kem-jdk24JDK 24BouncyCastle JSSE 1.83PQC TLS용 BCJSSE, JDK는 JEP 496을 통해 네이티브 ML-KEM 기본 요소를 보유
pqc-ssl-context-jdk21JDK 21BouncyCastle JSSE 1.83BCJSSE가 SunJSSE를 대체하여 오늘날 PQC TLS 지원 제공

세 예제 모두 camel.ssl.* 속성만으로 구성되며, 포스트퀀텀 키 교환을 위해 X25519MLKEM768을 사용하는 자체 포함(self-contained) TLS 1.3 핸드셰이크를 수행합니다. 이는 시작 시 검증되며 REST 엔드포인트를 통해 필요할 때마다 사용할 수 있습니다.

차이점

JDK 27 네이티브(pqc-ssl-context)

JDK 27에서 JEP 527을 통해 PQC TLS 지원을 얻는 JDK 기본 제공 SunJSSE 공급자를 사용합니다.

  • PQC는 camel.ssl.namedGroups=X25519MLKEM768,x25519을 통해 구성
  • 자체 서명 인증서 자동 생성(camel.ssl.selfSigned=true)
  • REST 엔드포인트는 8443 포트에서 HTTPS로 제공
  • 명명된 그룹은 SSLParameters.setNamedGroups()(표준 JDK API)을 통해 설정

JDK 24 + BouncyCastle(pqc-kem-jdk24)

BouncyCastle의 JSSE 공급자(BCJSSE)를 사용하여 JDK 24에 PQC TLS 지원을 제공합니다. JDK 24에는 독립형 암호화 기본 요소로 네이티브 ML-KEM이 포함되어 있지만(JEP 496), TLS 스택에서는 PQC 명명된 그룹을 노출하지 않습니다. BCJSSE가 이러한 격차를 해소합니다.

  • PQC는 camel.ssl.provider=BCJSSE 및 camel.ssl.namedGroups=X25519MLKEM768,secp256r1을 통해 구성
  • 자체 서명 인증서 자동 생성(camel.ssl.selfSigned=true)
  • REST 엔드포인트는 8443 포트에서 HTTPS로 제공
  • 추가 /api/verify-kem 엔드포인트는 교차 공급자 상호 운용성 테스트와 함께 JDK 24의 네이티브 javax.crypto.KEM API를 시연
  • BouncyCastle 공급자를 등록하려면 부트스트랩 클래스가 필요

JDK 21 + BouncyCastle(pqc-ssl-context-jdk21)

BouncyCastle의 JSSE 공급자(BCJSSE)를 사용하여 JDK 27을 기다리지 않고 JDK 21에 PQC TLS 지원을 제공합니다.

  • PQC는 camel.ssl.provider=BCJSSE 및 camel.ssl.namedGroups=X25519MLKEM768,secp256r1을 통해 구성
  • 자체 서명 인증서 자동 생성(camel.ssl.selfSigned=true)
  • REST 엔드포인트는 8443 포트에서 HTTPS로 제공
  • BouncyCastle 공급자를 등록하고 jdk.tls.disabledAlgorithms에서 ECDH를 제거하려면 부트스트랩 클래스가 필요

나란히 비교

사전 요구 사항

  • Maven 3.9+
  • 로컬 Maven 저장소에 설치된 Apache Camel 4.19.0-SNAPSHOT(또는 이후 버전)
  • 네이티브 예제용 JDK 27 EA, JDK 24 예제용 JDK 24, JDK 21 예제용 JDK 21+

빠른 시작

JDK 27 예제

root@kitploit:~
cd pqc-ssl-context
sdk use java 27.ea.11-open
mvn clean compile exec:exec
curl -k https://localhost:8443/api/verify-pqc

JDK 24 예제

root@kitploit:~
cd pqc-kem-jdk24
sdk use java 24.0.1-tem
mvn clean compile exec:exec
curl -k https://localhost:8443/api/verify-pqc
curl -k https://localhost:8443/api/verify-kem

JDK 21 예제

root@kitploit:~
cd pqc-ssl-context-jdk21
sdk use java 21.0.10-tem
mvn clean compile exec:exec
curl -k https://localhost:8443/api/verify-pqc

세 예제 모두 PQC TLS 핸드셰이크가 성공하면 "pqcVerified": true를 반환합니다.

JDK 호환성

도움말 및 기여

Camel 사용 중 문제가 발생하거나 피드백이 있다면 알려주세요.

또한 기여자를 환영하므로 참여해 보세요 :-)

Camel 라이더 여러분!

도구 다운로드
항목JDK 27 네이티브JDK 24 + BouncyCastleJDK 21 + BouncyCastle
JDK 요구 사항JDK 27 EAJDK 24+JDK 21+
TLS 공급자SunJSSEBCJSSE 1.83BCJSSE 1.83
PQC 메커니즘JEP 527(기본 제공)BouncyCastle TLS 라이브러리BouncyCastle TLS 라이브러리
네이티브 ML-KEM(KEM API)예예(JEP 496)아니요
구성camel.ssl.* 속성camel.ssl.* 속성camel.ssl.* 속성
인증서 관리camel.ssl.selfSigned=truecamel.ssl.selfSigned=truecamel.ssl.selfSigned=true
REST 포트8443(HTTPS)8443(HTTPS)8443(HTTPS)
추가 종속성없음(JDK 네이티브)bcprov, bctlsbcprov, bctls
JDK 버전ML-KEM KEM APITLS의 PQC방식
21아니요예(BouncyCastle 통해)pqc-ssl-context-jdk21 - BCJSSE가 PQC TLS 지원 제공
24예(JEP 496)예(BouncyCastle 통해)pqc-kem-jdk24 - TLS용 BCJSSE, JDK는 네이티브 ML-KEM 기본 요소 보유
27예예(네이티브)pqc-ssl-context - JEP 527이 SunJSSE에 PQC 추가