컴퓨터 지식 네트워크 - 컴퓨터 구성 - SSH 프로토콜 원리, 구성, 인증 방법 및 프로세스

SSH 프로토콜 원리, 구성, 인증 방법 및 프로세스

SSH 는 보안 셸 프로토콜의 약어이며 SSH (보안 셸 프로토콜) 는 안전하지 않은 네트워크에서 보안 원격 로그인 및 기타 보안 네트워크 서비스를 제공하는 프로토콜입니다.

OpenSSH 는 SSH (보안 셸) 프로토콜의 무료 오픈 소스 구현입니다. SSH 프로토콜 제품군은 컴퓨터 간 원격 제어 또는 파일 전송에 사용할 수 있습니다. 텔넷 (터미널 에뮬레이션 프로토콜), RCP FTP, rlogin, rsh 등과 같은 기존 방식은 매우 안전하지 않으며 암호는 일반 텍스트로 전송됩니다. OpenSSH 는 원격 제어 및 파일 전송 중 데이터를 암호화하는 서버측 데몬 및 클라이언트 도구를 제공하여 기존의 유사한 서비스를 대체합니다.

이전에는 rsh 와 텔넷을 사용했습니다. 로그인 시 ID 와 비밀번호를 포함한 데이터는 암호화되지 않고 네트워크로 전송되기 때문에 보안 문제가 있었습니다. 인트라넷이라도 인터넷 절도, 변조 등의 위험이 있다. SSH 는 보다 안전한 원격 작업을 위해 비밀번호를 포함한 모든 데이터를 암호화합니다. SSH 에서는 프로토콜 표준이 다르기 때문에 SSH 1 및 SSH2 의 서로 다른 버전이 있습니다. SSH2 는 SSH 1 에서 사용되는 암호화 알고리즘의 라이센스 문제를 방지하기 위해 개발되었습니다 (이 라이센스 문제는 더 이상 존재하지 않음). SSH 프로토콜을 설치하는 응용 프로그램인 TLES 8 은 오픈 소스 OpenSSH 를 사용합니다. OpenSSH 는 SSH 1 및 SSH2 의 모든 프로토콜에 해당할 수 있지만 기본적으로 SSH2 를 사용합니다.

SSH 는 주로 다음 세 부분으로 구성됩니다.

또한 SSH 프로토콜 프레임워크는 많은 고급 네트워크 보안 응용 프로그램 프로토콜에 대한 확장 지원을 제공합니다. 이들 사이의 계층 관계는 다음 그림과 같이 나타낼 수 있습니다.

SSH 와 같은 보안 통신을 제공하도록 설계된 프로토콜에는 완전한 키 메커니즘이 필요합니다. SSH 프로토콜은 인터넷 네트워크의 호스트 간 액세스 및 정보 교환을 대상으로 하므로 호스트 키는 기본 키 메커니즘이 됩니다. 즉, SSH 프로토콜은 해당 프로토콜을 사용하는 각 호스트에 하나 이상의 자체 호스트 키 쌍이 있어야 하며, 서비스 공급업체는 클라이언트의 호스트 키를 인증해야 접속 요청을 허용할 수 있습니다. 호스트는 여러 키를 사용할 수 있으며, 키 알고리즘에 따라 다른 키를 가질 수 있지만 DSS 알고리즘에 의해 생성된 키인 하나 이상의 키가 필요합니다. DSS 알고리즘에 대해서는 FIPS- 186 파일을 참조하십시오. 다음 그림과 같이 SSH 프로토콜의 호스트 키 인증에는 두 가지 관리 시나리오가 있습니다.

각 호스트에는 자체 호스트 키가 있어야 하며 여러 쌍의 키를 가질 수 있습니다. 각 호스트 키 쌍 쌍에는 공개 키와 개인 키가 포함됩니다. 실제 응용 프로그램에서 이러한 키를 사용하여 보안 기능을 구현하려면 어떻게 해야 합니까? 위 그림과 같이 SSH 프로토콜 프레임워크에서 두 가지 시나리오가 제시되었습니다.

첫 번째 시나리오에서는 호스트가 관련 클라이언트에 공개 키를 배포하고, 클라이언트는 호스트에 액세스할 때 호스트의 공개 키를 사용하여 데이터를 암호화하고, 호스트는 개인 키를 사용하여 데이터를 해독하여 호스트 키를 인증하고, 클라이언트의 신뢰할 수 있는 id 를 결정합니다. 그림 2(a) 에서 볼 수 있듯이 사용자가 호스트 A 에서 작업을 시작하고 호스트 B 와 호스트 C 에 액세스하면 A 가 클라이언트가 되며 호스트 B 와 호스트 C 의 공개 키를 미리 구성하고 액세스 시 호스트 이름을 기준으로 해당 공개 키를 찾아야 합니다. 액세스한 호스트 (즉, 서버측) 의 경우 개인 키의 안전한 저장소만 보장하면 됩니다.

두 번째 시나리오에서는 시스템의 모든 서비스 제공 호스트가 인증 센터에 자신의 공개 키를 제출하는 키 인증 센터가 있으며, 모든 호스트는 하나의 인증 센터의 공개 키만 클라이언트로 보관하면 됩니다. 이 모드에서 클라이언트는 대상 호스트에 제대로 연결하기 전에 서버 호스트에 액세스하기 전에 키 인증 센터로부터 인증을 요청해야 합니다.

