TLS (Transport Layer Security) 및 SSH (Secure Shell)는 네트워크를 통한 통신을 보호하는 데 사용되는 암호화 프로토콜이며, 양방향 채널을 사용하여 안전하고 효율적인 데이터 교환을 용이하게합니다. 양방향 채널을 사용하면 기밀성, 무결성 및 인증과 동시 양방향 통신이 가능합니다. 아래는 TLS와 SSH가 운영에서 양방향 채널을 사용하는 방법에 대한 자세한 설명입니다.
TLS의 양방향 채널
TLS는 주로 웹 서버에 연결하는 웹 브라우저와 같은 네트워크를 통해 클라이언트-서버 응용 프로그램 간의 통신을 보장하도록 설계되었습니다. 이 프로토콜은 양방향 데이터 전송을 지원하는 안전하고 암호화 된 채널을 설정합니다.
- TLS 연결이 시작되면 클라이언트는 TLS 지원 서버에 연결하고 지원되는 암호화 알고리즘, TLS 버전 및 기타 통신 옵션이 포함 된 "클라이언트 hello"메시지를 보냅니다.
- 서버는 호환 암호화 방법을 선택하는 "Server Hello"메시지로 응답 한 다음 신뢰할 수있는 인증서 기관 (CA)에서 발행 한 서버의 공개 키가 포함 된 디지털 인증서를 전송합니다.
- 클라이언트는 서버가 합법적인지 확인하기 위해이 디지털 인증서의 진위를 확인합니다.
- 두 당사자는 공유 비밀 세션 키를 설정하기 위해 악수를 수행합니다. 이것은 일반적으로 RSA 또는 Diffie-Hellman 변형과 같은 비대칭 암호화 알고리즘 (Ephemeral DH, 타원 곡선 DH 등)을 사용하여 수행됩니다. 이 핸드 셰이크는 양 당사자가 해당 커뮤니케이션 세션의 고유 한 세션 키에 동의하도록합니다.
- 세션 키가 설정되면 TLS는 나머지 세션에 대칭 암호화 알고리즘을 사용하여 데이터의 빠르고 안전한 암호화 및 암호 해독을 허용합니다.
- TLS에 의해 형성된 양방향 채널을 통해 암호화 된 데이터는 클라이언트에서 서버에서 서버에서 클라이언트로 단단히 흐를 수 있습니다.
-TLS는 또한 MACS (Message Authentication Codes)를 사용하여 데이터 무결성을 보장하여 전송 중에 데이터를 조작하는 모든 것이 감지되도록합니다.
-이 양방향 채널을 사용하면 대화식 웹 브라우징, 보안 양식 제출물 및 두 당사자가 암호화 된 데이터를 동시에 보내고 수신하도록 요구하는 기타 응용 프로그램이 가능합니다.
요약하면, TLS는 클라이언트와 서버 간의 양방향 암호화 채널을 생성하여 기밀성, 무결성 및 인증을 유지하면서 데이터를 동시에 보내고받을 수 있습니다. 데이터 교환 이전의 핸드 셰이크 프로세스는 안전한 공유 키를 설정하고 신원을 검증하는 데 필수적입니다.
SSH의 양방향 채널
SSH는 주로 보안되지 않은 네트워크를 통해 안전한 원격 로그인 및 관리 기능을 제공하기 위해 주로 설계된 프로토콜이지만 유연한 양방향 채널 지원으로 인해 쉘 액세스 이상의 다양한 보안 네트워크 서비스를 지원합니다.
-SSH는 클라이언트가 연결을 시작하고 암호, 공개/개인 키 또는 기타 인증 메커니즘을 사용하여 서버에 대한 클라이언트 서버 모델에서 작동합니다.
- 인증이 발생하면 SSH는 동시 양방향 데이터 흐름을 지원하는 안전한 암호화 된 통신 채널을 설정합니다.
- 내부적으로 SSH는 단일 SSH 연결을 통해 여러 논리적 채널을 멀티 플렉스합니다. 이 채널은 대화식 터미널 세션, 파일 전송 (SCP/SFTP) 및 네트워크 포트 전달 (터널링)을 동시에 전달할 수 있습니다.
-SSH의 양방향 특성은 데이터에서 서버, 서버, 클라이언트로 동시에 데이터 데이터가 자유롭게 흐를 수 있음을 의미합니다. 이는 원격 명령 실행과 같은 실시간 대화식 세션에 중요합니다. 여기서 클라이언트에서 명령이 전송되고 출력이 서버에서 반환됩니다.
-SSH는 또한 로컬 포트를 원격 서비스로 전달하거나 그 반대의 경우와 같은 다른 네트워크 트래픽을 리디렉션하는 보안 터널링을 지원합니다. 이 터널링 기능은 암호화 된 SSH 연결 내부의 양쪽 끝 사이에 트래픽을 캡슐화하여 양방향 채널을 이용합니다.
- 예를 들어, 로컬 포트 전달을 사용하면 클라이언트가 SSH 연결을 통해 원격 서버 포트로 전달되는 로컬 포트에 연결할 수 있으며 원격 포트 전달은 서버가 클라이언트 네트워크에 포트를 노출시킬 수 있습니다. 두 가지 유형의 전달은 양방향으로 데이터가 SSH 터널의 양쪽 끝에 안전하게 흐를 수 있습니다.
- 단일 SSH 연결을 통해 여러 채널의 멀티플렉싱은 유연성을 향상시켜 동시 파일 전송, 터미널 세션 및 하나의 암호화 된 터널 내의 포트 포워딩을 허용합니다.
공유 기능과 TLS 및 SSH의 양방향 차이
TLS 및 SSH는 안전한 양방향 통신을 가능하게하는 양방향 채널을 형성하지만 목적과 구조는 다르지만.
-TLS는 일반적으로 단일 응용 프로그램 계층 연결 (예 : HTTPS 웹 트래픽)을 확보합니다.
-SSH는 한 연결 내에서 다중 다중화 된 채널을 지원하는 안전한 전송 계층을 생성하여 원격 로그인, 파일 전송 및 터널링을 포함한 광범위한 사용 사례를 충족합니다.
-TLS 핸드 셰이크는 서버 아이덴티티 (및 선택적으로 클라이언트 ID), 암호화 매개 변수에 동의하며, 세션 키를 생성하여 응용 프로그램 데이터에 대한 안전한 기밀성 및 무결성을 강조하는 데 중점을 둡니다.
-SSH 핸드 셰이크에는 클라이언트 인증이 포함되어 있으며 안전한 채널을 설정하지만 채널 멀티플렉싱 및 대화식 세션을 지원하여 더 나아갑니다.
- 두 프로토콜 모두 비대칭 키 교환 메커니즘을 사용하여 대칭 암호화를위한 공유 세션 키를 설정하지만 SSH는보다 다양한 인증 방법 (암호, 공개 키, 인증서)을 허용합니다.
- 둘 다 다양한 네트워크 조건에서 안정적인 통신을 보장하는 양방향 흐름 제어, 오류 처리 및 무결성 검사를 지원합니다.
TLS에서 양방향 채널의 기술 운영
-TLS 채널은 순서대로 무손실 바이트 스트림을 제공하는 안정적인 전송 계층 (일반적으로 TCP)에서 작동합니다.
- 핸드 셰이크 후에 암호화 매개 변수와 세션 키가 설정되면 AES 또는 Chacha20과 같은 대칭 암호화는 전송 된 모든 메시지를 암호화합니다.
- 양방향 통신은 나가는 데이터를 암호화하고 들어오는 데이터를 해독하는 서버를 암호화하는 클라이언트에 의해 달성되며 그 반대도 마찬가지입니다.
- 각 TLS 레코드 (데이터 교환 단위)는 무결성 보호 및 암호화되어 양방향으로 기밀성을 유지합니다.
- 프로토콜은 각 레코드에서 시퀀스 번호와 Mac을 사용하여 재생 및 변조를 방지합니다.
- 기본 TCP 연결을 사용하면 흐름 제어를 통해 메시지를 손실없이 동시에 보내거나받을 수 있습니다.
-TLS 1.3 핸드 쉐이크 라운드 트립과 필수 선물 비밀 교환으로 효율성과 보안 개선을 통해 안전한 양방향 채널 설정을 향상시킵니다.
SSH에서 양방향 채널의 기술 운영
-SSH는 하나의 암호화 된 TCP 연결을 통해 다중화 된 여러 논리적 채널로 보안 연결을 해체합니다.
- 각 채널에는 SSH 프로토콜이 관리하는 독립 식별자 및 유량 제어 창이 있습니다.
-SSH는 전송 계층 프로토콜을 사용하여 Diffie-Hellman과 같은 주요 교환 알고리즘과 관련된 SSH 핸드 셰이크를 통해 암호화 된 터널을 설정합니다.
-SSH 연결 프로토콜은이 터널을 통해 실행되며 채널의 개방, 사용 및 폐쇄를 관리합니다.
- 양방향 데이터 전송은 각 채널에서 개별적으로 발생하여 명령, 파일 데이터 또는 전달 된 포트에 대한 전이중 통신을 지원합니다.
-SSH는 사용자의 요구에 따라 동일한 연결 내에서 동일한 연결 내에서 동적으로 채널을 생성하고 닫으므로 대화식 쉘 세션, SCP, SFTP 및 포트 포워드가 공존 할 수 있습니다.
- 패킷 시퀀싱 및 승인은 필요할 때 재전송과의 신뢰할 수있는 커뮤니케이션을 보장합니다.
-SSH의 멀티플렉스 채널 및 양방향 흐름 제어는 간단한 데이터 전송 이상의 광범위한 보안 작업을위한 유연하고 강력한 메커니즘을 제공합니다.
양방향 채널 역할 요약
-TLS에서, 양방향 채널은 처음에 기밀, 무결성 및 신원 확인을 보장 한 후 애플리케이션 수준 데이터 교환 (웹 컨텐츠, 이메일 등)을 확보 한 다음 모든 후속 양방향 데이터를 애플리케이션에 투명하게 암호화합니다.
-SSH에서 양방향 채널은 원격 액세스 및 안전한 네트워크 서비스를 용이하게하는 데 기본이되므로 단일 보안 암호화 터널 내에서 다양한 용도로 여러 동시 스트림을 허용합니다.
- 두 프로토콜의 양방향은 어느 쪽도 클라이언트와 서버를 적극적이고 안전하게 양방향 통신에 전달하거나 수신하는 것으로 제한되지 않음을 의미합니다.
이 양방향 보안 채널 기능은 HTTP (TLS), SSH를 통한 안전한 시스템 관리를 통한 안전한 안전한 웹 브라우징 및 다용도 보안 네트워크 터널링을 통해 최신 보안 인터넷 서비스의 안전한 웹 브라우징을 가능하게하며, 다용도 보안 네트워크 터널링은 이러한 강력한 양방향 암호화 채널에 의존하여 고급, 신뢰할 수 있고 신뢰할 수있는 통신에 의존합니다.
***
이 자세한 설명은 TLS 및 SSH가 핸드 셰이크 프로세스, 암호화 방법, 채널 멀티플렉싱 (SSH) 및 흐름 제어와 관련하여 양방향 채널을 사용하는 방법을 다룹니다. 추가 기술적 뉘앙스를 위해 인용 된 출처는 추가적인 통찰력과 예를 제공합니다.