2011-07-06 2 views
1

나는 RESTful 웹 서비스를 만들기 위해 사용자 로그인/인증 클라이언트를 만들려고합니다. 그러나 인증 API의 사용 가능한 JAX-RS를 사용하여 인증을 설정하는 동안 몇 가지 문제가 있었으며 접근 방식을 변경하기로 결정했습니다. 이제 실제로하려고하는 것은 다음과 같습니다. 웹 페이지는 그의 이메일과 ":"기호로 구분 된 비밀번호에 포함 된 uri (사용자/로그인)에게 ajax POST 요청을 보냅니다. 이 메시지 본문은 일부 JavaScript lib를 사용하는 클라이언트의 RSA 알고리즘을 사용하여 암호화되며 서버 측에서 해독됩니다.RSA Cryptography javascript

문제는 Java를 사용하여 PublicKey를 생성했으며 X509 패딩을 사용하여 인코딩 된 base64 문자열로 저장됩니다.

공개 키를 나타내는이 인코딩 된 문자열을 JavaScript 만 사용하여 어떻게 디코딩 할 수 있으며 실제로 일부 텍스트를 암호화하는 데 사용할 수 있습니까?

미리 감사드립니다.

+0

왜 클라이언트에서 암호화합니까? 자바 스크립트? 왜 SSL을 사용하지 않습니까? –

+1

암호화가 클라이언트 측이라면 클라이언트 측 소스를 사용하여 MITM하고 디코딩 할 수 있다면 암호화의 요점은 무엇입니까? SSL로 더 나아졌습니다. – Robert

+0

나는 안전한 방법으로 서버에 저장된 개인 키를 사용하여 공개 키를 해독하여이를 암호화합니다. 처음에 보았 듯이 MITM 공격은 공개 키가 주어진다면 PrivateKey를 알기가 거의 불가능하기 때문에 일어날 수 있습니다. –

답변

3

왜 메시지 본문 만 암호화 하시겠습니까? SSL을 통해 AJAX 요청을하면 전체 전송이 암호화됩니다.

코드에 최소한의 변경 만 있으면됩니다 (URL 앞에 https 입력). 자바 스크립트에서는 암호화에 대해 걱정할 필요가 없습니다.

+0

그것에 대해 생각했지만 서버에서 처리하는 방법을 모르겠습니다. 현재 Tomcat에서 Jersey를 사용하고 있으며 이에 관해 도움이되는 것을 찾지 못했습니다. –

+0

특별한 방법으로 '서버에서 처리'할 필요가 없습니다. SSL 만 사용하십시오. 저는 IIS 사용자이므로 Tomcat 설정으로 당신을 도울 수 없습니다. –

-3

일단 base64 문자열을 디코딩하기 위해 JQuery 플러그인을 사용했습니다.

$.base64.decode('yourstring'); 

자세한 내용은 여기를 참조하십시오. http://plugins.jquery.com/project/base64

+0

암호화 및 인코딩은 두 가지 개념입니다. –