보안

KEK (Key Encryption Key)

MDanderson 2024. 12. 18. 14:56

키 암호화 키(KEK, Key Encryption Key)를 사용하는 과정

 

KEK (Key Encryption Key)

  • 세션 키를 암호화하는 키입니다.
  • 세션 키를 직접 저장하지 않고, 암호화된 상태로 저장하거나 전달할 수 있도록 보호합니다.
  • KEK는 강력한 비밀번호나 패스워드 기반 키 파생 함수(PBKDF)를 통해 생성됩니다.
  •  

과정 설명

(1) 의사 난수 생성기로 세션 키 생성

  • 암호화에 사용할 세션 키를 생성합니다.
    • 세션 키는 암호화 알고리즘(AES, DES 등)에 따라 일정한 길이(예: 128비트, 256비트 등)로 생성됩니다.
    • 세션 키는 **의사 난수 생성기(PRNG)**를 통해 예측 불가능한 값으로 생성합니다.
    • 예: TLS에서 각 통신 세션마다 새 세션 키를 생성.

(2) KEK로 세션 키 암호화

  • 세션 키를 직접 저장하지 않고, KEK로 암호화하여 저장합니다.
    • KEK는 사용자가 입력한 패스워드솔트를 조합하여 생성합니다.
      • KEK 생성 방법: PBKDF(Password-Based Key Derivation Function) 또는 KDF(Key Derivation Function) 사용.
      • 솔트는 난수로 생성되며, KEK 생성 과정에서 사용됩니다.
    • 생성된 KEK로 세션 키를 암호화하여 보호합니다.
      • 예: EncryptedSessionKey = Encrypt(KEK, SessionKey)
    • 암호화된 세션 키만 안전한 저장소에 보관하며, KEK는 저장하지 않습니다.

(3) KEK 폐기

  • 세션 키를 암호화한 후, KEK는 메모리에서 삭제하여 남기지 않습니다.
    • KEK는 패스워드와 솔트를 사용해 언제든지 다시 복원할 수 있기 때문에 저장할 필요가 없습니다.
    • 이 과정은 키 관리의 보안성을 높이기 위해 필수적입니다.

(4) 복호화를 위한 KEK 복원

  • 세션 키가 필요할 때, 사용자가 입력한 패스워드솔트를 조합하여 KEK를 복원합니다.
    • 복원된 KEK를 사용해 암호화된 세션 키를 복호화합니다:
      SessionKey = Decrypt(KEK, EncryptedSessionKey)
       
       
       

      예시

      1. 데이터 암호화

      1. 세션 키 생성:
        • 난수를 이용해 세션 키(예: 0x1A2B3C4D)를 생성.
      2. KEK 생성:
        • 사용자가 입력한 패스워드(예: "MySecretPassword")와 솔트(예: 0x5D6E7F8G)를 사용해 KEK 생성.
      3. 세션 키 암호화:
        • Encrypt(KEK, SessionKey)로 세션 키 암호화(결과: EncryptedSessionKey).
      4. 저장:
        • 암호화된 세션 키(EncryptedSessionKey)와 솔트를 안전한 장소에 저장.
        • KEK는 메모리에서 삭제.

      2. 데이터 복호화

      1. 사용자가 패스워드 입력.
      2. 솔트와 입력한 패스워드로 KEK 복원.
      3. 복원된 KEK를 사용해 암호화된 세션 키를 복호화:
        • Decrypt(KEK, EncryptedSessionKey) → 원래의 세션 키 복원.
      4. 복원된 세션 키로 데이터를 복호화.

       

      왜 이런 과정을 사용하는가?

      보안 강화

      1. 세션 키 보호:
        • 세션 키는 데이터 암호화의 핵심이므로, 이를 직접 저장하지 않고 KEK로 암호화하여 안전하게 보관.
      2. KEK 관리의 보안성:
        • KEK를 직접 저장하지 않고, 패스워드와 솔트로부터 동적으로 생성하여, 공격자가 KEK를 추출하기 어렵게 만듦.
      3. 패스워드 기반 보안:
        • 사용자는 자신의 패스워드와 솔트만으로 KEK를 복원할 수 있어 편리하면서도 안전하게 키를 관리할 수 있음.

'보안' 카테고리의 다른 글

전자서명  (1) 2025.02.07
128bit가 가 32개 hexstring인 이유  (0) 2025.01.22
데이터 기밀성  (1) 2024.12.11
인증서  (1) 2024.12.11
자동차 보안 용어  (0) 2024.12.09