wonder

정보보안 스터디 - 2주차 4일 - 로그인 구현 3 본문

hacking study/SQL Injection

정보보안 스터디 - 2주차 4일 - 로그인 구현 3

wonder12 2022. 10. 23. 23:43
1. 식별&인증 동시
2. 식별&인증 분리
3. 동시 (+해시암호화)
4. 분리 (+해시암호화)
5. 동시 (개행)

 

 

 

암호화 방법

 

사실 암호화에 대해서 막히는 부분이 있어서 끙끙 앓았습니다.

 

암호화에는 어떤 방법이 있는지 먼저 이해해야 할 것 같습니다.

 

 

양방향

AES
키의 암호화>>복호화가 가능합니다.
키기 공개될 경우 원문을 해독할 수 있기 때문에 키의 보안은 필수입니다.
그래서 키를 알게되면 사실상 끝났다고 볼 수 있기 때문에 보안에 취약합니다.

 

단방향 (해시)

md5: 128비트 해시입니다.
보안취약 개인정보 암호화에 사용하는 것은 권장하지 않습니다.주로 프로그램이나 파일이 원본과 같은지 확인하는 데에 쓰입니다.

SHA-1:160비트 해시입니다.
password('비밀번호') 로 사용했었던 건 sha-1 였다는 점.

SHA-2: SHA-1의 개선버전입니다.
SHA2('비밀번호',해쉬비트길이) 로 구성이 되고 hash_length에는 224, 256(= 0), 384, 512가 들어올 수 있습니다. 요즘은 md5나 SHA-1의 보안은 많이 취약하고 최소한 256비트 이상이 권장된다고 합니다.

 

 

 

3. 식별&인증 동시 (+해시암호화)

 

그다음 구현을 해보겠습니다.

 

1. 식별&인증 동시 구현에 SHA2 해시만 씌워주면 되는 구조라서 설명할게 많이 없습니다.

구성에 맞춰서 SHA2를 씌워줍니다.

 

그러니까 DB에 등록되어있는 비밀번호는 이미 SHA2 암호화가 되어있고

POST방식으로 가져온 비밀번호는 SHA2암호화를 직접 해줘서 비교하겠다는 말입니다.

 

 

값이 맞다면 select * 한 모든 데이터가 $data에 불러와있을 겁니다.

 

$data에 값이 있다면 세션이 생성되고

list.php로 바로 이동합니다.

 

DB에 SHA2가 적용된 비밀번호입니다.

로그인이 잘되네요~

 

 

다음에는 DB 비밀번호와, 입력한 비밀번호의 값자체가

같은지 보는 암호화가 아니라

password_verify로 비교하는 암호화 사용법에 대해서 알려드리겠습니다. 

 

 

 

 

 

Comments