HTTPS

이민기·2022년 2월 4일
0
post-thumbnail

HTTPS

  • HTTPS (Hyper Text Transfer Protocol Secure Socket layer) : HTTP 통신을 암호화해서 통신하며, 중간자 공격에 대비할 수 있다
    • 중간자 공격 (Man-in-the-middle attack) : 통신 중간에 데이터를 탈취 및 변조하여 공격하는 것
  • 암호화 : 일련의 정보를 알고리즘을 이용해서 정보의 소유자만 이해할 수 있도록 하여 정보를 관리하는 과정
  • Salt : 어떤 값을 암호화 할 때, 별도의 값을 추가해 결과를 변형하는 것
  • Cookie : 서버에서 클라이언트에 정보를 저장하는 방법
    • JavaScript를 이용해서 접근가능 ⇒ 중요한 정보는 담으면 안된다.
    • 주로 사용되는 Cookie Options
      • Domain : 세부 도메인은 포함 x
      • Path : 라우팅할 때 사용되는
      • MaxAge(Expires) : Cookie의 유효기간을 설정
      • Secure : Protocol에 따른 Cookie전송 여부
      • HttpOnly : JavaScript에서의 쿠키접근 여부
      • SameSite
        • ax :Cross-Origin 요청이면 'GET' 메소드에 대해서만 쿠키를 전송할 수 있습니다.
        • Strict : Cross-Origin이 아닌 same-site 인 경우에만 쿠키를 전송 할 수 있습니다.
        • None: 항상 쿠키를 보내줄 수 있습니다. 다만 쿠키 옵션 중 Secure 옵션이 필요합니다. 이때 'same-site'는 요청을 보낸 Origin과 서버의 도메인이 같은 경우를 말합니다.
  • CSRF (Cross Site Request Forgery) : 다른 사이트에서 다른 사이트의 유저가 보내는 요청을 조작하는 공격방식
  • Session-based Authentication (세션 기반 인증)
    • Session : 사용자가 본인임을 인증한 상태
  • Token based Authentication (토큰 기반 인증)
    • Token : 유저정보를 암호화 하여 클라이언트에서 정보를 보관
    • JWT (JSON Web Token) :
      • Access Token : 보호되고 있는 정보들에 접근할 수 있는 권한 부여
      • Refresh Token :짧은 Access Token을 대비해 Access Token을 갱신할 수 있는 Token
      • 구조
        • Header : 종류와, 암호화한 방법에 대한 정보가 ㅇ
        • Payload : 정보가 담겨져 있는 곳
        • Signature : secret key와 salt를 이용하여 암호화
    • 장점
      • Statelessness & Scalability (무상태성 & 확장성)
      • 안전하며 권한 부여에 용이
  • OAuth : 이미 사용자의 정보가 있는 다른 사이트에서 대신 인증해주고 토큰을 발급해주어 이를 사용해 권한을 부여받는 매커니즘
    • Resource Owner : 액세스 중인 리소스의 유저, 구글 계정을 이용하여 App에 로그인할 경우, 이때 Resource owner은 유저가 된다.
    • Client : Resource owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램 클라이언트는 서버, 데스크탑, 모바일 또는 기타 장치에서 호스팅 가능
    • Resource server : client의 요청을 수락하고 응답할 수 있는 서버
    • Authorization server : Resource server가 액세스 토큰을 발급받는 서버
    • Authorization grant : 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명의 유형
    • Authorization code : access token을 발급받기 전에 필요한 코드, client ID로 이 code를 받아온 후, client secret과 code를 이용해 Access token 을 받아온다
    • Access token : 보호된 리소스에 액세스하는 데 사용되는 credentials, Authorization code와 client secret을 이용해 받아온 이 Access token으로 resource server에 접근이 가능해 진다
    • Scope : scope는 토큰의 권한을 정의, 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위를 정의하는 것
profile
블로그를 옮기는 중입니다. https://min71.dev

0개의 댓글