View

인증과 인가

hooti 2020. 8. 11. 22:18

인증과 인가

인증(Authentication)과 인가(Authorization)는 API에서 가장 자주 사용되는 기능 중 하나이다. 누가, 언제, 어떻게 쓰고 있는가를 파악하기 위해 어떤 사이트에서든 해당 기능을 사용한다. 가장 기본적으로 제작된 사이트에서도 인증과 인가를 요구한다.

 

 

인증이란?

유저가 누구인지 확인하는 절차로 클라이언트가 자신이 주장하는 사용자와 같은 사용자인지를 확인하는 과정을 말한다.

 

인가란?

유저에 대한 권한을 허락하는 절차로 권한부여, 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지를 확인하는 과정을 말한다.

 

인증과 인가의 차이점

인증을 거친 후 인증된 사용자에 대한 특정한 권한을 부여 한다. 카페등급처럼 사용자가 접근 후 어떠한 등급인지에 따라 인증 후 접근을 할 수 있는 부분이 제한되게 구성하는것이 둘의 차이점이다.

 

 


 

 

단방향 해쉬함수

단방향 해시 함수는 수학적인 연산을 통해 원본 메시지를 변환하여 암호화된 메시지를 생선한다. 원본 메시지를 알면 암호화된 메시지를 구하기는 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어 한쪽으로만 가능한 함수다.

 

이런 단방향 해쉬 함수에는 문제점이 있는데 만약 암호화에 사용하는 메세지가 동일하다면 비슷한 패턴을 가진 메세지가 생성되고, 이러한 메세지를 모았을 땐 함수를 추출할 수 있는 패턴을 구할 수 있게된다. 이런 취약점을 이용하여 해커들이 정보를 가져갈 수 있는데 이런 해킹을 레인보우 공격이라 한다.(추출한 정보는 레인보우 테이블)

 

그렇다면 이부분을 보완하기 위해 어떻게 해야할까?

 

솔팅(salting)

솔트는 단방향 해시 함수에서 암호화메세지를 생성 할 때 추가되는 바이트단위의 임의의 문자열이다. 그리고 이 원본 메시지에 문자열을 추가하여 암호화메세지를 생성하는 것을 솔팅이라 한다. 

 

키 스트레칭(key Stretching)

솔팅한 암호화메세지를 생성하고, 생성된 메세지를 입력값으로 하여 또 다시 메세지를 생성하고 이를 반복하는 방법으로 암호화메세지를 생성할 수 있다. 이것이 기본적인 키 스트레칭 과정이다.

 

 

 

 

 

참고문서 : https://velog.io/@aaronddy/%EC%9D%B8%EC%A6%9DAuthentication%EA%B3%BC-%EC%9D%B8%EA%B0%80Authorization

 

인증(Authentication)과 인가(Authorization)

인증과 인가 인증이란? 유저가 누구인지 확인하는 절차, 회원가입하고 로그인 하는 것. 인가란? 유저에 대한 권한을 허락하는 것. 누가, 언제, 어떻게 쓰고 있는가를 파악하기 위해 어떤 사이트��

velog.io

참고문서 : https://choidev-1.tistory.com/66

 

(자바) 단방향 해시 함수

보통 프로그래머는 아래의 두 가지 중 한가지로 사용자의 패스워드를 저장한다.  - 단순 텍스트(plain text)  - 단방향 해시 함수(one-way hash function)의 다이제스트 단순 텍스트를 사용하는 것은 현업

choidev-1.tistory.com

 

'Review' 카테고리의 다른 글

ESLint, Prettier 적용  (0) 2020.08.17
Set, Dictionary, hash  (0) 2020.08.12
React 복습과 Fetch & Map  (0) 2020.08.10
Database(데이터베이스)  (0) 2020.08.06
React의 SASS와 Router  (0) 2020.08.05
Share Link
reply
«   2024/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