지금쯤이면 OMG에 대해 읽었을 것입니다. 보안 아키텍처 및 모델로 기존 DDS 표준을 강화한 DDS 보안 사양. 해당 사양의 버전 1.0은 OMG에서 마무리될 예정입니다. 이는 데이터 중심 보안 모델이 이제 기본적으로 DDS 표준에 통합될 것임을 의미합니다. DDS 표준은 다양한 유형의 산업용 IoT를 포함하여 복잡한 실시간 애플리케이션을 구축하는 데 필요한 유연성, 안정성 및 속도를 제공하도록 설계된 유일한 개방형 통신 표준입니다. 시스템.
DDS 보안 사양에 도입된 놀라운 기능 중 하나는 SPI(서비스 플러그인 인터페이스) 아키텍처의 개념입니다. SPI의 메커니즘을 통해 사용자는 애플리케이션 코드를 변경하지 않고도 DDS 구현이 정보 보증에 사용하는 동작과 기술을 사용자 정의할 수 있습니다.
이 블로그 게시물은 SPI 아키텍처를 간략하게 설명하고 RTI Connext DDS Secure 내장 보안 플러그인을 활용하여 당신의 선택.
DDS 보안 서비스 플러그인 인터페이스(SPI)
DDS 보안 사양은 애플리케이션이 DDS 인프라와 상호 작용하는 방식에 어떠한 변경 사항도 도입하지 않습니다. 대신 필요할 때 인프라에서 활용하는 다섯 가지 플러그인 구성 요소를 정의합니다. 이러한 각 구성 요소는 정보 보증 기능의 특정 측면을 제공하고 DDS 보안 사양에 정의된 대로 표준화된 인터페이스를 가지고 있습니다. 이것이 SPI(서비스 플러그인 인터페이스)라는 이름이 참조하는 것입니다. 플러그인 아키텍처는 아래 이미지와 같습니다.
보시다시피, DDS 시스템에 정보 보증을 집합적으로 제공하는 5개의 SPI가 있습니다. 이름과 목적은 다음과 같습니다.
SPI 이름
유형 및 작업의 목적
인증상호 인증을 수행하고 공유 비밀을 설정하는 기능을 포함하여 DDS 도메인 참가자의 ID 확인을 지원합니다.접근 제어DDS 도메인 가입 및 주제, 데이터 리더 생성을 포함하여 인증된 DDS 도메인 참가자가 수행할 수 있는 보호된 DDS 관련 작업에 대한 결정 및 DataWriters.Cryptography지원 암호화 및 암호 해독, 해싱, 디지털 서명 및 메시지 인증 코드를 포함한 암호화 작업 특정 목적.
SPI 아키텍처는 보안 DDS 시스템의 정보 보증 측면을 사용자 정의할 수 있는 많은 자유를 제공합니다. 위의 글머리 기호 목록에 언급된 모든 측면은 자체 SPI 구현을 사용하여 수정하거나 다시 구현할 수 있습니다. 변경할 수 없는 것은 때 메커니즘입니다. DDS 구현은 실제로 SPI의 메소드를 호출합니다. SPI는 필요할 때만 호출됩니다. 이는 미들웨어가 사양에 규정된 대로 계속 작동하고 이를 깨는 것에 대해 걱정할 필요가 없다는 것을 의미하기 때문에 실제로 좋은 것입니다.
SPI의 인터페이스 외에도 DDS 보안 사양은 해당 문서의 9장에 자세히 설명된 소위 내장 플러그인의 기능 설명도 제공합니다. 그들의 주요 의도는 DDS 보안의 서로 다른 구현 간에 즉시 사용 가능한 상호 운용성을 제공하는 것입니다. RTI Connext Secure DDS를 사용하면 내장 플러그인도 맞춤화를 위한 훌륭한 출발점이 됩니다.
RTI Connext DDS Secure 내장 플러그인 사용자 정의
Connext DDS Secure와 함께 제공되는 내장 보안 플러그인 바이너리는 즉시 사용하여 Information Assurance가 포함된 DDS 시스템을 생성할 수 있습니다. 액세스 제어 및 거버넌스 구성 파일, ID 인증서와 같은 원하는 보안 아티팩트를 가리키도록 사양에 설명된 대로 DomainParticipant의 PropertyQosPolicy를 적절하게 구성하기만 하면 됩니다.
플러그인의 동작을 수정하려는 사용자를 위해 빌드 가능한 소스 코드 파일 세트도 제공됩니다. 그러나 많은 상황에서 Connext DDS Secure 플러그인은 훨씬 쉬운 옵션을 제공합니다. OpenSSL EVP API 입력...
암호화 알고리즘 구현 교체
내장 Connext DDS Secure 플러그인 소스 코드는 OpenSSL 암호화 라이브러리를 사용합니다. SSL 또는 TLS 기능이 아니라 암호화 기능 구현 세트 및 여러 그것들과 함께 사용되는 도우미 클래스. OpenSSL 프로그래밍에 익숙하다면 소위 EVP 인터페이스를 활용하는 것이 좋습니다. (제가 그랬던 것처럼 EVP는 EnVeloPe의 약자입니다.) Connext DDS Secure 플러그인은 기능의 하위 집합, 즉 아래 표의 항목과 관련된 기능을 호출합니다.
기능내장 DDS 보안 플러그인에 대해 지정된 알고리즘 128비트 또는 256비트 키 크기용 Galois Counter Mode(GCM)의 대칭 암호화 및 암호 해독AESSHA-256을 해시 함수로 사용하는RSA-PSS 또는 ECDSA 서명 알고리즘 서명 및 확인키 교환 모듈식 산술(DH) 또는 타원 곡선을 사용하는 Diffie-Hellman ECDH), 지정된 매개변수 메시지 인증 코드HMAC, 해시 기능으로 SHA-256 및 GMACS보안 해시 기능SHA-256난수 생성암호학적으로 강력한 모든 난수 생성기
플러그인과 함께 제공됨 제품은 표준 OpenSSL EVP 엔진에서 볼 수 있는 이러한 기능의 OpenSSL 구현을 사용합니다. 그러나 자체 엔진 삽입도 지원합니다. OpenSSL 엔진 구현은 이러한 암호화 기능의 다른 구현을 호출할 수 있습니다(예:선택한 암호화 라이브러리 활용). 아마도 FIPS 호환 구현을 사용해야 하기 때문일 수 있습니다. 일부 라이브러리는 이미 EVP 엔진을 지원하므로 플러그인만 구성하면 됩니다. 그렇지 않으면 라이브러리에서 올바른 기능을 호출하는 shim 레이어를 작성해야 합니다.
내장 플러그인 자체 수정
이전 섹션에서 설명한 내장 플러그인의 알고리즘과 메커니즘이 프로젝트의 요구 사항을 충족하지 않을 수 있습니다. 이 경우 EVP 기능을 호출하는 코드인 실제 플러그인의 코드를 수정해야 합니다. 예를 들어 사양에 정의된 것과 다른 알고리즘을 선택하는 것과 같이 약간의 수정을 할 수 있으며, 가능한 다른 키 크기나 알고리즘 매개변수를 사용할 수 있습니다. 또 다른 예로 원하는 경우 동적 연결에서 정적 연결로 변경할 수 있습니다.
사소한 변경을 넘어 완전히 다른 ID 인증 메커니즘을 도입하는 등의 작업이 가능합니다. 그 경로를 따라가는 것은 매우 빠르게 복잡해지며 귀하의 요구 사항과 계획에 대해 논의하기 위해 당사에 연락하는 것이 좋습니다. 여러분과 함께 할 수 있기를 기대합니다!