TLS / SSL 개요
기본적으로 클라이언트는 TCP를 통해 일반 텍스트를 사용하여 Solace PubSub + 이벤트 브로커와 데이터를 교환하며 교환되는 데이터는 압축되지 않습니다.
그러나 클라이언트는 TLS (Transport Layer Security) / SSL (Secure Sockets Layer) 암호화 연결을 사용하여 이벤트 브로커에 연결할 수 있습니다. 이를 통해 TCP를 통한 일반 텍스트 대신 단일 TCP 연결을 통한 TLS / SSL을 사용하여 이벤트 브로커와 비 압축 SMF (Solace Message Format) 데이터 또는 SEMP (Solace Element Management Protocol) 데이터를 교환 할 수 있습니다.
이벤트 브로커에 대한 TLS / SSL 암호화 연결 사용은 다음을 제공합니다.
- 기밀성 — 메시지는받는 사람 만받을 수 있습니다.
- 메시지 무결성 — 메시지를 보낸 후 수정할 수 없습니다
- 서버 인증 — 연결된 응용 프로그램은 통신중인 서버가 자신이 믿는 서버인지 확인할 수 있습니다.
- 클라이언트 인증 — 선택적 클라이언트 인증서를 클라이언트 인증의 형태로 사용할 수 있습니다 (자세한 내용은 클라이언트 인증 개요 참조 ).
다음 유형의 응용 프로그램은 이벤트 브로커에 대한 TLS / SSL 암호화 연결을 설정할 수 있습니다.
- 메시지를 게시 및 / 또는받는 클라이언트 응용 프로그램
기본적으로 클라이언트 응용 프로그램이 이벤트 브로커에 연결하고 세션을 작성할 때 해당 세션은 보안되지 않습니다. 그러나 클라이언트 응용 프로그램은 선택적으로 이벤트 브로커에 대한 TLS / SSL 암호화 클라이언트 연결을 설정하기 위해 신뢰할 수있는 서버 인증서가 필요한 보안 세션을 작성할 수 있습니다.
클라이언트 애플리케이션은 Solace 메시징 API를 사용하여 이벤트 브로커에 대한 보안 연결을 설정할 수 있습니다.
- SEMP 요청 및 응답을 통해 이벤트 브로커를 관리하고 모니터링하는 네트워크 관리 애플리케이션.
- 네트워크 관리 응용 프로그램이 Solace 메시징 API를 사용하여 세션을 통해 클라이언트 연결을 설정하는 SEMP Request Over Message Bus 서비스를 사용하는 경우 SEMP 요청 및 응답을 이벤트 브로커 메시지 버스를 통해 보낼 수 있습니다. 보안 세션은 클라이언트 응용 프로그램에서 사용하는 것과 같은 방식으로 설정할 수 있습니다.
- 네트워크 관리 응용 프로그램이 HTTP를 통한 SEMP 요청 서비스를 사용하는 경우, 이벤트 브로커의 포트에 대한 TCP 연결은 응용 프로그램이 HTTP로 랩핑 된 SEMP 요청을 이벤트 브로커의 관리 인터페이스로 보내고 응답을받을 수 있도록합니다. HTTP를 통한 SEMP 요청 서비스의 경우, 서버 인증서가 이벤트 브로커에 설정되고 TLS / SSL 보안 포트가 지정되고 (기본값은 443) HTTPS URL 스킴이 사용되면 보안 연결을 작성할 수 있습니다.
SSL 암호화는 메시지 VPN 복제 및 복제 Config-Sync 기능으로 설정된 메시지 VPN 브리지 및 브리지에서도 사용할 수 있습니다. 브릿지 링크에서 암호화를 사용하면 브릿지를 통한 이벤트 브로커 간의 통신이 안전합니다.
: 데이터 암호화 및 암호 해독에는 처리 능력이 필요하므로 TLS / SSL 암호화를 활성화하면 성능이 저하 될 수 있습니다.
암호 스위트
다음 암호화 알고리즘은 TLS / SSL 암호화 연결 수명 동안 사용됩니다.
- 키 설정 —이 알고리즘은 세션 동안 데이터 페이로드를 암호화하고 해독하는 데 사용할 대칭 키를 교환하거나 동의하는 데 사용됩니다. 예 : RSA, DH (Diffie-Hellman), DHE (Ephemeral Diffie-Hellman) 및 ECDH (Elliptic Curve Diffie-Hellman).
- 인증 —이 알고리즘은 클라이언트 응용 프로그램과 서버간에 전달 된 인증서가 사용하는 디지털 서명입니다. 예 : RSA 및 DSS (Digital Signature Standard).
- 암호화 —이 알고리즘은 보안 세션에서 전달 된 페이로드를 암호화하고 해독합니다. 예 : RC4, 3DES CBC 및 AES (Advanced Encryption Standard).
- 다이제스트 —이 알고리즘은 메시지 무결성을 유지하는 데 사용됩니다. 메시지를 변경하면 다이제스트가 유효하지 않게됩니다. 예 : SHA1, MD5
이 4 가지 암호화 알고리즘의 조합을 암호 모음이라고합니다.
암호화 스위트 이벤트 브로커 지원의 전체 목록은 지원되는 암호화 스위트를 참조하십시오 .
인바운드 연결을위한 암호 제품군
이벤트 브로커는 다음 인바운드 TLS 연결 유형 각각에 대해 별도의 암호 스위트 목록을 유지 보수합니다.
- SEMP를 사용하여 이벤트 브로커를 관리하는 네트워크 관리 애플리케이션 (관리 연결)
- 메시지를 발행하거나 수신하기 위해 이벤트 브로커에 연결하는 클라이언트 애플리케이션 (메시지 백본 연결)
모든 인바운드 관리 및 메시지 백본 연결을위한 암호화 제품군은 각 암호화 제품군과 관련된 우선 순위에 따라 선택됩니다.
아웃 바운드 연결을위한 암호 제품군
이벤트 브로커는 다음의 아웃 바운드 TLS 연결 유형 각각에 대해 별도의 우선 순위가 지정된 암호 스위트 목록을 유지 보수합니다.
- 메시지 VPN 및 브리지 연결
- 복제 브리지 연결
- 구성 동기화 브리지 연결
- 다중 노드 라우팅 링크
또한 이벤트 브로커는 인바운드 관리 연결에 사용하는 아웃 바운드 LDAP 연결에 동일한 암호 스위트 목록을 사용합니다.
모든 아웃 바운드 연결 (LDAP 연결 포함)의 암호화 제품군은 해당하는 각 암호화 제품군 목록에 구성된 우선 순위에 따라 선택됩니다.
SSH 연결을위한 암호
이벤트 브로커는 모든 SSH, SCP 및 SFTP 연결에 대한 암호 목록을 유지 관리합니다. 암호화 된 연결을 위해 암호 목록은 암호 제품군 목록과 비슷한 기능을합니다. 그러나 키 설정, 인증 및 다이제스트 알고리즘은 사용되지 않습니다. 암호 이벤트 브로커 지원의 전체 목록은 지원되는 암호를 참조하십시오 .
모든 SSH 연결의 암호는 각 암호와 관련된 우선 순위에 따라 선택됩니다.
지원되는 암호 스위트
다음 표는 인바운드 및 아웃 바운드 연결을 지원하는 전체 암호화 스위트 이벤트 브로커 목록을 보여줍니다.
지원되는 암호 스위트
암호 스위트 |
주요 설립 |
입증 |
암호화 |
요람 |
ECDHE-RSA-AES256-GCM-SHA384 |
ECDH |
RSA |
AES GCM (256) |
SHA2 |
ECDHE-RSA-AES256-SHA384 |
ECDH |
RSA |
AES CBC (256) |
SHA2 |
ECDHE-RSA-AES256-SHA |
ECDH |
RSA |
AES CBC (256) |
SHA1 |
AES256-GCM-SHA384 |
RSA |
RSA |
AES GCM (256) |
SHA2 |
AES256-SHA256 |
RSA |
RSA |
AES CBC (256) |
SHA2 |
AES256-SHA |
RSA |
RSA |
AES CBC (256) |
SHA1 |
ECDHE-RSA-DES-CB3-SHA |
ECDH |
RSA |
3DES CBC (168) |
SHA1 |
DES-CBC3-SHA |
RSA |
RSA |
3DES CBC (168) |
SHA1 |
ECDHE-RSA-AES128-GCM-SHA256 |
ECDH |
RSA |
AES GCM (128) |
SHA2 |
ECDHE-RSA-AES128-SHA256 |
ECDH |
RSA |
AES CBC (128) |
SHA2 |
ECDHE-RSA-AES128-SHA |
ECDH |
RSA |
AES CBC (128) |
SHA1 |
AES128-GCM-SHA256 |
RSA |
RSA |
AES GCM (128) |
SHA2 |
AES128-SHA256 |
RSA |
RSA |
AES CBC (128) |
SHA2 |
AES128-SHA |
RSA |
RSA |
AES CBC (128) |
SHA1 |
: TLS 1.2를 사용하는 경우 인증서 키의 길이는 1024 비트 이상이어야합니다. 1024 비트보다 짧은 키를 사용하면 "RSA 키에 비해 너무 큰 다이제스트"오류가 발생할 수 있습니다.
지원되는 암호
다음 표는 SSH 연결을 지원하는 전체 암호 이벤트 브로커 목록을 보여줍니다.
지원되는 암호암호
aes128-ctr |
aes192-ctr |
aes256-ctr |
aes128-gcm@openssh.com |
aes256-gcm@openssh.com |
chacha20-poly1305@openssh.com |
aes128-cbc |
3des-cbc |
복어 cbc |
cast128-cbc |
aes192-cbc |
aes256-cbc |
암호 및 암호 제품군 목록 구성
지정된 암호 또는 암호 제품군을 사용하지 않도록 각 기본 암호 및 암호 제품군 목록을 구성하거나 지정된 암호 또는 암호 제품군과 관련된 우선 순위를 변경하도록 각 목록을 재정렬 할 수 있습니다.
인바운드 연결을위한 암호화 스위트 목록을 구성하려면 인바운드 연결을 위한 암호화 스위트 구성을 참조하십시오 .
아웃 바운드 연결을위한 암호화 제품군 목록을 구성하려면 다음 섹션을 참조하십시오.
- 메시지 VPN 및 브릿지 연결에 대해서는 VPN 브릿지 구성을 참조하십시오 .
- 복제 브리지 및 복제 Config-Sync 연결에 대해서는 시스템 수준 복제 설정 구성을 참조하십시오 .
- LDAP 연결에 대해서는 관리 연결을위한 Cipher Suites 구성을 참조하십시오 . 이벤트 브로커는 LDAP 및 관리 연결에 동일한 암호 스위트 목록을 사용합니다.
- 다중 노드 라우팅 링크는 다중 노드 라우팅 관리를 참조하십시오 .
SSH 연결을위한 구성 암호에, 참조 SSH 연결을위한 구성 암호 .
지원되는 서명 알고리즘
체인의 모든 인증서가 다음 서명 알고리즘 중 하나로 서명 된 경우 이벤트 브로커는 인증서 체인의 유효성을 검증 할 수 있습니다.
지원되는 서명 알고리즘서명 알고리즘
rs2withRSAE 암호화 |
rs4withRSAE 암호화 |
rs5withRSAE 암호화 |
shawithRSAE 암호화 |
sha1withRSAE 암호화 |
sha1withDSAE 암호화 |
RSAE 암호화 |
DSAE 암호화 |
RSAE 암호화 |
DSAE 암호화 |
RSAE 암호화 |
RSAE 암호화 |
서버 인증서 인증 프로세스
다음 프로세스는 클라이언트 또는 관리 애플리케이션이 이벤트 브로커에 연결하고 보안 연결을 설정하기 위해 인증서 유효성 검증이 필요한 경우에 사용됩니다.
TLS / SSL을 사용한 인증서 유효성 검사 프로세스
- 클라이언트 또는 관리 애플리케이션은 이벤트 브로커의 TLS / SSL 수신 포트에 연결됩니다.
- 이벤트 브로커는 서버 인증서로 클라이언트 또는 관리 애플리케이션에 응답합니다.
활성 / 활성 중복 구성을 사용하는 경우 중복 쌍의 각 이벤트 브로커에는 고유 한 공통 이름을 가진 자체 서버 인증서가 있어야합니다. 활성 / 대기 중복 구성을 사용하는 경우 두 메이트는 기본 이벤트 브로커의 이름을 공통 이름으로 사용하는 서버 인증서를 공유 할 수 있습니다.
- 클라이언트 또는 관리 응용 프로그램은 서버 인증서가 유효한지, 예상대로 이름이 지정되었으며 신뢰할 수있는 루트 인증서에서 발급 한 것인지 확인합니다.
- 유효성 검사에 성공하면 클라이언트 또는 관리 응용 프로그램이 응답하여 핸드 셰이크를 계속 완료합니다.
인증 기관
이벤트 브로커는 클라이언트가 인증 기관 (CA)이 발행 한 유효한 클라이언트 인증서를 제시하여 TLS를 통해 인증 할 수 있도록합니다. 보안 프로토콜 교환 중에 확보 된 클라이언트의 인증서를 확인할 수 있도록 참여하는 각 이벤트 브로커를 신뢰할 수있는 CA 목록으로 구성해야합니다. 클라이언트 인증서 체인의 각 CA를 신뢰할 수있는 루트 인증서로 구성하는 프로세스는 인증에 필요하며 CA를 신뢰하는 필수 단계입니다. 인증서 해지 확인과 함께 CA를 사용하도록 이벤트 브로커를 구성 할 수도 있습니다.
인증서 해지 확인
클라이언트 인증서의 해지 상태 확인은 버전 8.2.0부터 Solace PubSub + 어플라이언스에서 지원되며 버전 8.7.0부터 Solace PubSub + 소프트웨어 이벤트 브로커에서 지원됩니다. 이 릴리스 이전에 클라이언트 인증서의 유효성을 검증하는 동안 이벤트 브로커는 인증서의 해지 상태를 확인하지 않았습니다.
이벤트 브로커는 클라이언트가 인증을 시도 할 때 사용하는 인증서의 폐기 상태를 확인할 수 있습니다. 인증서 해지는 메시지 별 VPN 옵션을 재정 의하여 이벤트 브로커별로 구성 할 수 있습니다. 해지 확인 결과를 무시하거나 알 수없는 해지 상태의 인증서 인증을 허용하도록 메시지 VPN 재정의를 구성 할 수 있습니다. 자세한 내용은 메시지 VPN 재정의 구성을 참조하십시오 .
인증서 체인의 해지 상태는 다음 중 하나 일 수 있습니다.
- 유효 — 체인의 모든 인증서가 해지 및 유효한지 확인했습니다.
- 알 수 없음 — 체인에서 하나 이상의 인증서를 확인할 수 없습니다. 그러나 인증서가 해지되지 않고 CA에 알려지지 않은 경우 OCSP가 알 수 없음을 반환 할 수 있습니다.
- 해지 됨-체인에있는 하나 이상의 인증서가 해지되었습니다.
인증서 해지 확인을 사용하면 인증서 체인의 상태를 알 수없는 몇 가지 잠재적 조건이 있습니다. 아래 정보는 CRL, OCSP 또는 OCSP-CRL 인증서 해지 확인이 활성화 된 경우의 조건을 설명합니다.
-
CRL— 캐시 된 CRL 사본을 사용할 수 없거나 CRL이 만료 된 경우.
-
OCSP— 이벤트 브로커가 기본 제한 시간 내에 OCSP 응답자로부터 응답을받지 못하거나 응답 서명자가 진짜 응답자로 인식되지 않는 경우. 응답자는 특정 공통 이름으로 발행 된 인증서로 OCSP 응답자에 서명해야하며 적절한 OCSP 플래그를 포함해야합니다.
-
OCSP-CRL-OCSP-CRL을 사용하는 경우 다음 조건으로 인해 인증서의 해지 상태를 알 수 없습니다.
-
OCSP 응답 서명자는 진짜 응답자로 인식되지 않습니다.
-
이벤트 브로커가 기본 제한 시간 내에 OCSP 응답자로부터 응답을 수신하지 않으며 캐시 된 CRL 사본을 사용할 수 없거나 CRL이 만료 된 경우.
-
CRL, OCSP, OCSP-CRL certficate 해지 확인에 대한 자세한 내용은 인증서 해지 확인 방법을 참조하십시오.
인증서 해지 확인을 지원하는 클라이언트
아래 표는 인증서 해지 확인을 지원하는 클라이언트 목록을 보여줍니다.
인증서 해지 확인을 지원하는 클라이언트
인증 소스인증서 해지 확인 지원
SMF 클라이언트 | 예 |
MQTT 클라이언트 | 예 |
REST 게시자 | 예 |
REST 가입자 | 아니 |
웹 메시징 클라이언트 | 예 |
인증서 해지 구성에 대한 자세한 내용은 인증 기관을 참조하십시오 .
인증서 해지 확인 방법
CRL (Certificate Revocation List), OCSP (Online Certificate Status Protocol) 또는 OCSP-CRL (두 방법의 조합)을 사용하여 클라이언트 인증서의 해지 상태를 확인하도록 이벤트 브로커를 구성 할 수 있습니다.
CRL
CRL에는 발급 CA에서 해지 한 인증서 목록이 포함되어 있습니다. CA 인증서 해지 목록의 URL은 각 인증서에 포함됩니다. 이벤트 브로커는 분배 지점에서 CRL을 다운로드하고 주기적으로 새로 고치는 로컬 사본을 유지합니다. 클라이언트 인증서를 인증하기 위해 확인 응용 프로그램은 CRL URL을 사용하여 CRL의 로컬 복사본을 다운로드 한 다음 CA에서 확인해야 할 모든 해지 확인에 사용합니다. 체인과 발급 CA에있는 모든 인증서의 해지 상태가 마지막으로 발급 된 인증서에서 시작하여 루트 CA 자체로 검사됩니다. 인증서의 일련 번호가 CRL에 나타나지 않으면 인증서는 해지 확인을 통과합니다.
: CRL 해지 확인 중에 루트 CA는 한 번 자체 검사하고 체인에서 아래의 CA를 한 번 확인하기 때문에 두 가지 수를 얻습니다. 다른 모든 CA는 아래에있는 하나만 확인하거나 체인의 마지막 CA의 경우 연결을 시도한 클라이언트를 확인하기 때문에 하나의 카운트를 얻습니다.
CRL 인증서 해지 확인을 사용하려면 CRL 인증서 해지 확인 구성을 참조하십시오 .
OCSP
OCSP를 통해 이벤트 브로커는 CA와 직접 또는 방화벽 내부의 신뢰할 수있는 응답자 (OCSP 응답자)를 통해 단일 인증서의 폐기 상태를 확인할 수 있습니다. 클라이언트 인증서에는 인증서 발급자의 URL이 포함되어 있으며 인증서의 해지 상태를 확인하는 데 사용됩니다. OCSP 방법을 사용하면 체인의 각 인증서는 인증서 일련 번호가 포함 된 요청을 OCSP 응답자에게 보내서 확인됩니다. 응답자는 인증서가 해지되었는지 또는 유효한지 또는 알 수 없는지 표시하기 위해 응답해야합니다.
OCSP 인증서 해지 확인을 사용하려면 OCSP 인증서 해지 확인 구성을 참조하십시오 .
OCSP-CRL
OCSP 및 CRL 인증서 해지 확인이 모두 사용되면 체인에있는 모든 인증서의 해지 상태가 OCSP에 의해 먼저 확인됩니다. 결과가 유효하거나 알 수 없거나 취소 된 경우 검사가 완료된 것입니다. OCSP 응답자가 알 수 없음 (응답 시간 초과)을 반환하거나 사용할 수없는 경우 CRL에서 인증서를 확인합니다. 이 프로세스는 체인의 각 인증서에서 수행됩니다.
OCSP-CRL 인증서 해지 확인을 사용하려면 OCSP-CRL 인증서 해지 확인 구성을 참조하십시오 .