TokenAuthentication
DRF에서 실습으로 TokenAuthentication을 진행했다.
장점
- 토큰을 통해서 간단하게 인증 절차를 처리할 수 있다.
문제점
- 토큰 key 값이 암호화되지 않은채로 헤더에 담겨 오간다. 따라서 해킹에 취약해질 것이라 판단된다. DRF 문서에서도 이 체계를 사용하는 경우 운영상태에선 반드시 https를 사용하라고 하였다.
해결방법
- https에서는 SSL방식을 사용하여 http헤더와 요청•응답 데이터를 비롯한 모든 메시지 내용을 대칭키로 암호화 및 복호화 진행하므로 이러한 문제점이 보완될 것으로 판단된다.
JWT
JWT 개념에 대한 입문으로 보기 좋은 영상이다.
위 내용를 요약하자면
- JWT는 서명이 포함된 토큰이며 토큰을 따로 저장할 필요가 없다.
- (장점) 유저가 증가함에 따라 인증관련 DB(주로 Reids를 사용한다고 함)를 확장하고 유지 관리해야할 필요가 없다.(예시로 QR코드 방문인증)
- (단점) 대신 DB에 세션을 저장하는 이점을 사용할 수 없다.
- DB에서 세션 삭제를 통한 다른 기기 강제 로그아웃 기능(인스타그램에 구현됨)
- 한 계정에 로그인 된 사람들을 조회하거나 수를 제한하는 기능(넷플릭ㅎ스에 구현됨)
- JWT 역시 기존의 토큰과 마찬가지로 토큰 내용을 암호화하진 않는다고 한다.
JWT를 사용해도 토큰의 내용이 유출될 것이 우려된다면 역시 HTTPS구현은 필요할 것으로 생각된다.