문제

나는 시스템을 구축해야 하는 일부를 수집하기 위해 사용자에 민감을 통해 데이터를 보안된 웹사이의 연결,그것을 저장하는 서버에서 나중에 자동화된 암호 해독하고 재사용할 수 있습니다.시스템은 또한 사용자를 보려면 몇 가지 부분의 보안 데이터를(예를 들어, *****ze 다)및/또는 그것을 완전히 변경합니다.시스템 제공해야 합리적인 수준의 보안을 보장합니다.

나는 생각하고 다음과 같은 인프라:

응용 프로그램(Web)서버 1

  1. 웹 서버의 적절한 TLS 지원 보안된 웹 연결이 있습니다.

  2. 공용 키 알고리즘(예:RSA)하기 입력한 암호화 사용자에 민감한 데이터 내 응용 프로그램 서버 2 via one-way 아웃바운드는 보안 채널 (예:ssh-2)저장하지 않고 어디에서나 응용 프로그램 서버 1DB 1Server.

  3. 사용자 비밀번호 의존 대칭 키를 암호화하는 알고리즘 의 일부 입력된 데이터(예를 들어,지난 몇 문자/숫자)저장 에 DB 서버에 1 나 검색 응용 프로그램 서버 1 동 사용자가 웹 세션이 있습니다.

  4. 다시 사용하기 단계 2 위한 데이터를 수정하여 사용자는 웹을 통해.

DB 서버에 1

  1. 저장소 무담보 non-중요한 사용자 데이터입니다.
  2. 저장소의 일부가 민감한 사용자는 암호화된 데이터에 대 응용 프로그램 서버 1 (단계 3 위)

응용 프로그램 서버 2

  1. 보내는 아무것도 하기 응용 프로그램 서버 1DB 서버에 1.
  2. 을 받을 암호화된 사용자에 민감한 의 데이터 응용 프로그램 서버 1 저장 에 DB 서버 2.
  3. 암호화된 검색 사용자에서 민감한 데이터 DB 서버 2 에 따르면 지역정 해독을 사용하여 개인 열쇠 (참조하십시오 응용 프로그램 서버 1, 2 단계)저장 에 로컬로 응용 프로그램 서버 2 적합니다.

DB 서버 2

  1. 저장할 암호화된 사용자에 민감한 데이터(참조하십시오 응용 프로그램 서버 2, 2 단계)

응용 프로그램(Web)서버 1DB 서버에 1 또는 모두 손상된 다음을 공격할 수 없을 것이 어떤 사용자에 민감한 데이터(중 암호화하거나지 않는다).모든 침입자가 액세스를 공개 키 암호화 알고리즘은 잘 알려진 어쨌든.공격자는 것입니다 그러나 수정할 수 있는 웹 서버를 얻는 현재 로그인한 사용자는 암호를 일반 텍스트 및 암호 해독하는 부분의 사용자가 저장된 중요한 데이터에서는 DB 서버에 1(참조하십시오 응용 프로그램 서버 1, 3 단계)는 고려하지 않으로 큰 문제입니다.공격할 수 있을 것입(을 통해 코드 수정)또한 차단 사용자에 민감한 입력된 데이터를 통해 사용자가 웹사는 동안 잠재적인 공격합니다.나중에 생각으로 위험이 높은,그러나 제공하는 것 그것은 하드(그래?) 에 대한 공격하는 코드를 수정할 수 없는 사람 몰래 나는 걱정하지 말아야에 대해 많습니다.

는 경우 응용 프로그램 서버 2 를 주며 손상된 그 침입자가 액세스하지만, 응용 프로그램 서버 2DB 서버 2 하지 않은 웹에 직면 그것은 문제가 안 된다.

얼마나 안전이 포함되어 있을 수 있습니다내 방법의 이해를 암호화 알고리즘과 보안 프로토콜을 작동하는 올바른?

감사합니다!

도움이 되었습니까?

해결책

귀하의 시스템의 목표가 명확한지 확실하지 않기 때문에 적절한 응답을 할 수 있다고 생각하지 않습니다. 디자인에 대한 피드백을받는 것에 감사하지만 목적이없는 것은 조금 어렵습니다.

그래도 당신에게 이것을 제안 할 것입니다 :

먼저 위협 모델을 강력하게 문서화하고 분석하십시오

