본문 바로가기
부트캠프교육중/HTTP, 네트워크

해싱 Hashing

by 뭉지야 2023. 3. 9.
728x90

# 해싱

-가장 많이 쓰이는 암호화 방식 중 하나이다.

-복호화 안된다! 암호화만 가능!

-해시함수를 사용하여 암호화 진행한다.

-해시함수의 특징

  • 항상 같은 길이의 문자열을 리턴한다.
  • 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나온다.
  • 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나온다.

 

# 레인보우 테이블

-항상 같은 결과값이 나온다는 특성을 이용해 해시 함수를 거치기 이전의 값을 알아낼수 있도록기록해놓은것.

-유출이 되었을때 해싱을 했더라도 해싱 이전의 값을 알아낼수 있으므로 보안상 위협이 될수있음. 그때 활용하는 것이 솔트이다!

 

#솔트(salt)

- 소금을 치듯 해싱 이전 값에 임의의 값을 더해, 데이터가 유출되더라도 해싱 이전의 값을 알아내기 더욱 어렵게 만드는 방법.

-솔트를 사용하게 되면 해싱값이 유출되더라도 솔트가 함께 유출 된 것이 아니라면 암호화 이전의 값을 알아내는 것은 불가능에 가깝다.

 

 

 

#해싱의 목적

굳이 복호화도 불가능한 암호화 방식을 사용할까? 

-해싱의 목적은 데이터 그 자체를 사용하는 것이 아니라, 동일한 값의 데이터를 사용하고 있는지 여부만 확인 하는것이 목적이다.

-민감한 데이터를 다루어야 하는 상황에서 데이터 유출의 위험성은 줄이면서 데이터의 유효성을 검증하기 위해서 사용되는 단방향 암호화 방식이다.

-해싱은 복호화가 불가능하므로 사이트 관리자도 정확한 비밀번호를 알수없다. 그래서 서버측에서 비밀번호를 모르는 상태에서 해싱한 값끼리 비교해서 일치하는지 확인하여 로그인요청을 처리한다. 꼭 정확한 값을 몰라도, 해싱한 값이 일치한다면 정확한 비밀번호를 입력했다는 뜻이 되기 때문에 해싱값으로만 로그인 요청을 처리하는데에도 전혀 문제가 없다.   

728x90

'부트캠프교육중 > HTTP, 네트워크' 카테고리의 다른 글

쿠키/세션/토큰  (0) 2023.03.09
토큰 Token  (0) 2023.03.09
Session  (0) 2023.03.09
Cookie  (0) 2023.03.09
TCP/IP 4계층 모델  (0) 2023.03.09