[TIL]session

naming·2021년 10월 21일
post-thumbnail

HTTPS

  • 기밀성(privacy)
    -메세지를 가로챌 수 없다.
    -메세지를 읽을 수 없다.
    -메세지는 암호화 되어 있다.
    -해커가 정보를 읽을 수 없게 한다고 생각하면 쉽다.
    -비대칭키를 이용해서 복호화 한다.

  • 무결성(integrity)
    -메세지가 조작되지 않음!
    -메세지가 목적지로 가는 도중에 조작되지 않음
    -원본 그대로 잘 도착했다!
    -원본 조작을 예방할 수 있다.

브라우저 창의 왼쪽을 보면 자물쇠 모양으로 나타난 것을 확인 할 수 있다.

  • 비대칭 키 암호화
    -공개 키(열쇠구멍) -메시지를 암호화 하는데 사용
    -비공개 키(개인키:열쇠) -암호화된 메세지를 해독하는데 사용
    -key.pem (개인키)
    -cert.pem (ca에서 인증하는 키)

  • 인증서는 무엇을 보장할까?
    -브라우저에서 접속한 서버가"의도한"서버임을 보장
    -브라우저와 서버가 통신할 때 암호화 할 수 있도록 서버의 공개 키 제공
    https://howhttps.works/ko/the-keys/

ca 인증기관 리스트에서 아마존 등등 인증기관을 확인 할 수 있다.

해싱

  • 해싱 알고리즘
    -입력받은 데이터를 고정된 길이의 데이터로 변환할 때 이전 데이터를 알아볼 수 없게 만드는 것.
    -해싱 알고리즘은 sha-1,sha 256,sha 512 등이 있다.
    https://emn178.github.io/online-tools/sha1.html
    같은 길이의 암호를 만들어 준다.
    -input ->output이 늘 동일한 순수함수
    -해싱된 값은 사실상 복호화는 불가능 하다.
    해독이 불가능하게 하지만 많은 시간을 들여서 해독을 할 순 있다...

  • 솔트
    -암호화 해야하는 원본 값에 어떤 별도의 값을 추가해서 결과를 변형 하는 것.
    https://crackstation.net/
    -보완을 강화할 수 있다.

-주의 사항으로 솔트는 사용자와 비밀번호 별로 유일한 값을 가져야 한다, 절대 재사용하면 안됨.
-데이터베이스에 사용자 테이블에 해싱된 패스워드 값, 솔트 값같이 저장해야 됨

SSL/TLS

  • 웹 서버와 사용자의 웹 브라우저 간 통신을 암호화 하는데 쓰는 프로토콜
  • 공개키과 개인키를 교환해서 보안 세션을 생성 -> 통신을 암호화 하는 방식
  • TLS는 SSL보다 조금 더 많은 암호화를 하기 때문에 안전하다.

ngrok

  • ngrok이란 HTTP로 만들어진 서버를 HTTPS 프로토콜로 터널링 해주는 프로그램입니다.
  • 로컬에 구성한 개발 환경을 급하게 외부에 공개해야 할 경우가 있다.

쿠키

  • HTTP의 무상태성을(stateless)특징을 보완해 주는 도구.
  • 작은 문자열을 저장
  • connect.sid=세션id
  • 사용해더 cookie, set-cookie

서버는 브라우저에 일방적으로 쿠키를 저장할 수 있다 (o)
어떻게 서버가 브라우저에 쿠키를 저장할까?
-response에 헤더를 사용
-set-cookie

  • 쿠키는 인증상태 저장, 장바구니, 팝업 7일간 보지 않기, 맞춤광고 등이 있다.
profile
Encoding, Storage, Retrieval

0개의 댓글