가능한 모든 공격 시나리오의 고정 하드 라이닝 목록을 제시해야합니다. 현지 공격자 등은 누구를 보호하려고합니까? 또한 '적절한 키 관리'와 같은 것들도 말합니다. 그러나 이것은 가장 어려운 일 중 하나입니다. 그러니 그냥하지 마십시오 추정하다 당신은 이것을 올바르게 얻을 수 있습니다. 공격을 방지 할 사람에 대한 구체적인 연결 로이 작업을 수행 할 방법을 완전히 계획하십시오.

위협 모델을 수행 해야하는 이유는 취약한 각도를 결정해야하기 때문입니다. 이것이 사실이기 때문입니다.

나는 또한 이론이 좋지만; 암호화에서 구현 또한 매우 중요합니다. 당신이 올바르게 일을 할 것이라고 가정하지 말고, 임의의 숫자가 어디에서 왔는지, 그리고 다른 것들을 돌봐야합니다.

나는 이것이 약간 모호하다는 것을 알고 있지만, 적어도 공식적이고 강력한 위협 모델을 생각해내는 것이 당신에게 매우 도움이 될 것이라고 생각합니다.

다른 팁

여태까지는 그런대로 잘됐다. 당신은 매우 안전한 아키텍처로가는 길에 있습니다. 방화벽, 암호 정책, 로깅, 모니터링 및 고려해야 할 경고와 같은 다른 우려 사항이 있지만 지금까지 설명한 모든 것은 매우 견고합니다. 데이터가 충분히 민감한 경우 보안에 대한 제 3 자 감사를 고려하십시오.

내가 권하고 싶지 않을 사용하여 어떤 형태로의 공개 키를 통신에서 당신의 웹 서버를 앱에 서버입니다.는 경우 제어 시스템은 모두 정기적 비밀 시스템의 암호화 합니다.당신의 신원을 알 앱 server,그래서 키를 유지하는 보안 문제가 되지 않습니다.는 경우에 당신은 필요한 변경 또는 업데이트 secret key 그냥 그렇게 수동으로 그것을 막기 위해서는 누수 통해 연결합니다.

내가 무엇을 것이 가장주의에 대한 방향으로의 데이터 전송 서버에서 DMZ 에서해야하는,당신의 웹 서버로,그 상자가 거주하고 내부적으로 귀하의 네트워크입니다.그것은 점점 일반적인을 위한 합법적인 도메인이 손상되는 것을 배포하는 악성코드를 방문한 사용자.는 나쁘지만,경우에는 악성 코드가 돌에서 구 네트워크 대만 바깥쪽으로 귀하의 사용자가 다음의 사업을 것을 완전히 거에요.

또한 아무것도 보지 않았 방지하는 방법에 대한 sql injection 시스템 또는 경화/패치는 악성 코드를 방지하기 위해 배포합니다.이 되어야 합니다 첫 번째 및 가장 중요한 고려 사항입니다.보안했다 중요하다면 될 것이 귀하의 건축물에 유연하는 작은 사용자 지정 inter-서버 통신과 빈번한 패치.대부분의 웹사이트,심지어 주요 정당한 사업 결정하기 보안 경우에도 그들이 손상된다.당신이해야 지속적으로 고정할 수 있는 보안 허점을 변경하는 것을 방지하는 구멍에서 발생하고자 하는 경우를 방지하고 손상에 첫 번째 장소입니다.

지가되는 악성코드 대리점는 것이 좋을 만들고 다른 규정에 따라 얼마나 미디어의 제공을 포함하는 모든 종류의 클라이언트 사이드 스크립트.클라이언트 사이드 스크립트에서 찾을 수 있습 JavaScript,ActiveX,플래시,Acrobat,Silverlight,및 다른 코드나 플러그인을 실행하는 클라이언트에서는 시스템입니다.정책을 위한 제공하는 콘텐츠를 존재해야 합니다 그래서는 anomolous 코드 조각될 수 있는 즉시 확인했다.내 추천 을 포함 클라이언트 측의 코드를 직접 브라우저로,하지만 항상 참고 외부 파일입니다.또한 제안 conslidating 같은 생각을 가진 미디어를 줄 당신은 더 나은 자산을 통제 및 저장 당신은 대역폭 제공하는 등 하나의 큰 자바 스크립트 파일 대신 8 개의 작은 것들입니다.또한 추천을 강제로 이러한 모든 미디어 외부 콘텐츠 배포 시스템을 참조하는 귀하의 도메인에서 그 디렉토리 구조.는 미디어에서 제공되지 않 직접 서버와 경우에 제공되는 직접에서 빠르게 식별할 수 있습니다 그것은 잠재적으로 악성 및 necessittating 보안이 검토합니다.

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