2009-09-13 7 views
2

내 .NET WinForms 응용 프로그램이 ftp 서버에 연결하여 파일을 다운로드합니다. 이를 위해 연결을위한 암호가 필요합니다. 암호는 구성 파일에 저장해야하지만 암호화해야합니다. 내가 찾은 유일한 해결책은 전체 설정 섹션을 보호하는 것 (수동으로 변경해야하는 다른 데이터가있는 appSettings 섹션에서와 같이 나를위한 용도는 아님) 또는 DPAPI를 사용하는 것입니다 내 컴퓨터에서 암호화 된 암호는 다른 암호로는 암호를 해독 할 수 없기 때문에 작동하지 않습니다. 다른 기술이 있습니까?구성 문제로 비밀번호 보안

+0

답을 업데이트했습니다. –

+0

자신 만의 섹션을 만들 수 있지만, 섹션을 파싱하려면 핸들러를 정의해야합니다. 예를 들어 http://www.codeproject.com/KB/aspnet/ConfigSections.aspx –

+0

을 참조하십시오.하지만 내 컴퓨터에서만 암호화 된 섹션의 암호를 해독 할 수 있습니다. 이것이 문제입니다. – agnieszka

답변

2

응용 프로그램 내에서 대칭 암호 (예 : AES)를 사용하여 수동으로 암호화하고 암호를 해독하고 암호화 된 암호를 구성 파일에 저장할 수 있습니다.

물론이 문제는 응용 프로그램 내에서 암호를 암호화하고 암호 해독하는 대칭 키를 저장해야하므로 암호화 및 .net 지식이있는 사람이라면 누구나 암호를 반영하고 리버스 엔지니어링 할 수 있습니다 상당히 쉽게 바이너리를 사용하고 키와 따라서 FTP 암호를 확보하십시오.

이 작업을 어렵게하기 위해 이진 파일을 혼란스럽게 만들 수 있습니다.

물론 FTP 사용자 이름과 암호는 ftps를 사용하지 않는 한 일반 텍스트로 전송되므로 사용자는 앱을 '듣고'있으면 사용자 이름과 암호가 상당히 빨리 파악됩니다.

응용 프로그램에서이 사용자 이름과 암호를 얼마나 안전하게 유지할 수 있을지 궁금합니다. 이 솔루션은 눈길이가는 사람들이 눈을 가리지 않고 결정을 내리지 못하게합니다.

+0

이 보안은 충분합니다. 간단한 내부 회사 앱이며 매우 높은 보안이 필요하지 않습니다. 비밀번호를 설정 파일 – agnieszka

3

.config 파일의 특정 부분을 암호화 할 수 있습니다 (예 : <connectionstrings> 섹션). 이것은 FTP 암호를 보유 할 수 있지만 (실제로는 연결 문자열이 아닙니다) <appSettings> 섹션을 암호화되지 않은 상태로 둘 수 있습니다.

업데이트 :<connectionstrings>을 사용할 수없는 경우 나만의 맞춤 섹션을 만들어 암호화 할 수 있습니다.

대부분의 리소스는 ASP.NET aspnet_regiis 도구를 사용하도록 알려줍니다. Here은 ASP.NET을 사용할 수없는 C# Windows 응용 프로그램의 섹션 암호화에 대해 설명합니다.

또한 갱신 : 코멘트에서, 당신은이 보안이 충분하다

했다 - 그것은 간단한 내부 - 회사 응용 프로그램입니다 매우 높은 보안을위한 필요없이, 단지 돈 ' 있다 t 암호를 만들고 싶어

그래서 아마도 this solution 당신을 위해 작동 할 설정 파일에 일반 텍스트로가 를하다.

+0

+1에 일반 텍스트로 저장하고 싶지는 않습니다. 정확히 내가 제안하려고했던 것! –

+0

여전히 전체 섹션입니다. 수동으로 변경할 수있는 다른 연결 문자열을 저장해야하는 경우 어떻게해야합니까? – agnieszka

+0

예. 또는 암호에 대한 별도의 구성 파일을 가지고 있습니다. 그런 다음 파일에 원하는 모든 작업을 수행 할 수 있습니다. 암호화하고 가능한 다른 곳으로 숨기거나 가능한 경우/가능하면 파일에 대한 보안 권한을 변경하십시오. 앱을 배포해야하는지 여부에 달려 있습니다. 궁극적으로 이것들은 모든면에서 취약하기 때문에 다른 프로토콜 (어쩌면 SFTP)을 보거나, 서버에서 IP로 연결을 필터링하거나, 데이터가 서버에서 수집되는 방식에 대한 다른 접근 방식을 찾아 볼 것을 제안합니다. 섬기는 사람. –