쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/sangyoungjsp에 올려두었습니다.
저장정보의 중요도
* DBMS 저장되는 정보가 일반문자열(plain text)인 경우
- 단순 조회로 모든 정보가 확인 가능 => 정보 보호 안됨
- 사이트의 관리자/관계자는 사용자의 모든 정보를 확인 할 수 있다.
- 데이터 탈취 시 모든 정보를 손쉽게 확인 가능
- 저장되는 정보의 중요도 따라 암호화 작업을 해야 한다. => 정보 보호 수행 ( 비용과 관련 )
- 아무도 확인하지 못하도록 만들 때 => 일방향 해시(SHA)로 저장
PASS, 주민등록번호
- 관리자등급에 따라 데이터 확인이 가능해야 할 때 => 복호화가 가능한 암호화
id, phone, name, email
-일반문자열
birth, tel_flag, email_flag, gender, zipcode, addr1, addr2
* DBMS 저장되는 정보가 암호문일 경우
- 식별이 불가능
- test(일반 문자열) => gdb21LQTclANtvYMkaskfjlsak==(암호화된 문자열)
일반 문자열에서 암호화된 문자열로 가는 것
일방향 해쉬 ( SHA ) 원래의 문자열을 알 수 없다.
- test(일반 문자열) <=> gdb21LQTclANtvYMkaskfjlsak==(암호화된 문자열)
일반문자열에서 암호화로 갈수 있고, 복호화로 갈 수 있는 암호화 ( DEC, AES)
원래의 문자열로 돌아갈 수 있다.
암호화
- DBMS에 저장된 데이터를 보호하기위해 수행.
- java.security package에서 관련 클래스를 제공.
- SHA(Secure Hash Algorithm) 와 복호화가 가능한 암호화를 사용할 수 있다.
SHA : 일방향 Hash : 복호화가 가능하지 않은 암호화
DES : 1970년개발, 대칭키, 잘 만들어진 암호화 알고리즘
- java에서는 SHA algorithm으로
MD2, MD5, SHA-1, SHA-224, 256,384,512 를 지원한다.
- 민감한 개인정보를 처리할 때 사용
- 일반문자열(plain text)이 암호화문자열(cipher text)로 변환되면 문자열의 길이가
길어진다.(암호화 알고리즘에 따라 생성되는 길이가 달라진다.)
- 생성되는 문자열은 모든 문자열에 대해 중복되지 않는 다른 문자열이 만들어진다.
MessageDigest md=MessageDigest.getInstance("사용할 알고리즘");
// 사용할 알고리즘 MD2, MD5, SHA-1, SHA-224, 256,384,512
// 일반 문자열( plain text)을 cipher text로 변환
md.update( 일반문자열.getBytes() ); // 암호화 encryption
// 암호화된 문자열을 사람이 사용하는 문자로 변경
// Base64 encoder 사용
Base64 b=new Base64();
new String( b.encode( md.digest() ));
// 자바에서 사용하는 문자열로 생성
// 사람이 알아볼 수 있는 문자열 변환
// 사람이 알아볼 수 없는 문자열(일반문자열에서 암호화된 문자열)
* 데이터에 따른 중요도
회원가입 흐름
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0417/다운로드, 웹 동작 방식 (0) | 2023.04.18 |
---|---|
0415/FileUpload (0) | 2023.04.16 |
0413/DBCP, 로그인 흐름 (0) | 2023.04.13 |
0412/forEach, import, VO 출력 (0) | 2023.04.13 |
0411/JSTL, core (0) | 2023.04.13 |