Computer Science/네트워크

전송 계층 - TCP (TELNET, SSH)

RoarinGom 2021. 10. 25. 16:10

목차 (TELNET, SSH)

 

1. TELNET (관리 툴) - 스위치나 서버에 접속하는 내부적인 툴

RFC 854, TCP 23 사용, Terminal 에뮬레이터

-역할

: 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 프로토콜 

: 장비 관리 또는 서버 접속 시 사용 shell (사용자가 OS와 대화할 수 있는 창) : Command Line Interface

: 클라이언트 소프트웨어인 경우, 포트 테스트 용도로 많이 사용

: telnet 명령어를 통해 해당 도메인 또는 IP 주소에 서비스 포트가 열려있는지 닫혀있는지 확인 가능

- 기능

: NVT (Network Virtual Terminals) 지원 (데이터 변환 가상 장치)

: 협상 가능한 옵션들이 있다

: 프로세스와 터미널의 1:1 symmetric 관계

- Negotiation Commands(협상 옵션들 4가지 WILL, WON'T DO DON'T)

WILL -> 옵션 활성화를 원한다

DO -> 옵션 활성화를 요청한다

 

2. SSH - 외부에서 접속이 가능한 관리 툴

- 역할

: Secure Shell (보안강화)

: TELNET을 대체하기 위해 1995년 개발

: 원격지에 있는 컴퓨터를 명령어를 통해서 제어

: 강력한 인증 방법 및 암호화 통신을 제공, TCP 22

: OpenSSH - 1999년 OpenBSD 팀에서 개발 (GNU Public License)

: SSHv1, SSHv2

- 특징 (인증, 암호화, 무결성, 압축)

1. Authentication(인증) : 사용자가 서버 접속 시 패스워드 또는 공개키 기반의 인증 방식 지원

2. Encryption(암호화) : 대칭키 방식 사용 (AES, Blowfish, 3DES)

3. Integrity(무결성) : 데이터 위변조 방지 MAC(Message Authentication Code)

4. Compression(압축) : 다중화 통신

 

대칭키 : 동일한 키로 암복호화를 동시에 할 수 있는 방식 (유출되면 문제)

공개키 : (공개키+개인키)방식,

공개키 암호화 -> 데이터보안, 서버의 공개키로 데이터를 암호화 -> 서버의 개인키로 복호화

개인키 암호화 -> 인증 보안, 개인키 소유자가 개인키로 암호화 하고 공개키를 함께 전달 -> 암호화 데이터+공개키로 신원확인 -> 전자서명 방법

-통신 과정 SSH handshaking

 

1. TCP 커넥션
2. SSH version 체크 매칭하여 서로 호환되는 버전 찾기
3. 암호화 키 알고리즘을 서로 협상을 하고 key exchange, DH key Change
4. 모든 키가 교환이 완료가 되면, 안전한 키를 가지고 data를 암호화하여 데이터를 교환


Algorithm negotiation
서로 가지고 있고 가장 효율적인 알고리즘 선택

Key exchange
key 교환을 위한 암호화 : 빠른 것보다 보안이 더 강해야한다.
data 암호화 : 빨라야한다.