20.10.28 [Authentication]

박종찬·2020년 10월 28일
0

TIL

목록 보기
42/89
post-thumbnail

스프린트가 이제 하나 남아서 그런가 기분이 오묘하다. 오늘은 암호화에 대해 스프린트가 진행되었다. 느낌은 알겠는데.. 🤔

Encryption

암호화란 메세지(아이디 또는 패스워드 등)를 일련의 수학적인 연산을 통해 다른 사람들이나 외부로부터 데이터를 읽을 수 없도록 만들어 개인 정보를 보호하여 정보를 클라이언트와 서버간 전달되는 프로세스를 말한다. 이 '전달' 이라는 것으로 암호화는 양방향성을 가지고 있다.

Hashing

어떠한 문자열을 '일련의 연산' 을 사용해 다른 문자열로 변환 을 하는 것이다. 이런 해싱은 서버 내에서 이루어지며, 상대적으로 정보가 노출되기 쉬운 클라이언트 상에서 보안을 신경쓰기 위해 사용된다.
해싱을 할 때엔 3가지 규칙을 따른다.
1. 모든 값에 대해 해시 값을 계산하는데 오래걸리지 않아야한다.
2. 모든 값은 고유한 해시 값을 가진다.
3. 아주 작은 단위의 변경이라도 완전히 다른 해시 값을 가져야한다.

Authentication

나는 ○○○이다!

개인 정보를 확인할 수 있는 본인인지 확인하는 과정을 말한다. 이 개인 정보를 확인하기 위해서는 일반적으로 아이디나 패스워드로 인증을 하는 것이다. 추가로 2단계 인증(핸드폰 인증, PIN 등)을 진행할 수 있다.

만약 인증이 존재하지 않은 Client-Server 있고 본인 외의 사람이 개인 정보를 요청한다면 Server는 군말 없이 정보를 응답해줄 것이다. 인증이 구현되었다면 서버는 클라이언트는 인증 정보를 DB에 저장된 정보와 비교해 개인 정보를 응답할지 판단한다.

Authorization

내가 관리자? 사용자?

권한 부여란 허용된 권한 범위 내에서 정보를 요청 및 응답을 받을 수 있도록 해주는 과정이다. 권한 부여가 존재하지 않는 웹이 있다면 일반인이 관리자처럼 행동할 수 있기 때문에 권한에 대해 주의해야 한다.

https://httpd.apache.org/docs/2.2/ko/howto/auth.html
https://ssd.eff.org/en/module/what-should-i-know-about-encryption

profile
반가워요! 사람을 도우는 웹 개발자로 성장하기! :)

0개의 댓글