1020 TIL 인증/보안 (1) session

냐하호후·2021년 10월 20일
0

TIL

목록 보기
53/101

🙆‍♀️ 암호화와 hashing, salting 등의 개념을 이해할 수 있다.

hashing

입력받은 데이터를 고정된 길이의 데이터로 변환할 때 이전 데이터를 알아볼 수 없게 만드는 것

ex)sha-1/sha 256/ sha 512 등
input 과 output이 늘 동일한 순수함수이다.
해싱된 값은 사실상 복호화는 불가능하다.

salt

암호화해야하는 원본 값에 어떤 별도의 값을 추가해서 결과를 변형하는 것이다.
솔트는 사용자와 비밀번호별로 유일한 값을 가져야한다.
데이터베이스 사용자 테이블에 해싱된 패스워드값, 솔트값이 존재한다.
해싱하기 전에 salt를 더한다. 원문+salt를 해싱한다. (사실 개발자 마음이다)

🙆‍♀️ 권한 부여(Authorization)와 인증(Authentication)에 대해 이해할 수 있다.

인증(authentication)은 자신이 누구라고 주장하는 사람을 확인하는 절차이다.

권한부여(authorization)는 가고 싶은 곳으로 가도록 혹은 원하는 정보를 얻도록 허용하는 과정이다.

🙆‍♀️ 쿠키의 작동 원리를 이해할 수 있다
🙆‍♀️ 클라이언트, 서버, 데이터베이스의 전체 동작을 이해할 수 있다.
🙆‍♀️ 회원가입 및 로그인 등의 유저 인증에 대해 구현하고 이해한다.
🙆‍♀️ 서비스의 보안과 관련된 방법을 알아보고 원리 및 장점 및 단점을 이해한다.

🙆‍♀️ SSL, TLS는 무엇인가요?

SSL(Secure Sockets Layer)은 보안 소켓 계층 이라는 뜻으로 인터넷을 통해 전달되는 정보 보안의 안전한 거래를 허용하기 위해 Netscape 사에서 개발한 인터넷 통신 규약 프로토콜이며, TLS(Transport Layer Security)는 SSL 3.0을 기초로 해서 IETF가 만든 프로토콜로 이는 SSL3.0을 보다 안전하게 하고 프로토콜의 스펙을 더 정확하고 안정성을 높이는 목적으로 고안되었습니다.
1.0 버전은 공개 된 적이 없고, 2.0 버전이 1995년 2월에 이르러 릴리스가 되지만 이 버전은 많은 보안 결함때문에 3.0 버전으로 곧바로 이어집니다.
3.0은 1996년 릴리스 되었고, 3.0 버전은 TLS 버전 1.0의 기초가 된 후, IETF에서 1999년 1월에 RFC 2246 표준 규약으로 정의하게 되었습니다.
SSL과 TLS 두 가지 프로토콜은 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정 에서 전송계층 종단간 보안과 데이터 무결성을 확보 할 수 있게 합니다.

🙆‍♀️ key와 cert의 다른 점은 무엇일까요?

암호 알고리즘엔 대칭 키와 비대칭 키가 있다.
대칭 키는 암호화 키와 복호화 키가 같다.
비대칭 키는 암호화 키와 복호화 키가 다르다.

비대칭 키에는 공개 키와 비공개 키가 있다. 공개 키는 메시지를 암호화하고 비공개 키는 메시지를 복호화한다. cert는 공개 키이고, key는 비공개 키 이다.

쿠키 & 세션

쿠키세션
저장 위치클라이언트서버
보안안좋음좋음
서버 부하없음높음
생명주기브라우저 종료해도 유지됨브라우저 종료시 소멸
속도빠름느림

쿠키는 클라이언트에서 상태를 유지하기위해서 사용한다. (무상태성을 보완)
쿠키는 만료 시간을 설정하여 브라우저가 종료되어도 유지되도록 할 수 있다.

세션은 브라우저가 종료되면 자동으로 사라진다.
하지만 엄밀히 말하면 세션중에서도 만료기간 설정이 가능한 세션이 있긴 하나, 기본적으로는 자동으로 소멸된다.

세션은 보통 하나의 서버에서만 접속 상태를 저장한다. 여러 서버에서 같은 세션 데이터에 접근하려하면 공통 store를 사용해야하는 번거로움이 있다.

세션에서 로그아웃의 중요성

세션 아이디가 담긴 쿠키가 유출된 상태에서는 해당 쿠키를 이용한 요청이 유출된 쿠키를 이용한 공격인지, 정말로 사용자가 요청을 보낸건지 서버가 확인할 방법이 없다.
즉, 서버에서 세션을 파괴하는 과정이 반드시 필요하다.

참고

SSL/TLS
key개념
쿠키&세션

profile
DONE is better than PERFECT

0개의 댓글

관련 채용 정보