2012-07-19 1 views
0

공개 키 및 개인 키 쌍이 클라이언트 측에서 Java 스크립트 알고리즘을 통해 생성되고 공개 키가 서버로 전송됩니다.공개 키가 서버에 저장된 경우 어떻게됩니까?

사용자 개인 키의 복사본이 사용자 컴퓨터에 Java 스크립트 변수 형태로 저장되었습니다. 사용자 A가 사용자 B

서버가 사용자 B의 공개 키를 사용하여 메시지를 암호화에 메시지를 전송

.

사용자 B는 사용자 B의 개인 키인 메시지를 암호 해독하고 암호 해독합니다 (Java 스크립트로 작성된 알고리즘). 개인 키는 Java 스크립트 변수에 보관됩니다.

사용자 B의 개인 키가 네트워크를 통해 공개되지 않는 시점은 언제입니까?

안전할까요?

+0

아래 답변 중 하나라도 유용하다면 허용 된 것으로 표시하여 사람들이 더 이상이 질문에 시간을 보내지 않을 것입니다. – techfoobar

+0

누구나 "안전합니까?"라는 질문에 답하기 전에 위협 모델이 무엇인지 설명해야합니다. 즉, 공격자는 누구이며, 목표는 무엇이며, 보유한 자원은 무엇입니까? –

답변

2

'공개'와 '비공개'는 두 키에 부여 된 이름입니다. 중요하지 않습니다. 두 키 중은 공개 키이고 비공개 키입니다. 사용법을 혼동하지 않는 한. 동시에 두 키를 사용할 수있게되면 메시징 시스템의 보안이 완전히 파괴됩니다.

기술적으로 키가 자바 스크립트 변수에 저장되어 있기 때문에 변수가 브라우저 기반 HTML/자바 스크립트에 임베드되어 있음을 의미합니다. 이는 두 키가 모두 네트워크에 노출되어 있기 때문에 보안이 없음을 의미합니다.

+0

Re : "키가 자바 스크립트 변수에 저장되었다고 했으므로 변수가 브라우저 기반 HTML/자바 스크립트에 임베드되어 있음을 의미합니다."사실이 아닙니다. OP는 "공개 키와 개인 키 쌍이 클라이언트 측에서 Java 스크립트 알고리즘을 통해 생성되고 공개 키가 서버로 전송됩니다."라고 명시 적으로 언급했습니다. – ruakh

+1

"public"과 "private"은 두 개의 키에 주어진 이름 일 뿐이며 두 개의 키 중 어느 것이 공개이고 어떤 것이 비공개인지는 중요하지 않습니다. "- 이것은 일반화이므로 항상 그렇지 않습니다. 일부 PK 알고리즘은이 방식으로 대칭이지만 다른 알고리즘은 그렇지 않습니다. –

0

그것은 너무 안전하지 않을 것 가입일 :

사용자 (예를 들어 사용자 B)의 개인 키는 주입 JS 코드 또는 나쁜 브라우저 추가 기능을 통해 앱에서 유출 될 수
  • 이 작업이 완료되면 사용자 B에게 전달 된 메시지에 액세스 할 수있는 사람은 누구나 해독하여 감식 할 수 있습니다.
  • 물론 앱을 사용하는 사람이 단 한 명이라도 위와 같은 일은 발생하지 않습니다. 다른 브라우저 설정/애드온/브라우징 동작 등을 가진 다른 사용자가있을 가능성이 높기 때문에 전적으로 가능합니다.
  • 사용자 A가 사용자 B에게 무언가를 보내려고하면 서버는 사용자 B의 공개 키를 사용하여 메시지를 암호화합니다. 이제 JS를 통해 이루어진이 요청은 중간 사람이 해석 할 수 있습니다. 완료되면이 중개자는 발신자, 리퍼러 등을 조작하여 모든 사용자에게 모든 요청을 시작할 수 있습니다. 이렇게하면 명의도 도용 될 수 있습니다.
  • 또한 세대를 지나면 공개 키를 섬기는 사람. JS에서 작성된이 호출은 쉽게 해석 할 수 있습니다. 즉 공개 키가 유출 될 수 있음을 의미합니다.
1

"안전한"것인지 판단하려면 보안 요구 사항을 알아야합니다. 귀하의 사례는 몇 가지 가능한 요구 사항을 충족 시키지만, 이 아닌 몇 가지 가능한 요구 사항이 있습니다.이 충족됩니다. 예 :

  • 메시지의 일반 텍스트 사본이 사용자 A에서 서버로 네트워크를 통해 전송되므로 누구나 그 시점에서 도청 할 수 있습니다. (이것은 심각한 문제가 될 수 있습니다.)
  • 설명하지 않음 공개 키가 서버로 전송되는 방법. 인증 된 방식으로 전송되지 않으면 man-in-the-middle은 자신의 공개 - 개인 키 쌍을 생성하고 공개 키를 서버에 제공 할 수 있습니다. (심각한 문제 일 수 있습니다.)
  • 사용자 B는받은 메시지의 진위 여부를 확인할 수 없습니다. 메시지는 서버 (그리고 궁극적으로 사용자 A)에서 왔을 수도 있고 공개 키의 사본을 가진 다른 사람이 보낸 메시지 일 수도 있습니다. (이것은 또는 응용 프로그램에 따라 심각한 문제가 될 수도 있고 그렇지 않을 수도 있습니다.)

그래서 점수는 하지이 디자인은 "안전한"로 간주합니다.