보안(Security)/Login, Password Policy
-
정규표현식( Regular Expression ) 및 패스워드( Password ) 정책보안(Security)/Login, Password Policy 2018. 9. 10. 09:54
사이트 회원가입을 할 때 "비밀번호는 영어 대,소문자 / 특수문자 / 숫자를 사용해 8자 이상 입력해주세요" 라는 글을 많이 봤을 것이다. 개발자 입장에서 사용자가 입력한 비밀번호가 상기 조건을 만족하는지 어떻게 확인할까? 여기서 정규 표현식이 필요하다. 정규 표현식(Regular Expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 줄여서 regix라고 칭한다. 각종 프로그래밍 언어에서 지원하고 있고, 자바에서는 regix 패키지를 통해 지원한다. 로그인 할 때 빈번하게 사용되는 정규표현식 정리 메타문자설명.임의 1개 문자와 일치해야 함*메타 문자 앞의 문자가 0개 이상 일치해야 한다[...]일치 문자 목록[^...]비일치 문자 목록(...)괄호 안의 문자열 ..
-
(Web Security)로그인 시도 횟수 제한 예제 및 쿼리보안(Security)/Login, Password Policy 2018. 9. 10. 09:53
로그인 시도 횟수에 제약을 주지 않는다면 해커 입장에서 무작위 공격을 시도해 정보를 매우 쉽게 취득할 수 있다. 이를 방지하기 위해 아이디에 대한 접속 횟수를 제한해 일정 횟수가 넘는다면 로그인 시도를 막는 기법을 사용하도록 한다. ID마다 로그인 실패 횟수, 로그인 제한여부, 최근 로그인 시도 시각, 제한횟수를 저장하는 칼럼을 추가한다. 구현 기능 - 4회 이상 로그인 시도 실패시 제한횟수 * 10분동안 로그인 시도를 금지한다. - 10분 이후 로그인 시도시 로그인 실패횟수, 로그인 제한 여부를 갱신하고 로그인 시도를 반복한다. - 로그인 성공시 제한횟수까지 0으로 초기화시킨다. 다음과 같이 로그인 시도 횟수 제한하기 위한 칼럼들을 추가한다. LOGIN_FAIL_COUNT : 로그인 실패 횟수 IS_L..
-
스프링(Spring) SHA-256 알고리즘 이용한 비밀번호 암호화보안(Security)/Login, Password Policy 2018. 9. 10. 09:48
DB에는 다양한 정보들이 있는데, 개인을 지칭할 수 있는 정보를 노출하지 않도록 노력하는것이 의무화 되어 있다. 이를 위해 다양한 데이터들을 암호화 및 복호화를 통해 보안을 강화한다. 암호화된 데이터를 복원할 수 있느냐(복호화가 되느냐) 안되느냐에 따라 암호화 강약을 가늠할 수 있다. 노출됐을 때 미칠 영향력에 따라 암호화 강화 정도를 정한다. 비밀번호, 바이오 정보 암호화 강도가 높아야 하는 데이터 : 일방향 암호화 (복호화 X) 해쉬함수 사용 나머지 암호화 필요한 정보 : 블록 암호. 복호화 가능 과거에는 복호화가 가능한 블록암호를 사용했지만 오늘날 대부분 데이터를 암호화할 때 일방향 암호화 알고리즘을 사용한다. 대표적으로 SHA-256, SHA-512 등이 있다. 그중 SHA-256을 통한 비밀번호..