본문 바로가기

이론

사용자 패스워드를 전송 / 보관하는 방법

암호화 / 복호화 / 단방향 / 양방향 / 단방향 해시 함수 / 다이제스트 등

 

암호화

수학적 과정을 통해 어떤 정보를 의미없는 문자의 나열로 바꾸는 것

다른 이들이 직접 그 의미를 알지 못하도록 하는 작업

 

암호화 키

암호화 또는 복호화하기 위해 이용하는 전자적 정보

 

복호화

암호화 되어있는 데이터를 해독하는 작업

 

단방향 암호화

단방향 해시 함수를 이용하여 복호화가 불가능하게 암호화한 방식

어떠한 방법을 쓰더라도 원래의 평문으로 되돌릴 수 없음

입력한 데이터를 다시 암호화하여 저장된 데이터와 일치하는지 비교하여 인증

 

양방향 암호화

복호화가 가능한 암호화 방식

 

단방향 해시 함수

입력한 값을 문자화 숫자를 임의로 나열한 일정한 길이의 다이제스트 형태로 변환 시켜주는 함수

종류 : SHA, MD, HAS, WHIRLPOOL 등

 

다이제스트

해시 함수에 의해 암호화된 데이터

 

단방향 해시 함수의 단점

레인보우 공격

  • 동일한 메시지는 언제나 동일한 다이제스트를 갖는다
  • 다른 사용자의 패스워드가 같으면 다이제스트로 같아 한꺼번에 모든 정보 탈취 가능
  • 다이제스트 목록을 레인보우 테이블이라 칭함

무차별 대입 공격(브루트 포스)

  • 해시 함수는 짧은 시간에 데이터를 검색하기 위해 설계된 것으로 해시 함수의 빠른 처리 속도로 인해 빠른 속도로 임의의 문자열의 다이제스트와 해킹할 대상의 다이제스트를 비교 가능
  • 장비를 이용하여 1초당 56억 개의 다이제스트 대입 가능

 

단방향 해시 함수 보완

솔팅(Salting)

  • 해시 함수를 사용하기 전 임의의 문자열인 salt를 추가하여 다이제스트를 생성하는 것
  • 같은 패스워드라도 각기 다른 salt가 들어가 다이제스트가 다르게 생성 됨
  • 레인보우 테이블을 무력화시킴
  • salt는 최소 128bit

키 스트레칭(Key stretching)

  • 해시를 여러번 반복하여 시간을 늘림으로써 무차별 대입 공격에 대비
  • 패스워드의 다이제스트 생성 → 생성된 다이제스트로 다시 다이제스트 생성  반복
  • 키 스트레칭 적용 시 1초에 56억개 대입할 수 있는 것을 1초에 5번 비교할 수 있도록 함

 

 

https://velog.io/@nameunzz/%EB%8B%A8%EB%B0%A9%ED%96%A5-%ED%95%B4%EC%8B%9C-%ED%95%A8%EC%88%98

 

'이론' 카테고리의 다른 글

.a .so / .dll .lib 확장자  (0) 2022.12.05
시스템 콜  (0) 2022.12.05
Base64 인코딩  (0) 2022.12.05
FCGI  (0) 2022.11.30
CGI  (0) 2022.11.30