https

HARIBO·2021년 11월 22일
0

https

  • HTTP프로토콜의 암호화된 버전
  • 암호화를 위해 SSL이나 TLS을 사용한다.
  • 비대칭 키 암호화(암호화화 복호화에 사용하는 키가 다르다)를 사용한다.
    • 사용자는 공개 키를 사용, 서버는 개인 키를 사용
    • CA(Certificate Authority)는 신뢰할 수 있는 사이트임을 증명하는 SSL인증서를 발급하고, 클라이언트(브라우저)에게 공개 키를 제공한다.
    • 키는 통신의 시작 부분에서만 사용한다.

hashing

  • 어떠한 문자열에 임의의 연산을 적용해 다른 문자열로 변환하는 것. SHA256등의 알고리즘 사용

salt

  • 암호화 해야 하는 값에 별도 값을 추가한 뒤 암호화를 하는 것
  • 유저와 패스워드 별로 유일한 값을 가져야 한다.
  • 비밀번호를 변경할 때마다 새로운 salt를 사용해야 한다.
  • salt는 재사용하면 안되고, DB의 유저 테이블에 저장되어야 한다.

쿠키

  • 서버가 일방적으로 클라이언트에 전달하는 데이터
  • stateless한 http요청에서 상태를 저장한다.
  • 브라우저는 해당 도메인에 대한 쿠키가 존재하면 http request시 쿠키를 같이 전달
  • 자바스크립트로 접근 가능해서 XSS공격에 취약하다. 개인정보는 담지 않는것이 좋다.
  • 쿠키의 여러 설정들
    https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Set-Cookie

Session

  • 서버는 중요한 데이터를 암호화된 세션 아이디로 저장
  • 클라이언트는 저장된 세션 아이디로 작업 수행
  • 쿠키와 다르게 접속 상태를 서버에 저장한다.
  • 하나의 서버에서 상태를 관리하기 때문에 서버에 부담이 가고 분산에 불리하다. 쿠키와 같이 XSS공격에 취약하다.

0개의 댓글