CS/보안

    OAuth 2.0 (Open Authorization)

    OAuth 개념 Open Authorization 2.0의 약자로 인증을 위한 프로토콜이다. 제 3자 인증방식으로 구글 , 카카오, 네이버 ,페이스북, 깃허브 등에서 제공하는 간편 로그인 기능을 말한다. 기본적으로 사용자는 서버를 신뢰하지 않고, 자신의 민감한 정보를 작성하는 것을 꺼린다. 서버 측 또한 마찬가지로 사용자의 민감한 정보를 관리하는데 리소스가 필요하다. 따라서 OAuth를 사용해 신뢰할 수 있는 서버에 정보를 맡겨놓고 접근 할 수 있는 권한을 주는 것을 말한다. OAuth 2.0 주체 - Resource Owner : 사용자 - Resource Server & Authorization Server : OAuth를 통해 인증, 인가를 제공해주는 서버 를 말한다. 사용자의 자원(이름, 이메일)..

    JWT (JSON Web Token)

    1.1 JWT 이란?유저를 인증하고 식별하기 위한 토큰(Token)이다.JWT는 서버와 클라이언트 간 정보를 주고 받을 때, Http Request Header에 JWT 토큰을 넣어서 전송하며, 서버는 별도의 인증 과정없이 헤더에 포함되어 있는 JWT정보를 통해 인증한다.JWS(Json Web Signature)은 JSON으로 전자 서명을 하여 url - safe 문자열로 표현한 것이며 JWE(JSON Web Encryption)은 json을 암호화하여 url-safe 문자열로 표현한 것이다.1.2 JWT 토큰 구조: JWT는 세 파트로 나누어지며 순서대로 헤더 , 페이로드 ,시그니처(서명) 으로 이루어져 있다.며. 각 파트는 점으로 구분하여 xxxxx.yyyyyy.zzzzz의 형식으로 표현된다. 각각의..

    암호화와 복호화 그리고 양방향 암호화

    - 암호화 & 복호화 암호화 : 평문(해독 가능한 텍스트)을 암호문으로 변환하는 과정 ex) “12345” → 암호화 → 암호문(”ads5gjsk!asfasdf”) 복호화 : 암호문을 평문으로 변환하는 과정 ex) 암호문 → 복호화 → 평문(”12345”) - 암호화의 종류 단방향 암호화 : 암호화 후 복호화를 할 수 없는 것이 특징 ex ) 사용자 비밀번호. 사용자가 입력한 비밀번호를 암호화하여 db에 저장이 될때, 모든 접근자는 암호화 된 코드를 다시 평문으로 볼 수 없다. 이는 해킹이 되어도 복호화가 매우 힘들다 해쉬 방식이 대표적 해쉬 함수: 해쉬 함수는 임의의 길이의 데이터를 입력받아 일정한 길이의 비트열로 반환 시켜주는 함수로 입력값의 길이가 달라도 출력값은 언제나 동일한 길이로 반환되며 동일..