인증/보안 HTTPS, 해싱, 세션,쿠키 [TIL 2021.09.07]

JUNGHUN KIM·2021년 9월 6일
0
post-custom-banner

😊Today Learn

  • HTTPS의 차이점에 대해서 학습.
  • 해싱, 세션,쿠기에 대해서 학습.

학습한 내용 간단 정리

  • HTTPS : HTTP에서 보안을 추가한것.
  • 쿠기와 세션이 존재하는하는 이유: http가 상태를 저장하지 않는데, 상태를 저장하기위해서 사용하는것.
  • 쿠키랑 세션은 같은 역할을 하며
    쿠키: 클라이언트에 저장
    세션 : 서버에 저장(보통 세션은 사용자가 로그인 했냐 안했냐를 보기위해 씀.)
    세션과 쿠기를 주고받는 프로토콜이 HTTP이거나 HTTPS이다.
  • HTTPS 는 https req,res메시지가 모두다 암호화 되었음,
    그렇기 때문에 get요청을 바로 못보냄 클라이언트와 서버가 커넥션을 해야함.

HTTPS (HTTP +secure)

  • HTTPS 사용하는 이유 : 기밀성과 무결성을 보증해주기 때문
  1. 기밀성(privacy) : 메시지를 가로챌 수 없음 (그 누구도 중간에 메시지를 가로챌 수 없음. 메시지를 읽을 수 없다. --> "메시지는 암호화 되어 있다")
  2. 무결성(integrity): 메시지가 조작되지 않음 (내가 데이터를 A->B로 보내야되는데 메시지가 원본 그대로 잘 도착 했다.) 무결성 또한 암호화가 잘 되어져 있기 때문에 조작하기가 까다롭다.

HTTPS의 비대칭 키 암호화

HTTPS의 경우는 아래와 같이 암호화와 복호화를 함.

  • 서버가 공개키랑 인증서 클라이언트에게 줌
  • 공개키 -> 암호화 / 공개키는 누구에게나 열려있음.
  • 비공개 키(개인키) -> 복호화

인증서

인증서는 아래와 같은 내용을 보장함

  1. 브라우저에서 접속한 서버가 "의도한" 서버임을 보장
    https://google.com으로 접속하면 인증서에서 이 홈페이지가 진짜 구글인지 인증해주는것.
  2. 브라우저와 서버가 통신할 때 암호화할 수 있도록 서버의 공캐키 제공

서버에서 클라이언트로 인증서를 넘겨주며 인증서에는 공개키가 포함되어져 있으며 인증서는 보통적으로 CA에서 발급해줌.(CA는 정해진 인증기관이며 임의로 되는것은 아님)

해싱

간단하게 이야기하면 평문함호를 으깨서 알아볼수 없게끔 하는것이라고 보면됨.

해싱 알고리즘

1.해싱함수는 input-> oupt항상 동일한 결과를 낸다.
2.복호화가(사실상) 불가능하다.

레인보우테이블이라는 것이 있음.(유명한 패스워드를 해싱해서 만들어 놓은 테이블, 즉 너~~무 뻔한 패스워드를 해싱했을때 나오는것을 레인보우테이블에 적어놓은것)

솔트

  • 원래있는 패스워드에 소금을 쳐서 기존과 완전다른 해싱값을 나타낸다.
    서버에서 해시를 해야함

쿠키

HTTP의 stateless 특징을 보완해주는 도구

기본적으로 서버는 브라우저에게 일방적으로 쿠키를 제공할 수 있음.
일부 홈페이지에서는 쿠기 저장할건데 accept(허용)해줄수 있는거니? 라고 물어보는 경우도 있지만 보통은 일방적으로 쿠키를 줄 수 있음.

서버가 브라우저에게 쿠키를 보낼때는 HTTPS response의 헤더를 이용해서 보냄
헤더중에 Set-Cookie라는 헤더가 있음. 이 헤더에 키와 값을 적어서 보내줌.

브라우저가 서버에 보낼때는 Cooke라는 헤더를 이용해서 자동으로 서버에 보냄 위 사진 참조 하면 더 알기 쉬움.

세션인증 과정

profile
개발자가 되고 싶은 일문학도
post-custom-banner

0개의 댓글