it-swarm-korea.com

타사 인증 정보를 안전하게 저장

사용자의 편지함에 액세스해야하는 다중 사용자 웹 애플리케이션이 있다고 가정합니다 (Gmail과 같은 타사 서비스에서). 이 액세스는 지속적이어야합니다. 즉, 사용자 암호를 저장해야합니다. 이로 인해 취약점이 발생합니다. 누군가 이러한 시스템에 액세스 할 수 있다면 사용자의 메일 함을 훔칠 수 있습니다. 그러한 설정에서 위험을 줄일 수있는 방법이 있습니까? 예 : 일부 웹 사이트의 경우 OAuth 토큰에 소비자 키가 필요하고 제한 될 수 있으며 문제가 발생하면 쉽게 대량 만료 될 수 있기 때문에 위험을 줄일 수 있습니다. 그러나이 모든 것은 메일 서버에서 사용할 수 없습니다. 이러한 정보를보다 안전한 방식으로 저장하는 좋은 방법 (있는 경우)에 대한 제안이 있습니까?

9
StasM

경험에 따르면 이와 같은 사이트가 공개 인터넷에 있고 충분히 인기를 얻으면 큰 표적이되고 비참한 타협 가능성이 높습니다. 이 광범위한 토론에서 답변을 잘 살펴보십시오 (약간 다른 목표에 대해).

계속 진행하기로 선택한 경우 사용자에게 실제 위험에 대해 경고해야합니다. 심층 방어는 필수입니다. 많은 보안 강화 및 모니터링, 우수한 IDS 등을 통해 찾을 수있는 가장 안전한 플랫폼에 구축 된 매우 간단한 인터페이스로 방화벽을 통해 액세스하고 실제 암호 저장 시스템을 웹에서 차단하십시오. 기타.

6
nealmcb

당신이 말했듯이 이것은 잠재적 인 약점입니다. 그러나이를 수정하는 방법은 애플리케이션이 구현되는 방식과 많은 관련이 있습니다. 예 : 컨테이너에서 Java 애플리케이션으로 실행되면 시작된 후 애플리케이션의 힙에 토큰을 쓸 수 있습니다. 거기에서 메모리 공간에 들어 가지 않고 다시 읽기가 매우 어렵습니다. Java. 예를 들어, PHP 유형 플랫폼의 경우 이것은 실행 가능한 접근 방식이 아닙니다. 아마도 가장 좋은 해결책은 웹 서버가 시작될 때 환경 변수 세트를 사용하는 것입니다. 물론 이것은 더 복잡합니다. 단일 데이터베이스 암호가 아니라 수천 명의 잠재적 사용자를위한 POP 암호를 유지하기위한 제안-그러나 원칙은 동일합니다. 공유 플랫폼에 관해서는 .... 그런 다음 실제로 파일 시스템으로 이동해야합니다 (suphp 및 PHP의 경우 open_basedir).

그러나 사용자에게 암호를 제공하도록 요청하면이 문제의 대부분이 사라집니다. 스누핑으로부터 세션 데이터를 보호하는 것은 시스템 전체 설정보다 쉽습니다.하지만 여기에는 여전히 잠재적 인 문제가 있습니다. 타사 시설과 독립적으로 사용자를 인증해야하거나 여러 타사에 연결해야하는 경우 사용자 토큰의 저장된 데이터베이스에 대한 암호화 키의 일부로 사용자의 암호를 사용할 수 있습니다.

그러나 그러한 플랫폼을 보호하는 방법을 묻는 대신 위험을 줄이는 방법을 묻는 것입니다. 그러나 타사 인증 메커니즘을 제어하지 않으면 사용자 이름/암호 이외의 다른 것을 사용할 수 없습니다.

따라서 프론트 엔드에서 신의 보안을 보장하지 않는 유일한 다른 옵션은 허니팟으로 데이터를 스파이크하는 것입니다. 허니팟에 대한 액세스가 표시되면 아마도 귀하가 손상되었습니다.

3
symcbean