인증

Goun Seo·2021년 10월 10일
0

인증(Authentication) : 유저의 identification을 확인하는 절차
(user의 아이디와 비밀번호를 확인하는 절차)

인증 왜 하는가 ?

로그인시 user의 정보를 확인하면서 보안을
유지하기 위해서 하는 절차라고 생각하면 된다.

비밀번호 관리 하는 법?

통신 시 개인 정보를 주고 받을 때 SSL을 적용하여 암호화(HTTPS)

HTTP VS HTTPS:

HTTP: 암호화가 추가되지 않았기 때문에 보안에 취약하다.

HTTPS: 안전하게 데이터를 주고받을 수 있다
암호화/복호화의 과정이 필요하기 때문에 HTTP 보다 느리다.
인증서를 발급하고 유지하기 위한 추가 비용이 발생한다.

* 암호화 (해쉬)

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

  • 단방향 해쉬값을 계산 한 후 그 해쉬값을 또 해쉬 하고, 또 이를 반복하는 것을 말한다.

  • 최근에는 일반적인 장비로 1초에 50억 개 이상의 다이제스트를 비교할 수 있지만, 키 스트레칭을 적용하여 동일한 장비에서 1초에 5번 정도만 비교할 수 있게 한다. GPU(Graphics Processing Unit)를 사용하더라도 수백에서 수천 번 정도만 비교할 수 있다. 50억 번과는 비교할 수도 없을 정도로 적은 횟수다. 앞으로 컴퓨터 성능이 더 향상되면 몇 번의 반복을 추가하여 보완할 수 있다.

ex) salting : 1234과 있으면 뒤에 랜덤 글자를 붙이는것
keystretching: 원래 있던 값과 솔팅 값을 더해서 계속 늘림

원래 글자 +랜덤 글자 계속 반복해서 붙여서 계속 늘림
salting 1번 해쉬 계속

JWT(json web token)

앞서 언급했듯이 유저가 로그인에 성공한 후에는 access token이라고 하는 암호화된 유저 정보를 첨부해서 request를 보내게 된다.

profile
그리다 보면 ~ ♪

0개의 댓글