인증 / 보안 (1)

Heechang Jeong·2023년 5월 2일
0

✍ 복습 자료

  • 어떤 웹사이트에 들어갔을 때, 서버가 일방적으로 클라이언트에 전달하는 작은 데이터
    서버가 웹 브라우저에 정보를 저장하고 불러올 수 있는 수단
    해당 도메인에 대해 쿠키가 존재하면, 웹 브라우저는 도메인에게 HTTP 요청 시 쿠키를 함께 전달한다.

  • 사용자 선호, 테마 등 장시간 보존해야하는 정보 저장에 적합하다. (로그인 상태 유지)

  • Domain : 서버와 요청의 도메인이 일치하는 경우 쿠키 전송
    Path : 서버와 요청의 세부경로가 일치하는 경우 쿠키 전송
    MaxAge or Expires : 쿠키의 유효기간 설정
    HttpOnly : 스크립트의 쿠키 접근 가능 여부 결정
    Secure : HTTPS 프로토콜에서만 쿠키 전송 여부 결정
    SameSite : CORS 요청의 경우 옵션 및 메서드에 따라 쿠키 전송 여부 결정



  • Session

    사용자가 인증에 성공한 상태

    서버가 Client에 유일하고 암호화된 ID를 부여한다.
    중요 데이터는 서버에서 관리한다.



  • 해싱

    암호화만 가능하다.
    해시 함수를 사용하여 암호화를 진행한다.

    • 해시 함수

      항상 같은 길이의 문자열을 리턴한다.
      서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나온다.
      동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나온다.

    • 레인보우 테이블

      해시 함수를 거치기 이전의 값을 알아낼 수 있도록 기록해 놓은 표.

      레인보우 테이블에 기록된 값의 경우에는 유출이 되었을 때 해싱을 했더라도 해싱 이전의 값을 알아낼 수 있으므로 보안상 위협이 될 수 있다.

    • 솔트 Salt

      그래서 해싱 이전 값에 임의의 값을 더해 데이터가 유출되더라도 해싱 이전의 값을 알아내기 더욱 어렵게 만드는 방법인 솔트를 활용할 수 있다.

      솔트를 사용하게 되면 해싱 값이 유출되더라도, 솔트가 함께 유출된 것이 아니라면 암호화 이전의 값을 알아내는 것은 불가능에 가까움.


  • 해싱의 목적

    데이터 그 자체를 사용하는 것이 아니라, 동일한 값의 데이터를 사용하고 있는지 여부만 확인하는 것이다.

    민감한 데이터를 다루어야 하는 상황에서 데이터 유출의 위험성은 줄이면서 데이터의 유효성을 검증하기 위해서 사용되는 단방향 암호화 방식이다.



0개의 댓글