Ziks

소금을 친 해싱 (hash + salt) 본문

활동/서버개발캠프

소금을 친 해싱 (hash + salt)

YunZiks 2020. 1. 19. 22:36

맛 좋은 해싱

Salt 인증방식

  • Salt → 단순히 임의의 난수 값
  • 일반적으로 Salt값은 DB가 털렸을때를 위한 것이 아닌 테이블(Rainbow Table)을 이용한 공격을 막기위한 수단
  • SHA256, SHA512등 검증된 암호화 이용
    • MD5, SHA-1같은 알고리즘은 이미 저세상으로 갔기에 .. (뚫려버림)
  • 순서
    • 가입 시
      1. hash_value = hash(Password + salt )
      2. hash_value 를 DB table에 저장
    • 로그인 시(validation check)
      1. Login_Password 입력
      2. 사용자의 salt 값, hash_value를 DB에서 가져온다.
      3. if hash(Login_Password + salt) == hash_value:

어디에서 해싱해야 하나요?

  • 클라에서 해싱? ⇒ 땡
    • 브라우저에서 JS로 해싱된 후 서버에 저장되었다는 가정하에.
      • 클라에서 hashing 후 서버에서 전달 도중 hash값이 가로채면 고대로~
    • 만일, 브라우저에서 해싱되었다면 서버에서도 해싱을 진행 할 것.
    • 고려사항이 많음
      • 클라이언트 브라우저별 JS 버젼 지원 유무
        • js기능을 꺼놓을 경우 서버에서 Hashing 진행해야 함.
      • https를 대신 할 수 없다.
        • 중간에 가로채면 답없다~
    • 서버에서 해싱? ⇒ 정답!

참고

비밀번호 해시에 소금치기 - 바르게 쓰기

bcryptjs

'활동 > 서버개발캠프' 카테고리의 다른 글

스마일게이트 서버개발캠프 5주차까지의 기록  (0) 2020.03.12
PMP 멘토링 이후  (0) 2020.01.15
Comments