2-1. 대칭키 암호화
동일한 키를 사용하여 암호화와 복호화를 하는 방식으로, 서버와 클라이언트 양쪽이 동일한 키(= 대칭키)를 가지도록 한다. 암호화를 할 때는 데이터와 키를 특정 알고리즘에 넣어서 돌리면 되고, 복호화를 할 때는 데이터와 키를 그 알고리즘에 넣어서 거꾸로 돌리면 된다. 즉 대칭키를 서버와 클라이언트만 가지고 있다면 전송 과정의 데이터를 누군가 훔쳐보더라도 그 내용을 알아볼 수 없게 된다. 그러나 이러한 대칭키를 서버와 클라이언트가 서로 공유하기 위해서는 최소 한 번은 그 대칭키를 전송하는 과정이 필요하다는 문제가 있다. 만약 이 과정에서 그 대칭키가 탈취당한다면 암호화가 아무 의미 없어지는 것이다. 이를 보완하기 위해 등장한 방식이 바로 비대칭키(공개키) 암호화 방식이다.
2-2. 비대칭키(공개키) 암호화
암호화와 복호화를 할 때 서로 다른 키를 사용하는 방식으로, 서버는 자신만의 개인키를 가지고 있고 이에 대응되는 공개키는 누구나 가지고 있을 수 있도록 공개한다. 개인키로 암호화된 데이터는 이에 대응되는 공개키로만 복호화가 가능하며, 공개키로 암호화된 데이터는 이에 대응되는 개인키로만 복호화가 가능하다. 따라서 서버에게 데이터를 전송할 때 해당 서버의 공개키로 암호화를 하면 누군가 훔쳐보더라도 해당 서버의 개인키를 가지고 있지 않아서 그 내용을 알아볼 수 없게 된다.
SSH 원리
서버는 .ssh/authorized_keys에 클라이언트의 공개키를
클라이언트는 .ssh/knownhosts에 서버의 공개키를 저장한다.
서로다른 공개키를 교환하여 그 공개키로 암호한후 자신의 prvate key로 복호화하여 서로 확인합니다.
인증이 끝나면 대칭키인 세션키를 교환하여 암호화가 이루어집니다.(이렇게하면 더빠르기 때문이겟죠?)
https://limvo.tistory.com/21
위에건 그림이 없어서 좀이해하기 어려웠다.
아래가 그림이 있어서 이해하기 쉬웠다.
https://pilyeooong.tistory.com/entry/SSH%EB%9E%80
'용어 및 개념' 카테고리의 다른 글
토큰기반 인증 한줄 요약 (0) | 2021.08.13 |
---|---|
Stateful vs Stateless 차이 (0) | 2021.08.13 |
SDS(Software Define Storage) (0) | 2021.07.26 |
VM Disk - thick, thin provisioning / 고정, 동적, 차이점보관 (0) | 2021.07.23 |
NUMA - 불균일 기억 장치 접근 (0) | 2021.07.23 |
댓글