2017-12-24 7 views
0

현재 Java - SFTP 클라이언트/서버 - 설정에 개념적 문제를 다루고 있습니다.Java SFTP 클라이언트 - 개념적

기본적으로 파일을 원격 서버에 보내고 거기에 저장하는 클라이언트가 있습니다. 하지만 : 컴퓨터에서 jar 파일을 통해 업로드를 실행하면 누구나 jar 파일의 암호를 해독하고 clear java 파일을 읽고 sftp에 대한 자격 증명을 얻을 수 있습니다.

이 문제를 해결할 수있는 기술이나 조언 할만한 해결 방법이 있습니까?

안녕하세요. 감사합니다.

+0

나는 당신의 문제를 잘 알지 못했습니다. jar 파일을 사용하는 사용자가 해독 할 수 있고 자신이하는 일을 볼 수 있다고 우려하십니까? 또는 소스 코드에서 사용자/암호를 하드 코드 했습니까? – oBit91

답변

-1

문제점을 올바르게 이해하고 있다면 Java 소스에 사용자의 자격 증명이 있다는 사실에 뿌리를두고 있습니다.

먼저 SSH2를 훌륭하게 구현하려면 jSch library을 사용하는 것이 좋습니다.

자격 증명에 대한 답변은 here입니다. 요약하면 자격 증명을 암호화하여 저장하십시오.

+0

연결된 솔루션으로 OP 문제가 해결되지 않습니다. 서버 자격 증명 및 API 키 저장 클라이언트 측은 사용자가 절대 수행해서는 안되는 일이거나 암호화 된 것입니다. –

+0

나는 그것을하고 싶지는 않겠지 만, OP는 구체적으로 자신의 자격 증명을 소스에 저장하도록 요청했습니다. 암호화 이외의 다른 옵션은 표시되지 않습니다. Stephen의 대답은 좀 더 철저하지만 단순히 문제를 다루지 않고 그저 안전하지 않은 디자인이라고 말하는 것입니다. 어느 쪽이든 OP는 지능형 솔루션을 추론하기에 충분한 정보가 있다고 생각합니다. – oBit91

+0

그리고 C++ 용 응용 프로그램을 작성할 때? 그러면 사용자로부터 자격 증명을 숨길 수 있습니까? 자바로는 불가능합니다. –

2
  1. 자격 증명을 공통/공유 JAR 파일에 넣는 것은 권장하지 않습니다. 안전하게 수행 할 수 없으며, 사용자를 대체해야 할 경우 새 JAR을 다운로드하여 설치해야합니다.

  2. 사용자가 자격 증명을 비공개로 유지할 수있는 방법은 없습니다. 사용자의 컴퓨터에서 자격 증명을 사용해야하는 경우 사용자가 어떻게 든 자격 증명을 추출 할 수 있습니다. 아무리 노력해도. (자신의 컴퓨터를 제어한다고 가정하면 ...)

  3. 자격 증명을 암호화해도 사용자로부터 보호되지는 않습니다. 응용 프로그램에 암호 해독 키가 필요합니다. 사용자는이를 찾아서 추출한 다음 자격 증명을 복구 할 수 있습니다.

  4. 각 사용자마다 고유 한 업로드 자격 증명을 발급하는 것이 좋습니다. 그렇게하면 한 사용자가 자신의 자격 증명을 분실하거나 남용하면 다른 사용자에게 영향을주지 않고 해당 사용자를 무효화 할 수 있습니다.

+0

** 사용자가 ** jar 파일을 계속 사용하기를 원할 때 각각의 사용자 **에 대해 별개의 업로드 자격 증명을 발행하여 ** 의미를 설명 할 수 있습니까? –

+0

각 사용자에게 JAR 파일 *과 별도로 고유 한 사용자 이름 + 비밀번호 또는 키 *를 제공합니다. 이 파일을 설정 파일로 제공 할 수 있습니다 ... JAR 파일과 별도로 동적 웹 페이지 등에서 복사하도록 요구할 수 있습니다. –

+0

@ oBit91에 대한 업데이트 된 설명보기 –