인공지능 요모조모
[ROS2] ROS2 Security 본문
반응형
🔐 ROS2 보안(Security) 설정 - SROS2 사용법
ROS2에서는 SROS2
패키지를 통해 DDS-Security 기능 제공
노드 간 통신에 인증 및 암호화를 적용하여 안전한 메시지 송수신 환경을 구성 가능
🔧 1. 보안 키 저장소 생성
먼저 보안 키를 저장할 디렉토리를 만들고, keystore
를 생성
$ mkdir ~/sros2_demo
$ cd ~/sros2_demo
$ ros2 security create_keystore demo_keystore
🔐 2. 보안 enclave 생성 (노드별 인증 키 생성)
각 노드별로 사용할 enclave를 생성
$ ros2 security create_enclave demo_keystore /talker_listener/talker
$ ros2 security create_enclave demo_keystore /talker_listener/listener
⚙️ 3. 환경변수 설정
보안을 적용하려면 아래 환경변수를 터미널에 선언
노드 실행할 때마다 각 터미널에서 매번 선언 필요
export ROS_SECURITY_KEYSTORE=~/sros2_demo/demo_keystore
export ROS_SECURITY_ENABLE=true
export ROS_SECURITY_STRATEGY=Enforce
환경변수 | 설명 |
---|---|
ROS_SECURITY_KEYSTORE |
보안 인증서와 키 파일이 저장된 폴더 경로 |
ROS_SECURITY_ENABLE |
보안 기능 활성화 여부 (기본값: false ) |
ROS_SECURITY_STRATEGY |
보안 적용 전략 - Enforce : 인증되지 않은 노드는 통신 불가- Permissive : 인증 없는 노드도 허용 |
💡 Tip
매번 입력하지 않으려면 ~/.bashrc
에 위의 변수 설정 추가
🚀 4. 노드 실행
보안 설정이 적용된 노드를 실행할 땐, enclave를 명시 필수
$ ros2 run demo_nodes_cpp talker --ros-args --enclave /talker_listener/talker
$ ros2 run demo_nodes_py listener --ros-args --enclave /talker_listener/listener
→ 인증 및 암호화 통신 적용됨
❌ 보안 없이 실행 (비교용)
$ ros2 run demo_nodes_cpp talker
$ ros2 run demo_nodes_py listener
→ 인증 및 암호화 없이 평문 통신
🔄 비교 테스트
두 쌍의 talker/listener 노드를 동시에 실행하면
보안 설정된 노드 간에는 암호화 통신,
보안 미설정 노드 간에는 평문 통신이 이뤄지는 것을 확인 가능
반응형
'ROKEY > ROS2' 카테고리의 다른 글
[ROS2] ROS2 CLI (0) | 2025.05.02 |
---|---|
[ROS2] ROS2 Lifecycle (0) | 2025.05.01 |
[ROS2] 기초 개념(2) (0) | 2025.04.23 |
[ROS2] 기초 개념 (1) (0) | 2025.04.23 |
[ROS2] BAG (0) | 2025.04.22 |