암호화

gov's avatar
Dec 04, 2024
암호화
💡
데이터의 기밀성, 무결성, 인증(Confidentiality, Integrity, Authentication, CIA)을 보장하기 위해 데이터를 변환하는 기술.
주요 기술 - 단방향, 양방향 암호화
목차

1. 단방향 암호화 (Hashing)

데이터를 고정된 길이의 해시 값으로 변환하며, 복호화 불가능. 주로 데이터 무결성 검증이나 비밀번호 저장에 사용
  • 알고리즘 예시
    • SHA-512: 512비트 길이의 해시를 생성하는 알고리즘.
    • HMAC: 해시와 키(key)를 결합한 메시지 인증 코드. 무결성과 인증 보장.
  • 응용 사례
    • 전자 서명: 데이터가 변조되지 않았음을 보장하기 위해 사용.
    • JWT (JSON Web Token)
      • JSON 형태로 사용자 정보를 담은 토큰.
      • 민감하지 않은 사용자 정보를 포함하며, 서명(해시)을 통해 무결성을 검증.
 

2. 양방향 암호화 (Encryption)

데이터를 암호화(Encryption) 및 복호화(Decryption) 가능. 주로 통신에서 데이터의 기밀성 보장에 사용

2.1 대칭키 암호화 (Symmetric Encryption)

  • 하나의 공통 키를 사용해 암호화와 복호화를 수행.
  • 장점: 속도가 빠르고 구현이 간단함.
  • 단점: 키를 안전하게 전달해야 하는 문제가 있음.(예: AES, DES)

2.2 비대칭키 암호화 (Asymmetric Encryption)

  • 공개키(Public Key)와 개인키(Private Key) 쌍을 사용.
  • 공개키로 암호화하면 개인키로 복호화 가능하며, 개인키로 암호화하면 공개키로 복호화 가능.
  • 장점: 키 전달 문제 해결.
  • 단점: 대칭키에 비해 속도가 느림.(예: RSA, ECC)
 

3. 암호화 기술 활용

3.1 전자 서명

  • 자신의 개인키로 데이터를 암호화하여 서명 생성.
  • 수신자는 서명자의 공개키로 복호화해 데이터 무결성 및 서명자 확인 가능.

3.2 WT (JSON Web Token)

  • 로그인 인증 등에 사용되는 토큰.
  • 사용자 정보를 JSON 형태로 담아 인코딩한 후, 서명(단방향 해시)을 추가하여 생성.
  • 구성
      1. Header: 서명 알고리즘 정보.
      1. Payload: 사용자 정보(민감하지 않은 데이터).
      1. Signature: Header와 Payload를 해시 알고리즘으로 서명.
 

4. OAuth 2.0

OAuth 2.0은 권한 부여를 위한 인증 프로토콜로, 토큰을 사용해 인증 정보를 관리.

특징

  1. 토큰에 사용자 정보 저장: 민감하지 않은 정보와 인증 정보를 포함.
  1. RSA 기반 비대칭 암호화를 사용하여 토큰의 무결성과 신뢰성 보장.

장점

  • 사용자 비밀번호를 제3자에게 노출하지 않고 인증 가능.
  • RESTful API 기반 인증에 적합.

단점

  • 토큰에 정보가 포함되므로 유출 시 보안 문제가 발생 가능.
  • 이를 해결하기 위해 리프레시 토큰(Refresh Token)과 액세스 토큰(Access Token)을 두 번 사용하여 보안 강화.
Share article

goho