땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • 이것이 리눅스다 with Rocky Linux9
  • E
  • ㅗ
  • I
  • D

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

TLS/SSL에 대해
CS

TLS/SSL에 대해

2022. 12. 31. 13:30

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
    'CS' 카테고리의 다른 글
    • [AWS]GitLab CI/CD 이용해서 Springboot 배포하기
    • 로드 밸런싱(Load Balancing) 이란?
    • 네이밍 컨벤션 ( Naming Convention ) in Java
    • DevOps란?
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바