Windows에서 RSA 키 쌍을 어떻게 저장합니까?

Windows에서 RSA 키 쌍을 어떻게 저장합니까?

Openssl-RSA를 사용하여 간단한 암호화-복호화 프로그램을 작성하려고 합니다. 데이터가 암호화되면 키 쌍이 생성됩니다. 데이터를 해독하려면 암호화하는 동안 생성된 정확한 키 쌍이 필요합니다.

그렇다면 가능할 때마다 암호화된 콘텐츠를 해독할 수 있도록 이 키 쌍을 어디에 어떻게 저장해야 합니까?

암호화에는 공개키를, 복호화에는 개인키를 사용하고 있습니다.

답변1

기술적으로는 원하는 곳에 키 쌍을 저장할 수 있지만 몇 가지 일반적인 방법이 있습니다.

데이터가 특히 민감하고 정기적으로/지속적으로 필요하지 않은 경우 개인 키를 저장하는 가장 안전한 방법은 플래시 드라이브에 저장하거나 종이에 인쇄하여 금고나 은행 금고에 보관하는 것입니다. (공개 키는 원하는 곳에 저장할 수 있습니다. 이는 결국 "공개" 정보입니다.

데이터에 쉽게 액세스할 수 있어야 하는 경우 매번 검색해야 하는 번거로움으로 인해 개인 키를 금고나 금고에 오프라인으로 저장하는 것은 일반적으로 실용적이지 않습니다. 키 저장에 자주 사용되는 일반적인 위치는 .ssh홈 디렉터리 내부에 있는 폴더입니다 . (이것은 Linux의 OpenSSL의 기본값이며 다른 시스템에서도 자주 사용됩니다.) 일반적인 방법은 purpose_type개인 키와 purpose_type.pub공개 키에 대해 설명하는 이름을 가진 두 개의 파일로 키를 저장하는 것입니다. . 예를 들어 OpenSSL 명령줄을 사용하여 식별하는 RSA 키를 생성하는 경우id_rsa, 기본적으로 파일 과 디렉터리 id_rsa.pub에 저장됩니다 .ssh. 귀하의 경우 키 파일의 이름을 mydatastorage_rsa및 와 같이 지정할 수 있습니다 mydatastorage_rsa.pub.

중요한: 개인키를 이런 방식으로 저장하는 경우에는 암호로 보안을 유지하는 것이 좋습니다. 이렇게 하면 귀하의 파일에 액세스하는 사람이 귀하의 개인 키를 사용하는 것을 방지할 수 있습니다. 처음에 키 쌍을 생성할 때 키 암호를 제공하라는 메시지가 표시되었을 수 있습니다. 그렇지 않은 경우 OpenSSL 명령줄 도구를 사용하여 개인 키에 암호를 추가할 수 있습니다.

민감한 암호화 작업을 많이 수행할 경우 개인 키를 안전하게 저장하도록 설계된 "하드웨어 보안 모듈"(약칭 "HSM")이라는 하드웨어 키 저장소를 구입할 수 있습니다. 실제로 보안/암호화 산업에 종사하지 않는 한 이는 거의 확실히 과잉입니다. 전체 HSM보다 저렴하지만 여전히 필요한 것보다 더 많은 하드웨어 투자가 필요한 "스마트 카드" 및 "USB 암호화 토큰"을 포함한 다른 하드웨어 솔루션도 있습니다.


비밀번호로 개인 키를 보호하라는 권장 사항에도 불구하고 웹 서버와 같은 서비스 내에서 이 암호 해독을 수행해야 하는 경우 문제가 발생할 수 있습니다. 이 경우 세 가지 옵션이 있습니다.

  1. 서버 응용프로그램이 시작될 때마다 암호를 제공하십시오.
  2. 구성 파일에 암호를 제공하십시오. (일부 서버에서만 지원)
  3. 암호를 제거하십시오(또는 처음에 암호를 설정하지 마십시오).

첫 번째 방법이 가장 안전하지만 매번 수동으로 서비스를 시작하는 경우에만 사용할 수 있습니다. 다른 옵션 중 하나를 수행해야 하는 경우 구성 파일(옵션 2) 또는 개인 키(옵션 3)에 대한 액세스를 방지하기 위해 적절하게 보안을 설정했는지 확인하세요.

관련 정보