일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 다대일
- 백트래킹
- execute
- 유니크제약조건
- 연결리스트
- 일대다
- 힙
- 즉시로딩
- 낙관적락
- 동적sql
- dfs
- 다대다
- eager
- 지연로딩
- CHECK OPTION
- FetchType
- 스프링 폼
- SQL프로그래밍
- exclusive lock
- PS
- JPQL
- querydsl
- BOJ
- fetch
- shared lock
- 연관관계
- 데코레이터
- 스토어드 프로시저
- 이진탐색
- 비관적락
- Today
- Total
흰 스타렉스에서 내가 내리지
SSH 의 원리와 접속 과정 본문
SSH(Secure Shell)는 네트워크를 통해 다른 컴퓨터에 안전하게 접속하기 위한 프로토콜입니다. SSH는 데이터 암호화, 사용자 인증, 데이터 무결성을 보장하여 안전한 통신을 제공합니다.
SSH의 원리
암호화:
SSH는 대칭키 암호화와 비대칭키 암호화를 모두 사용합니다. 초기 연결 설정 시에는 비대칭키 암호화를 사용하여 안전한 통신 채널을 설정하고, 이후 데이터 전송 시에는 대칭키 암호화를 사용하여 효율적이고 빠른 통신을 보장합니다.
인증:
클라이언트와 서버는 서로를 인증합니다. 일반적으로 서버는 클라이언트에게 공개키를 제공하고, 클라이언트는 이를 사용하여 서버의 신원을 확인합니다. 클라이언트 인증은 비밀번호, 공개키, 혹은 기타 인증 방법을 통해 이루어집니다.
무결성:
SSH는 전송 중 데이터의 무결성을 보장하기 위해 메시지 인증 코드를 사용합니다. 이를 통해 데이터가 중간에 변조되지 않았음을 확인할 수 있습니다.
SSH 접속 과정
서버와 클라이언트 간의 연결 설정:
클라이언트가 서버에 접속을 시도하면, 서버는 자신의 공개키를 클라이언트에게 보냅니다.
클라이언트는 서버의 공개키를 받아서 서버의 신원을 확인합니다. 이 과정에서 클라이언트는 서버의 공개키를 로컬에 저장된 이전 공개키와 비교하여 서버의 신뢰성을 검증합니다.
세션 키 생성:
서버와 클라이언트는 안전한 통신 채널을 설정하기 위해 세션 키를 생성합니다. 이를 위해 Diffie-Hellman 키 교환 알고리즘을 사용하여 대칭키를 안전하게 생성하고 공유합니다.
생성된 세션 키는 이후 대칭키 암호화 방식으로 데이터 통신에 사용됩니다.
클라이언트 인증:
클라이언트는 서버에 인증을 시도합니다. 일반적인 방법은 비밀번호 인증과 공개키 인증입니다.
비밀번호 인증: 클라이언트는 서버에 사용자 이름과 비밀번호를 전송합니다. 서버는 이를 확인하여 인증을 완료합니다.
공개키 인증: 클라이언트는 서버에 자신의 공개키를 등록해 두고, 접속 시 개인키로 서명한 메시지를 서버에 보냅니다. 서버는 클라이언트의 공개키를 사용하여 서명을 확인하고 인증을 완료합니다.
안전한 데이터 통신:
인증이 완료되면 클라이언트와 서버는 대칭키를 사용하여 암호화된 안전한 통신을 시작합니다. 이 때 전송되는 모든 데이터는 세션 키로 암호화되어 보호됩니다.
요약
SSH는 다음과 같은 과정으로 안전한 통신을 보장합니다:
1. 서버와 클라이언트 간의 공개키 교환을 통해 초기 연결을 설정합니다.
2. 세션 키를 생성하여 대칭키 암호화를 설정합니다.
3. 클라이언트는 비밀번호 또는 공개키를 통해 서버에 인증을 시도합니다.
4. 인증이 완료되면 세션 키를 사용하여 암호화된 안전한 데이터 통신을 시작합니다.
이 과정을 통해 SSH는 네트워크 상에서 안전하고 신뢰할 수 있는 원격 접속을 가능하게 합니다.
'etc' 카테고리의 다른 글
Slack Webhook URL 을 추가하는 방법 (0) | 2024.07.17 |
---|---|
IOPS (0) | 2024.06.05 |
컴퓨터 구조와 Swap Memory (스왑 메모리) (0) | 2024.03.24 |
Jetbrains사에 직접 요청하여 IntelliJ 학생인증 받기 (0) | 2023.09.15 |
Redis (0) | 2023.06.27 |