티스토리 뷰

Spring

[인프런] 스프링부트 시큐리티

토마토계란 2023. 6. 20. 23:20

https://www.inflearn.com/course/스프링부트-시큐리티/dashboard
인프런 강의를 듣고 정리한 글이다.

  • JWT (Json Web Token)

    • Json 객체. 디지털 서명이 되어 있음. HMAC 알고리즘 혹은 RSA 사용

    • 구조

      • xxxxx.yyyyy.zzzzz

        • x: header
        • y: payload
        • z: signature
      • header

          {
            "alg" : "HS256",
            "typ" : "RSA"
          }

        형태의 JSON을 Base64Url Encoding

      • payload

        • private claim: user id 같은 정보를 넣음
      • signature

          HMACSHA256(header + "." + payload, secret key)

        header + payload를 서버만 아는 secret key 로 암호화. HS256

      • Base64(header) + Base64(payload) + Base64(signature) 로 해서 사용자에게 줌

      • 웹 브라우저 (로컬 스토리지 or 세션 스토리지) 에 저장

    • 검증: 복호화한 후, 다시 signature 를 만들어서 같은지 확인

    • secret key만 여러 서버가 동일하게 들고 있으면 인증 가능

  • HMAC: secret key 를 포함한 암호화 방식

  • SHA256: hash algorithm

  • Http Basic 인증 방식

    • 쿠키에 담지 않고 Header의 AuthorizationID, PW를 넣는 방식
    • https 를 사용해야 암호화가 되어서 날아감. 노출이 되면 위험
  • Http Bearer 인증 방식

    • Authorization 에 token 을 담는 방식
    • 노출이 되어도 아이디, 패스워드가 알려지지 않음. 물론 토큰이 노출되면 유효 시간 동안은 타인도 사용 가능
  • Spring security

    • 권한 관리를 위해 세션에 UserDetails 를 담고 있음 (ex. hasAuthority(’CREATOR’))
    • 굳이 세션에 저장 안해도 됨. security가 관리해주어서 현하려고 하는 거임
  • XSS (Cross Site Scripting)

    • script 를 넣어서 타겟 서버에서 스크립트가 실행되게 하는 것
    • 정보를 빼올 수 있다
  • CSRF (Cross Site Request Forgery)

    • 공격자가 중간에 request를 탈취해서 피해자인척 서버에 요청하는 해킹방식
    • 인증 값을 탈취하여 사용
  • 어디에 저장?

    • local storage
    • cookie 에 저장
    • 가장 좋은 방법
      • refresh token 을 제공하여 새로고침 때마다 access token 을 받아오도록 하는 것
      • refresh token 을 알더라도 access token을 모르기 때문에 소용 없음
  • HttpEntity
    • Spring Security의 XML.
    • 설정값을 갖고 있는 객체
  • SecurityConfig.configure(HttpEntity http)
    • HttpEntity에 설정값을 넣는 메서드
  • SecurityContextHolder는 SecurityContext를 관리하는 객체.
  • SecurityContext 은 Authentication을 가짐
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함