작성일자 : 2022-01-12
- 자동 로그인 기능은 쿠키 value 사용해서 인증을 한다.
- 쿠키 자체가 보안에 취약하다는 문제가 있다.
- 쿠키 value 값으로 user 테이블의 기본키인 userSeq를 사용하고 있다. 기본적인 쿠키 보안 설정을 해도 악의적인 사용자가 쿠키값에 일정 숫자를 다르게 입력하면 다른 사용자의 권한으로 로그인할 수 있는 문제가 있다.
-
쿠키 옵션 setHttpOnly, setSecure 설정을 true로 한다.
-
setHttpOnly : XSS(Cross Site Scripting) 공격 차단, 자바스크립트로 쿠키 조회를 막는다.
-
setSecure : Https 로 통신하는 경우에만 웹브라우저가 쿠키를 서버로 전송하는 옵션이다. Https는 HTTP protocol의 암호화된 버전이다.
-
-
쿠키 value에 암호화를 적용하여 저장하고 클라이언트에게 전달할 수 있도록 해야한다.
-
회원의 비밀번호를 암호화할 때 사용한 Bcrypt은 단방향 방식으로 암호화만 가능하다. Bcrypt로 쿠키 value를 복호화하여 로그인 처리를 할 수 없었다.
-
고급 암호 표준 알고리즘인 AES256은 양방향 방식으로 서버에 키만 가지고 있으면 암호화/복호화를 할 수 있다. 이러한 이유로 쿠키 value를 암호화할 때는 Bcrypt 대신 AES256를 적용하기로 하였다.
-
AES256의 단점은 AES256은 키가 유출되면 보안의 의미가 사라지기 때문에 키에 대한 정보 저장에 안정성 확보가 필요하다.
HTTPS는 TCP 위에 SSL/TLS 층을 추가하여 암호화, 인증 그리고 무결성 보장을 통해 더 안전하게 만들어주는 프로토콜입니다.
SSL은 대칭키 공개키 둘다 사용함
-
- 블록 암호 알고리즘 - 평문을 블록 단위로 암호화하는 대칭키 암호 시스템
- 패딩 - 암호화하기 위해서는 평문을 우선 블록 크기의 배수로 만들어준다.
- DES를 대체한 암호 알고리즘으로 대칭키 알고리즘이다.
- 블록 크기는 128비트이고, 키 길이에 따라 128, 192, 256비트로 분류
- 키 크기에 따라 10/12/14회 Round 수행
- 라운드키의 수 = N+1 개
-
-
HASH 함수를 적용한 단방향 암호화 알고리즘으로 복호화가 불가능
-
최초 개발된 함수는 SHA-0로, SHA-0을 변형한 함수는 SHA-1로, 그 후에 발표된 SHA-224, SHA-256, SHA-384, SHA-512를 묶어 SHA-2 라고 한다.
-
SHA-1이 가장 많이 사용되고, TSL, SSL, IPSec, SSH에서 사용
-
SHA 는 MD5 보다는 느리지만 강화된 보안을 제공한다.
-
SHA-256 암호화 방법은 주로 사용자의 패스워드에 사용 => E-mail 주소나 연락처, 이름 등은 서비스 상에서 안내 등을 위해 평문으로 만들 필요가 있지만 패스워드는 평문으로 만들 필요가 없는 정보로 분류
-
-
- 암호화키와 복호화 키가 같은 암호화
- 빠른 암복호화하는 장점이 있지만, 비밀키가 외부에 노출되면 기밀성이 확보되지 않는 단점이 있다.
- 알고리즘의 종류에는 AES, DES, 3DES, SEED, ARIA 등이 있다.
- 서로 다른 두 개의 키, 공개키와 개인키를 사용하여 암호화하고 복호화
- 공개키로 암호화하고 개인키로 해독 (개인키와 공개키의 위치를 바꿔 실행하면 전자서명이 된다.)
- 개인키를 가진 사람만이 공개키를 통해 암호화된 메세지 해독 가능
- 처리 속도는 느리나, 키 교환이 용이하다는 장점이 있다.
- 알고리즘의 종류에는 RSA, DSA 등이 있다.
-
스트림 기반 암호화는 비트 단위로 암호화 하는 방식 ex) LFST, MUX Generator
-
블록기반 암호화는 블록 단위로 암호화 하는 방식 ex) DES, AES, SEED
-
-
입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미
-
비밀번호에 사용
-
암호문을 평문으로 되돌릴 수 없다.
-
입력한 비밀번호가 맞는지 확인하기 위해 복호화 과정을 거치지 않고, 입력한 비밀번호를 다시 암호화하여 저장된 비밀번호와 같은지 비교
-
알고리즘의 종류에는 SHA시리즈, MD5 등이 있다.
-
참고 :
https://www.crocus.co.kr/1230
https://mysterico.tistory.com/30
https://jusungpark.tistory.com/34
https://www.youtube.com/watch?v=wPdH7lJ8jf0