웹 사이트의 SSL 키를 기밀로 유지하려면 어떻게합니까?


12

웹 사이트의 SSL 키를 기밀로 유지하고 싶습니다. 그것은 2 개의 USB 스틱에 저장되어 있습니다. 하나는 안전 금고에 있고 다른 하나는 안전합니다. 그리고 나는 완전히 안전하기 위해 웹 서버에 적용하는 유일한 사람입니다.

외...

IIS에서는 최소한 키를 내보낼 수 있습니다. 따라서 관리자는 누구나 키 사본을 얻을 수 있습니다. 이 주위에 어떤 방법이 있습니까? 또는 정의상 모든 관리자가 모든 키에 대한 전체 액세스 권한을 가지고 있습니까?

업데이트 : 완전히 신뢰하는 sysadmin이 있습니다. 이것으로 이어진 것은 그들 중 한 명입니다 (그들은 우리 회사에 한 시간 출퇴근했고, 새로운 회사에 5 분 출퇴근했습니다). 이 개인을 신뢰하지만 누군가가 떠날 때 Active Directory 계정을 사용하지 않도록 설정하는 것처럼 SSL을 사용할 수있는 능력을 유지하지 못하도록하는 방법이 필요하다고 생각했습니다.

그리고 내가 가장 쉬운 것은 내가 그것을 가진 유일한 사람이라면. 우리의 증명서는 1 월에 만료되어 가능하다면 연습을 바꿀 때였습니다. 답을 바탕으로 우리가 할 수없는 것처럼 보입니다.

인증서에 액세스 할 수있는 사람이 떠날 때 새로운 인증서를 받고 기존 인증서를 해지하는 것이 표준 관행입니까? 또는 떠난 사람이 신뢰할 만하다면, 우리는 우리가 가진 증명서를 계속합니까?


5
사용하는 서버에서 서버를 내보낼 수 없더라도 여전히 메모리에 있어야하므로 추출 할 수 있습니다. 내가 볼 수있는 유일한 옵션은 스마트 카드와 같은 하드웨어 암호화 모듈을 사용하는 것입니다. 키는 3 개 뿐이지 만 컴퓨터에 실제로 액세스 할 수있는 사람은 누구나 그것을 훔칠 수 있습니다. 도난당한 경우에도 취소 할 수 있습니다.
user2313067

27
관리자를 신뢰할 수 없으면 HR 문제가있는 것입니다.
Michael Hampton

5
처음에 키를 USB 미디어에 복사 한 이유는 무엇입니까? SSL과 함께 사용되는 비밀 키는 사용되는 서버 이외의 장소에있을 필요는 없습니다. (물론 서버의 백업 사본에 포함될 수 있지만, 항상 새 비밀 키를 생성하고 사용자가 서명 한 것처럼 서명 할 수 있으므로 서버의 다른 데이터보다 해당 키를 백업하는 것이 덜 중요합니다. 이전).
kasperd

나는이 분야의 전문가는 아니지만 내부에 키가 있고 서명 요청 만 들어가고 서명이 나오는 하드웨어 암호화 모듈이 존재하지 않습니까? 하나를 서버에 납땜하거나 붙이는 것이 해결책이 될 수 있습니다.
matega

답변:


26

서버에 대한 관리 (또는 종종 물리적 인) 액세스 권한을 가진 사람은 개인 키를 추출 할 수 있습니다. 내보내기, 메모리 스니핑 또는 기타 그러한 속임수를 통해.

관리자는 웹 서버의 개인 키에 액세스 할 수 있습니다. 이것을 사실로 받아들이고 그 문제를 해결하십시오. sysadmin이 신뢰할 수없는 경우 웹 서버에 액세스 할 수있는 더 나은 sysadmin 또는 최소한의 sysadmin이 필요할 수 있습니다. 관리 보안 편집증의 문제라면 sysadmin을 신뢰할 수있는 능력과 관련하여 더 깊은 문제가있을 수 있습니다.

모든 사람이 개인 키에 액세스 할 수있게해야한다는 말은 아닙니다. 액세스 권한이 부여되기 전에 항상 액세스 권한이 있어야합니다. 이를 염두에두고 웹 사이트를 완전히 제어 할 수있는 sysadmin이 개인 키를 내보낼 수 없지만 추적 할 수없는 방법으로 웹 사이트 자체를 조작 할 수 있도록 극단적 인 조치를 취 하시겠습니까? 우리는 여기서 다시 신뢰하고 있으며, 이것이 해결해야 할 문제의 핵심이라고 생각합니다.


