2012-07-16 4 views
4

사용자는 서로에게 메시지를 보내고 레일즈 앱을 통해 다른 사용자의 개인 정보를 게시합니다.레일 측 애플리케이션을위한 클라이언트 측 데이터 암호화/암호 해독

목표는 메시지 보안이므로 시스템 관리자 나 데이터베이스 누수가 데이터를 손상시킬 수 없습니다. 수신자 키로 자바 스크립트 클라이언트 측 암호화, 암호화 된 데이터는 데이터베이스에 저장되고 수신자 측에서 해독됩니다. 키는 시스템에 저장되지 않습니다.

의미가 있습니까? 해결책이 있습니까? 감사합니다.

업데이트 : 비대칭 암호화를 의미합니다. 각 사용자에 대해 두 개의 키 : 암호화를위한 공개 키, 암호 해독을위한 개인 키. 응용 프로그램 자체의 암호. 사용자는 암호를 사용하여 로그인하고 수신자 공개 키 (시스템에 저장 됨)로 암호화 된 클라이언트 측 메시지를 작성하고 데이터베이스에 저장합니다. 받는 사람은 암호를 사용하여 로그인 한 다음 개인 키를 입력하여 메시지를 디코딩합니다. 암호 해독도 클라이언트 쪽, 개인 키가 서버로 전송되지 않습니다.

+0

키가 시스템에 저장되어 있지 않은 경우 어떻게 클라이언트가 해당 키를 계속 보유합니까? 로컬 저장소? 그런 다음 두 대의 컴퓨터 (또는 브라우저)에서 시스템에 로그인 할 수 없었습니다. 단순한 암호입니까? 무차별 적으로 강탈 당할 위험이 있습니다. ... –

+0

@ JoachimSauer 나는 비대칭 암호를 사용합니다. 공개 키는 암호 해독에 사용할 수 없기 때문에 시스템에 저장할 수 있습니다. 질문 업데이트 : – Elder

+0

여전히 * 클라이언트 *가 개인 키를 얻거나 유지합니까? 데이터를 해독하는데도 여전히 필요합니다. –

답변

2

확실히. 이 http://crypto.stanford.edu/sjcl/을 사용하십시오. 특히 데모보기 http://bitwiseshiftleft.github.com/sjcl/demo/

키를 저장하지 않는 유일한 방법은 사용자가 암호에서 파생시키는 것입니다 (사용자가 사이트에서 사용하지 않아야 함).). 위의 라이브러리는 위와 같은 라이브러리입니다. 그러나 암호를 잊어 버리면 암호가 도움이되지 않습니다.

+0

고마워요,하지만 이건 내가 찾고있는 것이 아닙니다. AES는 대칭 알고리즘입니다. RSA와 같이 비대칭적인 알고리즘을 찾고 있습니다. – Elder

+1

아, 그리워. 비대칭 암호 https://github.com/bitwiseshiftleft/sjcl/commits/ecc를 지원하는 지사가 있습니다.일반적으로 자바 스크립트 암호 라이브러리가 많이 있지만 almsot은 아무 것도 모르는 사람들이 쓰지 않습니다. – imichaelmiers

+0

링크를 제공해 주셔서 감사합니다! – Elder

1

, 당신은 openpgp.js를 사용할 수 있습니다. 합법적으로 lib를 사용하여 키, 서명, 암호화/암호 해독 등을 쉽게 만들 수 있습니다.

관련 문제