티스토리 뷰

AWS/Security

Hash VS 암호화

hee_story 2021. 9. 1. 13:04

** 데이터베이스에 유저의 비밀번호를 그대로 저장하면 보안적으로 리스크가 크기 때문에 암호화를 한 뒤 저장하는게 best practice 이다. 그래서 비밀번호를 암호화하고 유저가 로그인 할 시 회사에서 주는 key로 로그인을 하는데, 그 때 복호화를 한 뒤 비밀번호가 맞을 경우 로그인할 수 있도록 한다. 로그아웃 시 다시 암호화를 한다. 하지만 해당 key가 분실되거나 누군가에게 탈취당할 시 비밀번호가 노출될 수 있는 위험이 있다. 그럴 경우를 대비해 Hashing을 사용하게된다.

 

1) 암호화

- 양방향 암호화

 

 

2) Hashing

- 단방향 암호화, Hash 된 값(출력 값)을 반대로 복호화 불가능 

- Hash 함수를 통해 Hash된 암호를 추출하기때문에 같은 입력 값(Input)으로는 몇백번을 돌리더라도 같은 결과(output)를 내보낸다.

- 입력 값이 조금만 다르더라도 완전히 다른 결과를 나타낸다.

- Hash된 결과값을 데이터베이스에 저장하면 안전하게된다. 하지만 "Rainbow Table(Hash 값 입력값이랑 연결해놓은 테이블)"이라는 것이 있어 더이상 완전히 안전하다고 볼 수 없다. 

- 그렇기때문에 "SALT(짧은 랜덤한 텍스트)"를 Hash 입력값과 같이 입력하게되면 완전히 다른 출력값을 받게되고 악의적인 친입이 있을 경우에도 알 수 없다.

 

 

 

 

 

**SOURCE: https://www.youtube.com/watch?v=67UwxR3ts2E ; https://brunch.co.kr/@sangjinkang/32 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함