2
"관리자가 웹 서버의 개인 키에 액세스 할 수 있습니다.이 사실을 승인하고 해결하십시오." "관리자 권한이있는 사람이 X를 수행하지 못하게하려면 어떻게합니까?"의 영향에 대한 질문 나에게 더 깊은 문제를 나타냅니다. 너무 불신하거나 관리자 권한을 부여하는 데 너무 부족합니다.
Brandon

2
나는 왜 내가 물었다. 시스템 관리자에게는 문제가되지 않으며 모범 사례를 따르고 자합니다.
David Thielen

11

키를 가져올 때 키를 내보낼 수없는 것으로 표시 할 수 있습니다. 이렇게하면 IIS 또는 인증서 MMC를 사용하여 내보낼 수 없습니다. 적어도 조금 더 어려워집니다.

그러나 컴퓨터에 관리자 계정이 있거나 물리적으로 액세스 할 수있는 경우 다른 방법으로 키를 얻을 수 있습니다.


1
실제로 그렇게 어렵지는 않습니다. isecpartners.com/tools/application-security/jailbreak.aspx
Greg Askew

0

"중개 CA"가 도움이 될 수있는 곳입니다.

아래 예에서 "루트 CA"는 귀하가 아닌 SSL 회사가 소유 한 것입니다.

루트 CA가 생성 한 키를 직접 제어 할 수 없으므로 루트 CA가 서명 한 키가 손상되면 해당 키를 통해 해지해야합니다.

그러나:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key for site

중간에 다른 CA를 배치하고 구입 한 SSL 인증서가 서버 인증서에 직접 서명하는 대신 자체 CA 인증서에 서명하도록하는 경우 아래에서 서버 인증서 제어를 유지하고 해지 인증서를 발행하거나 아래에있는 것이 손상된 경우 다른 조치를 취할 수 있습니다. .

중간 CA 개인 키를 자신에게 보관하면 관리자가 볼 필요가 없습니다.

당신은 또한 이것을 할 수 있습니다 :

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key 1 for site
   +-Server Key 2 for site 
   +-Server Key 3 for site

타협을 준비하고 인증서를 미리 생성 할 수 있으므로 개별 키가 취소 된 경우 신속하게 전환 할 수 있습니다. 관리자는 1을 훼손 할 때까지 2 또는 3의 키를 얻지 못합니다.이 체계에 대해 사이트에 알림을 표시 할 수 있으며, 타협의 경우 준비가되었고 재미있는 비즈니스에 대해 관리자에게 알릴 수도 있습니다. end는 사이트를 파괴하지 않습니다.


1
신뢰할 수없는 CA에 대해 사용자에게 SSL 경고가 발생하지 않습니까?
ceejayoz

1
회사 인트라넷 설정과 같이 사용자의 브라우저에 신뢰할 수있는 인증서로 CA를 설치할 수있는 경우에만이 방법이 효과적이라고 생각합니다. 나는 내 용감한 계획에 문제가 있다는 것을 알았습니다. :(
LawrenceC

0

서버 이외의 다른 곳에 개인 키를 저장하도록 제안하는 기사가 많이 있지만 이러한 개인 키는 코드 서명 인증서에 대한 것 입니다. 당신이 액세스 할 수있는 오프라인 컴퓨터에 키가 있고 일부 소프트웨어가 작성되고 오프라인 서버에서 개인 키를 가져 와서 코드에 서명 한 다음 일부 서명해야 할 때까지 다시 개인 키가 필요하지 않다고 상상해보십시오. 다시 코드.

최선의 해결책은 항상 있었으며 계속 키를 오프라인에 저장합니다. 당신이 그것을하는 방법은 전적으로 당신에게 달려 있습니다 (몇 가지 방법이 있습니다), 사무실 안전 또는 누군가가 주머니에 넣기가 쉽지 않은 곳에서 잘 지키십시오.

https://www.thesslstore.com/blog/heres-what-happens-when-your-private-key-gets-compromised/ 에서 자세히 알아 보십시오.

반대로 SSL 인증서는 웹 사이트에서 HTTPS 통신을 가능하게하기위한 것입니다. 웹 서버가 핸드 셰이크 할 때마다 개인 키가 필요합니다. 따라서 오프라인으로 저장하면 작동하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.