◆ 암호화 (encrypt)

  • 외부로 유출될 경우 기업에 피해가 발생할 수 있는 중요한 데이터를 가져가도 의미가 없도록 만드는 과정입니다.
  • 피해가 발생할 수 있는 개인정보 : 비밀번호, 카드번호, 인증번호(애매함).....
  • 가져가도 의미가 없도록 만드는 것이 웹에서 암호화를 하는 기본 원리
  • 원하는 사람만 정보를 사용할 수 있도록 변조하는 것
  • 다시 복구할 수 있는 양방향 암호화와 복구가 불가능한 단방향 암호화가 존재

◆ 시저(caeser) 암호화

  • 값을 특정 offset을 더하거나 빼서 변조하는 암호화 방식

◆ 단방향 암호화 (해시 알고리즘)

  • 암호화는 가능하지만, 복구(복호화)가 안되는 암호화 방식
    - 원본을 알 수 없도록 만드는 암호화 방식
  • 두 개 이상의 값이 동일한 결과가 나오면 안된다.(충돌)
  • 똑같은 값을 암호화하면 동일한 결과가 나와야한다.
  • 비대칭, 해시, ....
  • 복호화는 안되어도 비교는 가능 해야합니다.

◆ 양방향 암호화

  • 암호화와 복호화가 모두 가능한 것

◆ 복호화 (decrypt)

  • 암호화된 정보를 원래의 데이터로 되돌리는 과정을 말합니다.
  • 암호화된 정보를 해독하여 의미있는 정보를 얻을 수 있게 해줍니다.
  • 암호화된 데이터는 일반적으로 무작위의 문자와 숫자로 이루어진 랜덤한 문자열이기 때문에, 이를 해독하지 않으면 의미 있는 정보를 얻을 수 없습니다.

◆ 스프링 보안 프레임워크(Spring Security)

  • 스프링 프레임워크 기반으로 작성된 보안 프레임워크입니다.
    - Spring Boot 처럼 Spring에서 진행하는 프로젝트 종류 중 하나
  • 다양한 암호화 모듈을 제공하여 보안을 강화할 수 있습니다. 이를 통해 사용자 정보를 안전하게 보호하고, 해커의 공격으로부터 시스템을 보호할 수 있습니다.
  • 자체 회원 정보 설정 규칙을 갖고 있으며, 토큰을 사용합니다.
  • 애플리케이션의 인증(Authentication)과 권한 부여(Authorization)를 처리합니다.
    - 인증은 사용자가 누구인지 확인하는 것이며, 권한 부여는 사용자가 수행할 수 있는 작업 범위를 결정합니다.
  • 표준 인증 방식뿐만 아니라 OAuth2, OpenID Connect 등의 보다 안전하고 편리한 인증 방식을 지원합니다.
  • 웹 애플리케이션뿐만 아니라 RESTful API와 같은 서비스에도 적용할 수 있습니다.
  • BCryptPasswordEncoder는 가장 높은 보안성을 제공합니다.

◆ SHA-256 암호화 기법

◆ StandardPasswordEncoder : SHA-256

  • 알고리즘 암호화 도구
  • 항상 동일한 값을 가져오는 단점이 있음

◆ Pbkdf2PasswordEncoder : SHA-256

  • 알고리즘 암호화 도구
  • 항상 동일한 값을 가져오는 단점이 있음

◆ BCryptPasswordEncoder : SHA-256

  • 시간에 따라 변화하는 비밀번호를 생성해주는 도구
  • 가장 발전된 비밀번호 암호화 도구
  • 자체적으로 Salt와 함께 사용됩니다.
    - Salt란 암호화 과정에서 사용하는 임의의 데이터를 의미합니다.
    - Salt를 사용하여 암호화된 결과 값을 무작위로 만들어, 해커들이 비밀번호를 유추하는 것을 방지할 수 있습니다.
profile
Backend Developer

0개의 댓글