2009-11-30 7 views
4

나는 등 아마존 S3, FTP, SFTP, 등의 서비스를 제 3 자 자격 증명을 저장해야하는 응용 프로그램이이 .. 암호화 제 3 자 인증

나는 암호없이 이러한 시스템의 일부에 액세스하는 것이 가능하다는 것을 알고있다 , 그러나 그것에는 그것의 자신의 문제점이있다. 고객이 ACL을 통해 S3 버킷에 대한 액세스 권한을 부여한 경우 어떤 버킷이 어떤 사용자에 속하는지 확인해야합니다. SFTP 및 ssh 키 인증에도 동일하게 적용됩니다.

가능하면 암호가 아닌 대안을 허용하기 위해 최선을 다할 것입니다. 그러나 때로는 (FTP)가 불가능할 수도 있습니다. 그 때문에이 중요한 데이터를 데이터베이스 (MySql) 또는 다른 곳에 저장하는 방법에 대한 조언을 찾고 있습니다.

필자는 과거에 자동으로 마운트 해제되는 TrueCrypt 파티션을 사용하는 사람들에 대해 읽었지만 괜찮은 침입 탐지가 필요할 것입니다. 현재로서는 합리적인 보안을 이끌어 내고 앞으로 개선 될 수있는 간단한 접근법에 관심이 있습니다.

이 주제에 대한 조언은 매우 유용 할 것입니다!

답변

3

다양한 범위의 가능성이 있으며 내 의견으로는 컨텍스트에 대한 정보가 충분하지 않기 때문에 내 관점에서 개요를 제공하려고합니다. 여기서 가장 중요한 부분은 데이터의 기밀성과 사용자 인증입니다. 데이터의 무결성 및 가용성은 훨씬 덜 중요합니다.

기본 보안을 원한다면 MySQL이 사용자 이름/암호 조합을 통해 처리하도록하고 주어진 계정에 대한 액세스 권한을 설정할 수 있습니다. 그러나 mysql의 액세스 제어 메커니즘은 세분화되어 있지 않으므로 (행당이 아닌 테이블 당 액세스 제어 규칙 만 설정할 수 있음) 잘못된 데이터베이스 디자인을 초래할 수 있습니다.

암호가없는 접근 방식을 사용하려는 경우 클라이언트 인증서를 제공하고 클라이언트 인증서를 제시하거나 (TLS 사용) 사용자가 무언가에 서명하게함으로써 클라이언트 인증서를 사용자에게 제공 할 수 있습니다. 소위 오라클 서명하기).

또 다른 방법은 데이터베이스에서 데이터를 암호화하는 것입니다. 암호로 대칭 키를 파생시키고이 데이터로 자격 증명을 암호화하면됩니다. 캐치는 물론 당신의 키 유도 프로토콜이 좋고 이것이 성취하기가 쉽지 않다는 것을 알아야한다. (만약 이것을 선택했다면, 기존의 키 유도 프로토콜을 취하거나 스트림 키퍼를 사용하라. 스트림 암호 http://en.wikipedia.org/wiki/Stream_cipher의 목록을 보려면 여기를보십시오.

보안에 신경을 많이 쓰는 경우 스마트 카드로 인증하는 것과 같은 멋진 솔루션이나 액세스 코드를 생성하는 데 시간을 동기화 한 변조 방지 장치에 대해 생각해 볼 수 있습니다. 그러나 이러한 멋진 솔루션은 무료 보안을 제공하지 않으며 하드 및 비용이 많이 드는 경우 (개발 배포로 인해) 이러한 시스템을 구현하지는 않지만 제대로 수행되면 최상의 보안을 제공합니다.

1

사용자가 계정을 설정할 때 (암호를 제공하기 전에) 사용자에게 (강력한) 암호를 제공하게합니다. 그런 다음 사용자 암호의 강력한 해시 (SHA256 등)에서 파생 된 키를 사용하여 데이터베이스 내의 해당 계정에 대한 모든 데이터를 암호화합니다. 이렇게하면 서버가 손상된 경우 사용자의 암호 (사용자 암호의 해시)로 암호화되고 서버의 어느 위치에도 암호가 저장되지 않으므로 데이터가 노출되지 않습니다.

+0

암호를 변경하는 경우 : 사용자가 암호를 잊어 버렸거나 자동 변경 스크립트를 통해 잊어 버렸거나 잊어 버렸거나 대화를 한 경우 또는 30 일이 경과했기 때문에 암호를 변경할 때주의해야합니다. 또는 무엇이든) 파생 된 키와 암호화 된 데이터를 업데이트해야합니다. – atk

+0

또한 암호 재설정 중에 암호를 전자 메일로 보내면 키가 사라집니다. 새 암호를 생성하면 이전의 모든 데이터가 쓸모 없게됩니다. –

+0

-1 해시 저장은이 경우 암호를 저장하는 것만 큼 나쁩니다. 침입자가 해시에 대한 액세스 권한을 얻으면 간단히 키를 파생시키고이를 사용하여 계정 데이터의 암호를 해독 할 수 있습니다. – Theran

0

키 스토어의 사용을 조사해야합니다. TruCrypt는 이러한 키 스토어의 예이지만 서비스 레벨 자격 증명을위한 것이 아닌 개인 키 스토어입니다.

다른 사람이 액세스 할 수있는 형식으로 암호를 저장하는 것을 피할 수 없으며 목표는 정보에 액세스 할 수있는 사람을 최소화하는 것입니다. 응용 프로그램 데이터와 동일한 MySQL을 설치하면 재난이 발생합니다.

관련 문제