단방향 암호화와 양방향 암호화

2024. 10. 5. 15:36·Web
반응형

홈페이지에서 사용자가 로그인을 하고, 로그인 정보를 fetch 했을 때 브라우저에서 비밀번호를 fetch할 수 없어야 한다. 

즉, 비밀번호를 알아내는 것이 불가능해야 한다. 

 

DB에 있는 비밀번호를 알 수 있게 된다면, 해커가 DB를 해킹했을 때 민감한 정보에 접근이 가능하게 된다. 

또한 다른 사이트에서도 동일한 아이디와 비밀번호를 사용하는 경우 문제가 더 심각해진다. 

 

따라서 비밀번호나 계좌번호같은 민감한 정보를 백엔드에 저장할 때 그대로 저장하지 않는다. 

양방향 암호화 

양방향 암호화는 JWT같은 복호화가 되는 암호화를 말한다. 

즉, 암호화와 복호화 모두 할 수 있는 암호화 방법이다. DB에 양방향 암호화 방식을 사용한다면 만약 데이터베이스가 털리게 된다면 홈페이지를 통해서 비밀번호를 추측할 수 있게 된다. 

 

그렇게 암호화 알고리즘을 알아버리면 모든 사용자의 아이디와 비밀번호를 알게되는 것이므로 사용자 비밀번호와 같은 정보를 양방향 암호화 방식을 사용하지 않는다. 

단방향 암호화 

단방향 암호화는 암호화는 되지만 복호화가 안되는 것을 의미한다. 

예를들어 245719를 암호화를 통해서 779로 만들었다고 생각해보자. 앞에서부터 2개씩 끊어서 10으로 나눈 나머지가 암호화 알고리즘이다. 하지만 동일한 결과를 만들어내는 정보가 너무 많기 때문에 원래 정보를 알아내기 쉽지 않다. 

 

이를 다대일이라고 하는데, 무작정 가능한 경우의 수를 모두 대입해보는 브루트포스 방식으로 복호화가 되는 경우가 있다. 

이를 보안하기 위해서 암호화된 결과를 다시 암호화 시키는 등 어려운 알고리즘을 추가해서 암호화를 시킨다. 

 

이야기의 흐름을 통해서 알겠지만 민감한 정보를 저장할 때는 해킹을 당해도 알 수 없도록 단방향 암호화를 통해서 저장하는 것이 바람직하다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Web' 카테고리의 다른 글

Critical Rendering Path  (4) 2024.11.13
CORS  (1) 2024.11.02
웹사이트 로그인의 역사  (1) 2024.10.02
3D 애니메이션 심화  (2) 2024.09.08
CSS 레이아웃 시스템의 변화  (1) 2024.06.05
'Web' 카테고리의 다른 글
  • Critical Rendering Path
  • CORS
  • 웹사이트 로그인의 역사
  • 3D 애니메이션 심화
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    네트워크
    ReactNative
    리얼클래스
    타일러영어
    식물
    CCNA
    javascript
    바질 키우기
    덤프
    react
    ChatGPT
    webpack
    리얼학습일기
    네이버 부스트캠프
    프로그래머스
    다이소
    Node.js
    CSS
    영어독학
    바질
    Docker
    next.js
    알고리즘
    Babel
    영어회화
    자바스크립트
    typescript
    redux
    타입스크립트
    리액트
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
단방향 암호화와 양방향 암호화
상단으로

티스토리툴바