Tips/인증 인가 3

슬라이딩 세션과 리프레시 토큰

토큰을 사용하면 서버에 사용자의 상태를 저장하지 않는다는 장점이 있는 반면 공격자가 토큰을 탈취한 경우 토큰을 즉시 무효화시키지 못하는 보안 취약점을 가집니다. 이를 방지하고자 토큰의 유효시간을 짧게, 즉 만료시간을 생성시간에서 얼마 지나지 않은 시간으로 설정할 수 있습니다. 하지만 이 방법은 만료된 토큰으로 들어온 요청을 무시하고 다시 사용자에게 로그인 정보를 입력하게 할 수 밖에 없습니다. 사용자가 페이지를 이동하거나 어떤 동작을 수행하려 할 때마다 로그인을 해야 한다면 아무도 그 서비스를 사용하려 하지 않을 것입니다. 비상태저장 방식인 토큰의 보안 취약점을 보강하고 사용자 편의성을 유지하기 위해 슬라이딩 세션을 사용합니다. 슬라이딩 세션은 로그인 정보를 다시 입력하지 않고 현재 가지고 있는 토큰을 ..

Tips/인증 인가 2021.11.17

인증(Authentication) vs. 인가(Authorization)

인증(Authentication)과 인가(Authorization)는 항상 함께 등장하는 개념이면서 사용하기에 헷갈리는 용어이기도 합니다. 문맥상 어색하지 않은 경우가 있어 이 둘의 차이를 두지 않고 사용하는 경우도 빈번합니다. 인증/인가 서비스를 제공하는 Auth0 사의 블로그에 이 둘에 대한 설명이 잘 소개되어 있어 번역해 보았습니다. 인증과 인가는 최신 컴퓨터 시스템에서 널리 사용되지만 사람들이 종종 혼동하는 용어입니다. 이 두 용어는 모두 보안과 관련이 있습니다. 인증이란? 인증은 어떤 개체(사용자 또는 장치)의 신원을 확인하는 과정입니다. 개체는 보통 어떤 인증요소를 증거로 제시하여 자신을 인증합니다. 예를 들어 은행에 가서 돈을 인출하려면 하면 은행직원은 여러분이 누구인지 확인하기 위해 신분증..

Tips/인증 인가 2021.11.14

JWT (JSON Web Token)

JWT([jot]라고 읽는다고 하지만 국내에서는 그렇게 읽는 사람을 본적은 없습니다.😅)는 RFC 7519에 소개된 것으로써 문서의 초록에 따르면 다음과 같습니다. JWT는 두 당사자 사이에 이전될 수 있는 클레임을 나타내는 간결하고 URL에 안전한 방법입니다. JWT에 포함된 클레임은 JSON 객체로 인코딩되어 JSON 웹 서명(JWS, JSON Web Signature)의 페이로드 또는 JSON 웹 암호화(JWE, JSON Web Encryption)의 일반 텍스트로 사용됩니다. 클레임을 디지털 방식으로 서명하거나 메시지 인증 코드(MAC, Message Authentication Code)로 암호화 되어 무결성을 보호합니다. jwt.io 에서 JSON 객체로 JWT를 인코딩해 보거나 인코딩되어 있는..

Tips/인증 인가 2021.11.06