사용자가 내 인트라넷 앱에서 온라인 양식을 만들고 관리 할 수 있도록 CMS 시스템을 구축했습니다.AES 암호화 된 데이터베이스 항목의 키 및 초기화 벡터는 어떻게 파생해야합니까?
물론 양식에서 처리하는 데이터 중 일부는 암호화되어야 할 수도 있습니다. 급여 세부 사항을 처리하는 양식을 작성하는 데 시스템을 사용하는 경우. 그래서 AESManaged
클래스를 사용하여 응용 프로그램 db에 들어가기 전에 이러한 종류의 데이터를 대칭 적으로 암호화합니다.
모두 괜찮습니다.하지만 이제는 출시하기 전에 shared secret
및 salt
과 관련된 조정자와 함께 할 수 있습니다.
내 원래 아이디어는 Question
필드 (다시 GUID 기반) ID와 암호화 된 필드를 포함하는 Form
의 (GUID 기반) ID를 조합하여 (동적) shared secret
있도록 하였다 해답 :
FormId:QuestionId
내 Salt
현재의 GUID의 순서 즉 역에서만, 같은 방법으로 생성됩니다.
QuestionID:FormID.
저는이 재료에 익숙하지 않으므로이 전략이 합리적인지 아니면 다른 방법으로해야하는지 확실하지 않습니다.
암호화되었으므로 소금이 아닌 IV입니다. kennbrodhagen이 지적했듯이, 무작위로 생성되어야합니다. 또한 실제로 중요한 것을 암호화하지 않고 암호화 키와 함께 저장합니다. 위협 모델이 무엇인지 결정하고이를 염두에두고 시스템을 설계해야합니다. –