it-swarm-korea.com

클라이언트 측에 암호 / 인증서를 저장해야하는 경우, 어떻게 보호되는지 확인할 수 있습니까?

어떤 경우에는 키/암호/인증서를 첫 번째 타이머로 설정 한 다음 클라이언트로서이 키/암호/인증서를 사용하여 인증을 받아야합니다. 따라서 키/암호/인증서는 클라이언트 측에 저장되어야합니다.

이 키를 보호하는 방법은 무엇입니까?

물론 해시 할 수는 있지만 다시 로그인하려면 해시 된 값이 아닌 키가 여전히 필요합니다.

11
Phoenician-Eagle

귀하의 의견을 고려할 때 이것이 가능하지만 가능성이 많은 함정으로 인해 매우 복잡하다고 말할 수 있습니다.

아직 흔하지는 않지만 CardSpace (nee InfoCard) 를 살펴 보는 것이 좋습니다. 기본적으로 이것은 당신이 찾고있는 것에 대한 매우 안전한 구현과 추가적인 이점을 제공합니다 (예를 들어, 사용자는 누구에게 어떤 정보를 보낼지에 대한 더 많은 통제권을가집니다). 물론 트레이드 오프가없는 것은 아닙니다. 사용자는 그것에 익숙하지 않으며 구현하기가 약간 복잡합니다.

3
AviD

클라이언트 측에서 민감한 정보를 안전하게 저장하는 "올바른"방법은 운영 체제에서 제공하는 기능을 사용하는 것입니다. KeyChain MacOS X 또는 DPAPI Windows. 클라이언트 측 데이터를 보호하는 것은 어려운 문제이지만 일부 경우에는 유용한 하드웨어 (예 : 스마트 카드)가 있습니다. OS는 하드웨어에 직접 액세스 할 수 있으며 이미 구성되어있을 수도 있습니다. 또한 OS 구현 보호 시스템은 일반 사용자 인증 시스템에 잘 통합 될 수 있습니다.

이론적 인 관점에서 볼 때 소프트웨어에서만 수행 할 수있는 작업은 많지 않습니다.

  • 난처. 응용 프로그램은 모호한 방식으로 작업을 망가 뜨리지 만 응용 프로그램은 난독 화 된 데이터를 풀 수있는 코드이므로 공격자가 코드를 리버스 엔지니어링하지 않는 한 공격자에게 저항 할 수 있습니다. 긴.

  • 암호 기반 암호화. 암호에서 파생 된 대칭 키를 사용하여 데이터를 암호화합니다. 이것은 암호의 엔트로피가 높고 적절하게 "강화"된 경우 안전하게 만들 수 있습니다 ( bcrypt 사용). 어쨌든 OS 기반 솔루션이하는 경향이 있습니다. 순수한 응용 구현의 경우 GnuPG 사용을 고려하십시오. 이는 기본적으로 수행 할 수 있습니다 (명령 줄 도구를 사용하면 gpg -c file).

2
Thomas Pornin

대칭 암호 를 사용하여 인증서를 로컬로 암호화하고 사용자가 키로 강력한 암호를 선택하도록합니다.

따라서 먼저 암호를 제공하지 않고 인증서를 사용할 수 없게됩니다.

1
David Bullock