2013-10-25 5 views
3

그래서 AES 알고리즘으로 문서 목록을 암호화하고 있습니다. PBKDF2를 사용하여 사용자 비밀번호에서 키를 결정합니다. 하나의 AES 키, IV 및 소금 PKBDF2, AES, IV 및 소금으로 연습하는 것이 더 좋습니다.

  • 암호화 한 AES 키를 사용하여 각 문서와

    • 암호화 모든 문서 :

      어떻게 저장하는 문서 : 나는 데이터를 저장 및 IV/소금에 대한 몇 가지 질문이 있습니다 하지만 별도의 IV 및 소금

    저장하는 방법/IV 및 소금 PIN이 : PBKDF2에서

    • 가져 오기 IV를 (AES 키 등)없이 필요가 어딘가에 저장
    • 일반 텍스트 소금
    • 등 모든 문서 암호화 및 저장하기 전에 IV를 생성, 생각, 어떤 옵션도 없다 - 어쨌든 나는 일반 텍스트
    • 로 저장해야 나는 그 기사 ( http://adamcaudill.com/2013/04/16/1password-pbkdf2-and-implementation-flaws/) 및 일부 다른 사람 unterstand으로

    가 :

    • 그것은 일반 텍스트, 때로는 공격자로 저장 IV 및 소금에 OK에도 그들에게
    • Differen을 알 필요가 없습니다 t IV는 첫 번째 암호 블록 (CBC 모드 용) 만 "왜곡"할 수 있지만 전부는 아니므로 AES 방법에 대해 무분별한 보안을 제공하지는 않습니다.
  • 답변

    2

    각 문서에는 자체 IV 및 소금이 있어야합니다. 소금이 다양하기 때문에 각 문서의 AES 키도 달라집니다. 동일한 키와 IV로 두 개의 문서를 암호화해서는 안됩니다. 가장 일반적인 모드 (CBC)에서 IV + Key를 재사용하면 보안이 다소 저하됩니다. 일부 모드 (CTR)에서는 IV + Key를 재사용하면 암호화 보안이 손상됩니다. (CTR의 "IV"는 "nonce"라고하지만 일반적으로 대부분의 암호화 API에서 "IV"라는 항목으로 전달됩니다.)

    일반적으로 IV를 무작위로 생성하여 시작 부분에 저장합니다 일반 텍스트로 파일의. IV를 생성하기 위해 PBKDF2를 사용한다면 또 다른 소금이 필요합니다 (어쨌든 저장할 필요가 있습니다).

    또한 AES의 가장 일반적인 모드 (특히 CBC)가 수정에 대한 보호 기능을 제공하지 않음을 기억해야합니다. 누군가가 귀하의 평문이 무엇인지 알거나 그것이 무엇인지 추측 할 수 있다면 암호 텍스트를 수정하여 그들이 선택한 다른 값으로 해독 할 수 있습니다. (이것은 CBC 모드에서 해독 할 때 잘못된 IV가있는 경우 기사의 첫 번째 블록을 손상시킵니다. "부패"는 "가비지"와 같지만 실제로는 첫 번째 블록을 일으킬 수 있습니다 특정 방식으로 손상 될 수 있습니다.

    이 문제를 해결하는 방법은 인증 된 암호화 모드 (예 : CCM 또는 EAX)이거나 HMAC를 추가하는 것입니다.

    관련 문제