암호화 정리

hodu·2022년 11월 21일
0

dev

목록 보기
4/5

용어 정리

  1. 암호화?
    평문(Plain Text)를 해독 불가능한 형태의 메세지로 변환하는 것.

  2. 복호화?
    암호화된 문장을 평문으로 변환하는 것

  3. 양방향 암호화
    암호화와 복호화 과정을 통해 송, 수신간 주고받는 메세지를 안전하게 암호화, 복호화 하는 과정

  4. 단방향 암호화
    해싱을 이용한 암호화 방식. 복호화 불가능

양방향 암호화(대칭, 비대칭키)

대칭키

같은 키를 이용하여 메세지를 암호화, 복호화 하는 것

비대칭키

암호화, 복호화 하는 키가 같지 않고 다름

  • 암호화 알고리즘에 따라 사용방식이 다르다.
  • 전자서명을 위한 알고리즘에서는 Private Key 메세지로 서명하고 Public Key로 검증한다.

JWT

  • Header, Payload, Signature를 이용한 토큰 기법
  • 위변조 방지를 위해 개인키를 통해 Signature(전자서명)을 만드는데, 이때 비대칭키를 이용한다.
  • 유저가 로그인에 성공하게 되면 access_token 값을 받게된다.
  • 이 값을 서버에 보내게 되면 복호화를 거쳐 해당 유저 정보가 DB에 있는지 확인하게 됨
  • JSON 데이터를 암호화하여 클라이언트-서버 간 주고받는 것을 JWT라고 한다.

단방향 암호화(해싱)

  • hash를 이용하여 암호화하는 과정
  • 복호화 불가능
  • 원래 내용은 모르지만 데이터의 진위 여부는 확인 가능
  • Bcrypt

Bcrypt

  • 단방향 해시함수에는 취약점이 존재함
  • Rainbow table attack : 해시 값들을 미리 계산해놓은 테이블을 통해 brute force 공격
  • 따라서 단방향 암호화에도 두가지 보안점이 필요해졌음
  1. Salting : 실제 데이터 이외에 랜덤 데이터를 추가하여 해시값을 계산
    (Key straching : 단방향 해시값을 계산한 후 그 해시값을 여러번 해시함)

  2. Bcrypt : Salting, Key Straching을 구현한 해시함수

profile
안녕 세계!

0개의 댓글