첫 번째 방법은 쉽게 구현할 수 있지만 모든 변경 사항이 클라이언트에 반영되어야 하기 때문에 클라이언트에서 키를 유지 관리하는 것은 번거로운 일입니다. 두 번째 방법은 관리 및 유지 보수 문제를 완벽하게 해결합니다. 하지만 이 모델은 인증 센터에 대한 요구가 높다. 인터넷에서 이런 중앙 집중식 인증을 실현하려면 권한을 확정하기만 하면 큰 문제가 된다. 누가 모든 것을 결정할 수 있습니까? 그러나 장기적으로 기업 응용과 상업 응용 분야에서 중앙 집중식 인증을 채택하는 방안이 필요하다.

또한 SSH 프로토콜 프레임워크는 호스트 키 누출, 즉 인증되지 않은 첫 번째 액세스를 허용합니다. 인증되지 않은 최초 액세스란 클라이언트가 호스트에 처음 액세스할 때 호스트가 호스트 키를 확인하지 않고 향후 액세스에 사용해야 하는 공개 키를 클라이언트에 발급하는 것을 의미합니다. 그렇지 않으면 불법으로 간주되어 액세스가 거부됩니다.

전체 통신 과정에서 SSH 보안 연결을 위해 서버와 클라이언트는 다음 5 단계를 거칩니다.

* 버전 번호 협상 단계, SSH 에는 현재 SSH 1 및 SSH2 가 포함되어 있으며, 양측은 버전 협상을 통해 사용할 버전을 결정합니다.

* 키 및 알고리즘 협상 단계에서 SSH 는 다양한 암호화 알고리즘을 지원하며, 양측은 로컬 및 피어가 지원하는 알고리즘에 따라 최종 알고리즘을 협상합니다.

* 인증 단계: SSH 클라이언트는 서버에 대한 인증 요청을 시작하고 서버는 클라이언트를 인증합니다.

* 세션 요청 단계, 인증이 통과하면 클라이언트가 서버에 세션 요청을 보냅니다.

* 상호 작용 세션 단계, 세션 요청이 통과된 후 서버와 클라이언트가 정보를 교환합니다.

Q 1:SSH 의 버전 및 차이점.

SSH2 는 RSA 의 특허 문제를 피하고 CRC 의 결함을 수정했습니다. SSH2 는 RSA 대신 디지털 서명 알고리즘 (DSA) 과 Diffie-Hellman(DH) 을 사용하여 대칭 키 교환을 완료하고 CRC 대신 HMAC 를 사용합니다. SSH2 에는 AES 및 Twofish 와 같은 대칭 암호화 알고리즘이 추가되었습니다.

A 1: SSH (보안 셸) 는 지금까지 호환되지 않는 ssh1과 SSH2 의 두 가지 버전이 있습니다. SSH 1 은 1.3 과 1.5 의 두 가지 버전으로 나뉩니다. SSH 1 DES, 3DES, Blowfish, RC4 등의 대칭 암호화 알고리즘을 사용하여 데이터 보안 전송을 보호하는 반면 대칭 암호화 알고리즘의 키는 비대칭 암호화 알고리즘 (RSA) 을 통해 교환됩니다. SSH 1 순환 중복 검사 코드 (CRC) 를 사용하여 데이터 무결성을 보장했지만 나중에 이 방법에 결함이 있음을 발견했습니다.

자세한 내용은 SSHv 1 프로토콜 및 SSHv2 프로토콜을 참조하십시오

Q2:HMAC 이란 무엇입니까?

A2: HMAC (해시 메시지 인증 코드), 키 기반 해시 알고리즘의 인증 프로토콜입니다. 메시지 인증 코드의 원칙은 공용 함수와 키를 사용하여 메시지 무결성을 인증하는 인증 식별자로 고정 길이 값을 생성하는 것입니다. 하나의 키로 고정된 크기의 작은 데이터 블록, 즉 MAC 를 생성하여 메시지에 추가한 다음 전송합니다. 수신자는 발신자와 공유하는 키를 사용하여 인증 등을 수행합니다.

Q3:x 1 1 전달이란 무엇입니까?

A3: sh 의 X 1 1 포워딩 기능을 통해 x 클라이언트와 x 서버가 안전하게 통신할 수 있습니다. X 1 1 전달 후 x 클라이언트에서 x 서버로의 데이터는 먼저 ssh 서버로 전송되고, ssh 서버는 ssh 클라이언트와의 보안 채널을 사용하여 ssh 클라이언트로 전달된 다음 ssh 클라이언트에서 x 서버로 전달됩니다. X 서버에서 x 클라이언트로의 데이터 흐름은 동일합니다. 여기서 ssh 서버와 ssh 클라이언트는 X 클라이언트와 X 서버 사이의 데이터 중계기 역할을 합니다. Ssh 서버와 X 클라이언트, ssh 클라이언트와 X 서버는 일반적으로 같은 시스템에서 안전한 프로세스간 통신이며 ssh 서버와 ssh 클라이언트 간의 통신도 안전하기 때문에 X 클라이언트와 X 서버 간의 통신은 안전합니다.

질문 4: TTY 란 무엇입니까?

A4: 터미널은 여러 가지 유형의 문자 기반 장치입니다. Tty 는 일반적으로 다양한 유형의 터미널 장치를 약칭하는 데 사용됩니다. Tty 는 텔레타이핑의 약어입니다. 텔레타이프는 최초의 단말기 장비로 텔레타이프처럼 텔레타이프처럼 텔렉스 회사에서 생산한 것이다. 디바이스 이름은 특수 파일 디렉토리 /dev/ 에 있습니다.

Q5: SSH 작업 프로세스에 대한 간단한 설명?

上篇: Toyota 자동차 내비게이션에 vivo 휴대폰을 연결할 수 있나요? 下篇: 소니의 진정한 무선 헤드폰 WF-H800 은 포장을 풀었습니다. 작고 아름다우며 음질이 좋습니다.
관련 내용