HTTPS TIL 02

Nabang Kim·2021년 9월 6일

HTTPS

목록 보기
2/6
post-thumbnail

2021년 9월 6일에 작성된 문서 2번 입니다.
https 배운 내용을 정리했습니다.



해싱 (Hashing)과 암호화

  • 클라이언트가 서버에 이메일과 비밀번호를 가지고 요청
  • 서버가 정보를 받고 데이터 베이스에서 이메일과 비밀번호를 받음
    • 이 두가지의 정보를 가지고 비교한다.
  • 비교 후, 서로 일치하면 데이터 베이스에서 해당 관련 정보를 서버에 요청
  • 이 요청을 받은 서버는 다시 클라이언트에 반환



암호화

일련의 정보를 임의의 방식을 사용하여 다른 형태로 변환하여 해당 방식에 대한 정보를 소유한 사람을 제외하고 이해할 수 없도록 알고리즘을 이용해 정보를 분리하는 과정

  • 암호화의 예시



해싱 (Hashing)

어떠한 문자열에 임의의 연산을 적용하여 다른 문자열로 변환하는것

  • 모든 값에 대해 해시 값을 계산하는데 오래걸리지 않아야 한다.
  • 최대한 해시값을 피해야하며 모든값은 고유 해시값을 가진다.
  • 아주 작은 단위 변경이라도 완전히 다른 해시값을 가져야 한다.



솔트 (Salt)

암호화해야하는 값에 어떤 별도의 값을 추가하여 결과를 변형하는것

  • 원본값에 임의로 약속된 별도의 문자열을 추가하여 해시를 진행한다면 기존 해시값과 전혀 다른 해시값이 반환되어 알고리즘이 노출되더라도 원본값을 보호할 수 있도록 하는 안전장치다.

    • 암호화만 해놓는다면 해시된 결과가 늘 동일하다.
    • 해시된 값과 원래 값을 테이블(레인보우 테이블)로 만들어서 디코딩 해버리는 경우도 생긴다.
  • 기존 암호화하려는 값 => 해시값

  • 솔트사용: 암호화하려는 값 + 솔트용 값 => 해시값



솔트 (Salt) 사용시 주의할 점

  1. 솔트는 유저와 패스워드별로 유일한값을 가져야 한다.
  2. 사용자 계정을 생성할 때와 비밀번호를 변경할 때마다 새로운 임의의 솔트를 사용해서 해싱해야 한다.
  3. 솔트는 절대 재사용해서는 안된다
  4. 솔트는 데이터베이스의 유저 테이블에 같이 저장 되야 한다.






Written with StackEdit.

0개의 댓글