TLS(Transport Layer Security)
HTTPS에서 클라이언트와 서버간 통신 전
SSL 인증서로 신뢰성 여부를 판단하기 위해 연결하는 방식
- 과거에는 SSL(Secure Sockets Layer)라고 불렸던 프로토콜인데 버전이 올라가면서 이름이 바뀜
- 인터넷 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보
- 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제3자가 메시지를 도청하거나 변조하지 못하도록 한다
- TCP/IP 네트워크를 사용하는 곳에서 동작하는 프로토콜이기 때문에 전송계층(Transport Layer)에서 동작
- AWS에서도 SSL 인증서를 발급하고 HTTPS에 적용하는 과정을 해본적이 있을 것이다
데이터 자체를 암호화해서 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다
디피-헬만 키 교환, SHA-256, SHA-384
* SSH(Secure Shell)는 뭘까?
네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜
- AWS와 같은 클라우드 서비스는 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해서 SSH을 통한 접속을 해야한다(PuTTy, mobaXterm)
- 소스 코드를 원격 저장소인 깃헙에 푸쉬할 때 SSH를 활용해 파일을 전송하게 된다.
로컬 개발 환경에서 Git을 단독으로 사용한다면 SSH가 없어도 무방하지만, 안전하게 외부 Git 서버에서 코드를 Clone하거나 Push하려면 SSH 프로토콜을 사용한다
TLS/SSL HandShake
클라이언트 -> 서버로 데이터를 보내는데 이때의 데이터는 암호화 알고리즘, 버전, 압축 방식등의 다양한 정보를 담고 전송
서버는 데이터를 받고 세션ID와 CA 공개 인증서 같은 정보들을 가지고 응답한다
클라이언트 측은 CA 인증서안에 있는 공개키를 이용하여 암호화하고 서버는 이를 확인해 서로 ok 사인이 뜨면 서로 통신
웹의 동작 방식
Client : 일반적인 웹 사용자의 인터넷이 연결된 장치들(컴퓨터, 스마트폰)과 이런 장치들에서 이용가능한 웹에 접근하는 소프트웨어(파이어폭스, 크롬과 같은 웹 브라우저)이다. Server : 웹페이지,
ddangjiwon.tistory.com
브라우저의 작동 원리
웹브라우저가 웹서버에 웹페이지 요청을 하면 웹서버는 웹페이지 응답을 한다. 즉, 서버가 브라우저에게 HTML문서를 전달하고 브라우저는 이를 읽고 해석한 후 Client에게 보여준다. HTML 및 CSS를
ddangjiwon.tistory.com
'CS' 카테고리의 다른 글
[AWS]GitLab CI/CD 이용해서 Springboot 배포하기 (0) | 2023.01.03 |
---|---|
로드 밸런싱(Load Balancing) 이란? (0) | 2022.12.31 |
네이밍 컨벤션 ( Naming Convention ) in Java (0) | 2022.12.27 |
DevOps란? (0) | 2022.12.26 |
GitHub, GitLab의 차이점 (0) | 2022.12.26 |