ASP.NET Core의 키 불변성 및 키 설정

개체가 백업 저장소에 유지되면 해당 표현은 영구적으로 수정됩니다. 새 데이터는 백업 저장소에 추가할 수 있지만 기존 데이터는 변경할 수 없습니다. 이 동작의 주요 목적은 데이터 손상을 방지하는 것입니다.

이 동작의 한 가지 결과는 키를 백업 저장소에 기록하고 나면 변경할 수 없다는 것입니다. 생성, 활성화 및 만료 날짜는 변경할 수는 없으나, IKeyManager를 사용하여 철회할 수 있습니다. 또한 기본 알고리즘 정보, 마스터 키 자료 및 휴지 상태의 암호화 속성도 변경할 수 없습니다.

개발자가 키 지속성에 영향을 주는 설정을 변경하는 경우 이러한 변경 내용은 IKeyManager.CreateNewKey에 대한 명시적 호출 또는 데이터 보호 시스템의 자체 자동 키 생성 동작을 통해 다음에 키를 생성할 때까지 적용되지 않습니다. 키 지속성에 영향을 주는 설정은 다음과 같습니다.

이러한 설정이 다음 자동 키 롤링 시간보다 먼저 시작해야 하는 경우 새 키를 강제로 만들기 위해 IKeyManager.CreateNewKey에 대한 명시적 호출을 고려합니다. 호출에서 명시적인 활성화 날짜({ now + 2 days }는 변경 내용이 전파되는 시간을 허용하는 좋은 규칙임)와 만료 날짜를 제공해야 함을 기억하세요.

리포지토리에 접촉하는 모든 애플리케이션은 IDataProtectionBuilder 확장명 메서드를 사용하여 동일한 설정을 지정해야 합니다. 그렇지 않으면 지속형 키의 속성이 키 생성 루틴을 호출한 특정 애플리케이션에 종속됩니다.