TIL12. 인증(Authentication)

박경철·2021년 6월 6일
0

TIL

목록 보기
12/19

1. 인증(Authentication)

유저의 아이디와 비번을 확인하는 절차.

1.1 로그인 절차

1. 유저의 아이디, 비밀번호 생성
2. 유저의 비밀번호 암호화하여 DB에 저장.
3. 로그인 -> 아이디, 비밀번호 입력
4. 유저가 입력한 아이디, 비밀번호는 암호화 시켜 DB의 암호화된 비밀번호와 비교
5. 아이디, 비멀번호가 일치하면 access token을 client에 전송
6. 로그인 성공 후 access token을 header에 첨부하여 request를 server에 전송함으로 매번 로그인을 할 필요가 없다.

1.2 암호화

유저의 개인정보를 노출시키지 않도록 암호화하여 DB에 저장한다.
비밀번호 암호화에는 단방향 해쉬 함수(one-way hash function)가 일반적으로 쓰인다.

1.3 단방향 해쉬 함수

단방향 해시 함수는 원본 메시지를 변환하여 암호화된 메시지인 다이제스트(digest)를 생성한다. 원본 메시지를 알면 암호화된 메시지를 구하기는 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어서 단방향성(one-way) 이라고 한다.

1.4 bcrypt

Salting과 Key Stretching을 구현한 해쉬 함수중 가장 널리 사용되는 것으로 암호화 하기위한 라이브러리

* 단방향 해쉬 함수의 취약점들을 보안하기 위해 일반적으로 2가지 보완점

1. Salting
: 실제 비밀번호 이외에 추가적으로 랜덤 데이터를 더해서 해시값을 계산하는 방법.

2. Key Stretching
: 단방향 해쉬값을 계산 한 후 그 해쉬값을 또 또 해쉬 하고, 또 이를 반복하는 것을 말한다.
profile
안녕하세요!

0개의 댓글

관련 채용 정보