문제

공개 키 인증서와 사내 애플리케이션용 단일 개인 키 인증서를 저장해야 합니다.

우리 팀 구성원은 지금까지 해왔던 것처럼 Windows 인증서 저장소에 X509 인증서를 저장하는 대신 데이터베이스에 X509 인증서를 저장할 것을 제안했습니다.나는 바퀴를 다시 발명하는 것을 좋아하지 않지만 적어도 그 아이디어는 고려해야 합니다.이는 데이터를 더욱 중앙 집중화하는 것을 의미하며 이는 좋은 일이라고 생각합니다.

내가 볼 수 있는 초기 장벽은 다음과 같습니다.

  • 개인 키는 여전히 어딘가에 저장되어야 하는데, 이를 '공개 키' 테이블에 집어넣는 것이 좋은 생각인지는 모르겠습니다.나는 단일 요소에 대한 테이블을 설정하는 아이디어도 좋아하지 않습니다.아마도 개인 키를 로컬 파일로 유지할까요?(예: .pfx 파일).
  • 해지 목록.아마도 폐기된 공개 키를 처리하기 위한 프로세스를 설정해야 할 것입니다.

저는 X509 인증서에 대한 경험이 많지 않으므로 제 질문은 다음과 같습니다.Windows 인증서 저장소를 사용하는 대신 데이터베이스에 공개 키 인증서를 저장하는 데 발생할 수 있는 다른 문제가 있습니까?

이 애플리케이션은 여러 비즈니스 클라이언트 서버에 배포될 예정이므로 모든 데이터를 한 곳에 보관하면 백업이 더 쉬워진다는 점을 명심할 가치가 있습니다.아 그리고 문제의 사내 앱은 C#으로 개발중인데..

감사해요!

도움이 되었습니까?

해결책

응용 프로그램의 목적은 무엇입니까?

응용 프로그램의 모든 암호화를 처리하고 PKCS#12 Cert + Private Key 파일을 참조 할 수있는 경우 데이터베이스 경로를 사용하는 것이 좋습니다.

CERT에 액세스하기 위해 Windows Crypto API를 사용해야하는 경우 내장 인증서 저장소를 계속 사용하고 싶을 것입니다. 스마트 카드 또는 하드웨어 보안 모듈 (HSM)과 같은 외부 장치에서 개인 키를 보호 할 수 있으므로 여기에서 몇 가지 장점을 얻습니다.

로컬 디스크에 모든 것을 저장하는 경우 개인 키를 보호하기 위해 상당한 노력을 기울이고 싶을 것입니다. 강력한 암호를 사용하고 모범 사례를 사용하여 앱 에서이 암호를 보호하십시오.

다른 팁

꼭 필요한 경우가 아니면 개인 키를 다른 위치로 옮기는 것을 꺼려합니다.키가 서명에 사용되는 경우에는 필요하지 않으며 키가 암호 해독에 사용되고 나중에 보관하려는 경우에만 필요합니다.이 경우에도 인증서를 발급한 인증 기관은 일반적으로 보관 및 복구를 처리할 수 있습니다.이는 확실히 Microsoft 및 Entrust와 같이 보다 널리 사용되는 CA의 경우입니다.

저장해야 하는 경우 AES와 HSM(하드웨어 보안 모듈) 또는 스마트카드에서 보호할 수 있는 키를 사용하여 암호화합니다.이 키를 일반 텍스트(파일 또는 레지스트리)로 남겨두지 마십시오.

또한 생성 위치와 중앙 데이터베이스 간에 전송되는 동안 이 키를 보호하고 싶을 수도 있습니다.SSL이나 VPN 등

해지 목록은 대부분의 환경에서 인증 기관에 의해 일반적으로 LDAP나 디렉터리 또는 둘 다에 게시됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top