‡Computer Science ‡/º 자료구조

[알고리즘] 암호화 알고리즘과 예상 면접 질문

Trudy | 송연 2024. 6. 20. 22:33

🔷 양방향 알고리즘

암호화된 암호문을 복호화 할 수 있다

 

알고리즘

🔹 대칭키 방식

  • 암호화와 복호화에 동일한 키를 사용
  • 암호키가 노출되어 정보가 유출될 수 있다는 문제 발생
  • 이걸 보완하는게 비대칭 키
  • DES, AES, 3DES
  • 연산 성능이 빠름

🔹 비대칭키 방식

  •  암호화와 복호화할 때 서로 다른 키를 사용하는 알고리즘
  • 타인에게 절대 노출되어서는 안되는 개인키
  • 공개적으로 개방되어 있는 공개키를 쌍으로 이룬 형태
  • RSA
  • 안전하지만 연산 성능은 떨어짐

 

🔷 단방향 알고리즘

암호화 하되, 복호화 불가능

 

알고리즘

🔹Hash 

  • 단방향 암호
  • 해시 함수: MD5, SHA
  • 현재 보안이 뚫리지 않은 SHA256, SHA512를 사용해야 함
  • 보안을 철저히 하기 위해서 salt 값을 적용하거나, hash 함수를 몇 번 더 연산하는 방법
  • pbkdf2 : 솔트값과 해시함수의 반복 횟수를 지정할 수 있음
  • bcrypt: 패스워드를 위해 탄생한, 아주 강력한 해시 알고리즘! spring security에서 사용

 

 


💡예상 면접 질문

 

  • 비대칭 키 암호화, 대칭키 암호화 방식에 대해 설명해주세요.
    • 대칭키, 비대칭키는 모두 양방향 암호화 방식
    • 대칭키는 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
      • 따라서 암호키가 노출되면 정보가 유출될 수 있다는 단점이 있음
      • 이걸 보완하는 것이 비대칭키(공개키)
      • DES, AES, 3DES
      • 비밀키 노출 문제가 있을 수 있지만, 연산 성능이 빠름
    • 비대칭키는 암호화와 복호화할 때 서로 다른 키를 사용하는 알고리즘
      • 타인에게 절대 노출되어서는 안되는 개인키
      • 공개적으로 개방되어 있는 공개키를 쌍으로 이룬 형태 
      • RSA
      • 안전하지만 연산 성능은 떨어짐
  • 단방향 암호화에 대해서 설명해주세요.
    • 복호화 불가능한 암호화
    • 해시 알고리즘을 이용해서 구현 -> 충돌 가능성
    • 민감정보를 데이터 베이스에 저장할 때 이용
    • 빠른 성능을 보여, 무차별 대입 공격에 취약
  • OAuth에 대해 설명해주세요.
    • 제 3자 인증 방식
    • 신뢰할 수 있는 서버에게 정보를 맡겨놓고 접근할 수 있는 권한을 주는 것
    • 사용자 측에서는 민감 정보를 굳이 입력하지 않아도 서비스를 이용할 수 있음
    • ex) 소셜 로그인을 기반으로 간편히 회원가입/로그인을 할 수 있음 -> OAuth 프로토컬을 사용한 것
    • 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준
  • JWT에 대해 설명해주세요.
    • 토큰 인증 방식에서 쓰이는 것
    • JSON 포맷을 이용하는 Claim 기반의 웹 토큰
    • 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달하게 함
    • 헤더, 페이로드, 시그니쳐로 구분됨
    • 헤더
      • 토큰의 타입, 암호화 알고리즘을 담고 있다.
      • 보통 알고리즘은 SHA256(단방향 해시)이나 RSA(양방향 비대칭키)를 사용
    • 페이로드
      • 토큰의 정보를 담고 있음
      • Claim 정보들
    • 시그니처
      • 토큰의 정보가 신뢰할 수 있는 것인지 판단할 수 있도록 함
      • 헤더의 인코딩 값과 정보의 인코딩 값을 합친 후 주어진 비밀키로 해쉬로 하여 생성

 


출처

면접 질문

https://dev-coco.tistory.com/161

 

신입 개발자 기술면접 질문 정리 - 네트워크

💡 HTTP 프로토콜에 대해 설명해주세요. HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고 받기 위한 프로토콜이며, 서버/클라이언트 모델을 따릅니다. HTTP는 상태 정보를 저장하지 않는 Stateless의 특

dev-coco.tistory.com

https://lisoft.tistory.com/22

 

CS 면접 부시기 - 암호학/보안

비대칭키 암호화, 대칭키 암호화에 대해 간단히 설명해주세요 더보기 비대칭키 암호화란 공개키 암호화라고도 하며, 공개키는 외부에 공개, 비밀키는 내부적으로 가지고 있고 서로 각각의 키로

lisoft.tistory.com

개념

https://kkwonsy.tistory.com/21

 

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

양방향 알고리즘암호화된 암호문을 복호화 할 수 있다. 알고리즘: 대칭키 방식, 비대칭키 방식 단방향 알고리즘암호화 하되 복호화는 할 수 없다.알고리즘: Hash 방식 HASH는 단방향 암호임. MD5, SHA

kkwonsy.tistory.com

🌐 OAuth 2.0 개념 - 그림으로 이해하기 쉽게 설명 (tistory.com)

 

🌐 OAuth 2.0 개념 - 그림으로 이해하기 쉽게 설명

OAuth란? 웹 서핑을 하다 보면 Google과 Facebook 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 웹 어플리케이션을 쉽게 찾아볼 수 있다. 클릭 한 번으로 간편하게 로그인할

inpa.tistory.com