ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인증 & 보안 기초
    Topic/Node.js | server 2022. 2. 7. 22:16
    반응형

    HTTPS

    HTTPS: Hyper Text Transfer Protocol Secure socket layer

     

    인증에서 HTTPS 프로토콜을 사용해야만 하는 이유 

    HTTP보다 상대적으로 안전하고, 데이터 제공자의 신원을 보장받을 수 있기 때문이다.

     

    암호화

    HTTPS 프로토콜의 특징 중 하나는 암호화된 데이터를 주고받기 때문에,
    중간에 인터넷 요청이 탈취되더라도 그 내용을 알아볼 수 없다.

    그렇기 때문에 데이터를 암호화하여 전송하는 HTTPS 프로토콜을 사용한다면 비밀번호와 같은 중요한 데이터가 유출될 가능성이 HTTP 프로토콜보다 현저히 적어지게 된다.

     

    인증서 

    브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있는 특징을 가진다.

    브라우저는 인증서의 도메인과 데이터를 제공한 제공자의 도메인을 비교할 수 있기 때문에
    인증서의 도메인 정보와 데이터 제공자의 도메인 정보가 '중간자 공격'을 감지하여 보안 위협으로부터 사용자 보호에 용이하다.

     

    Cookie 🍪

    서버에서 클라이언트에 데이터를 저장하는 방법 중 하나이다.


    -> 서버가 원한다면 서버는 클라이언트에서 쿠키를 이용하여 데이터를 가져올 수 있다.
    -> 쿠키를 이용하는 것은 단순히 서버에서 클라이언트에 쿠키를 전송하는 것만은 의미하지 않고 서버로 쿠키를 전송하는 것도 포함

    서버가 클라이언트에 데이터를 저장할 수 있다.

    서버는 쿠키를 이용하여 데이터를 저장하고 원할 때 이 데이터를 다시 불러와 사용할 수 있다.
    -> 하지만 데이터를 저장한 이후 아무 때나 데이터를 가져올 수는 없다.
    -> 데이터를 저장한 이후 특정 조건들이 만족하는 경우에만 다시 가져올 수 있다. (쿠키 옵션으로 표현 가능 !)

    1. 도메인
      우리가 흔하게 보는 www.google.com 과 같은 서버에 접속할 수 있는 이름이다.
      쿠키 옵션에서 도메인은 포트 및 서브 도메인 정보, 세부 경로를 포함하지 않는다.
      따라서 요청해야 할 URL이 http://www.localhost.com:3000/users/login 이면 도메인은 localhost.com이 된다.

    2. Path
      세부 경로는 서버가 라우팅할 때 사용하는 경로다.
      만약 요청해야할 URL이 http://www.localhost.com:3000/users/login인 경우라면
      세부 경로는 /users/login이 된다.

    3. MaxAge or Expires
      쿠키가 유효한 기간을 정하는 옵션이다.
      MaxAge는 앞으로 몇 초 동안 쿠키가 유효한지 설정하는 옵션이다.
      Expires는 MaxAge와 비슷하지만, 언제까지 유효한지 Date를 지정해줄 수 있다.
      이후 지정된 시간, 날짜를 초과하게 되면 쿠키는 자동으로 파괴된다.
      ** 두 옵션 모두 지정되지 않는다면 브라우저 탭을 닫아야 쿠키가 제거된다.
    4. Secure
      쿠키를 전송해야 할 때 사용하는 프로토콜에 따른 쿠키 전송 여부를 결정한다.
      해당 옵션이 true로 설정된 경우, HTTPS 프로토콜을 이용하여 통신하는 경우 메나 쿠키를 전송할 수 있다.

    5. HttpOnly
      자바스크립트에서 브라우저의 쿠키에 접근 여부를 결정한다.
      해당 옵션이 true인 경우, 자바스크립트에서는 쿠키에 접근이 불가능하다.
      이 옵션이 false인 경우, 자바스크립트에서 쿠키에 접근이 가능하므로 XSS 공격에 취약하다!

    6. SameSite
      Cross-Origin 요청을 받은 경우, 요청에서 사용한 메소드와 해당 옵션의 조합으로 쿠키 전송 여부를 결정하게 된다.
      LAX: Cross-Origin 요청이면 GET 메소드에 대해서만 쿠키를 전송할 수 있다.
      Strict: Cross-Origin이 아닌 same-site 인 경우에만 쿠키를 전송할 수 있다.
      None: 항상 쿠키를 보내줄 수 있다. // 다만 쿠키 옵션 중 Secure 옵션이 필요하다.
      (이 때 same-site는 요청을 보낸 Origin과 서버의 도메인이 같은 경우를 말한다.)

     

    반응형
Designed by LEO.