2012-12-09 5 views
2

나는 서버에 안전하게 파일을 전송하고 저장해야하는 응용 프로그램을 설계하는 데 도움을주고 있습니다. 응용 프로그램은 C#으로 작성되지만 서버는 Linux 기반입니다. 이 파일을 최대 2GB 크기로 전송하고 저장하려면 어떤 프로토콜을 사용해야합니까?안전한 전송 프로토콜을 선택하는 방법

나는 약간의 sftp와 ssh를 읽었습니다. 이것들이 좋을까요?

답변

2

최소한의 구성 요소로 .NET에서 쉽고 안전하게 전송할 BIG 파일을 얻으려면 일반적으로 명시적인 SSL을 통해 FTP라고도하는 FTPES를 사용하고 싶습니다. 때때로 "FTPS"또는 "FTP-ES"라고도합니다. 이는 타사 플러그인이 필요없는 순수한 .NET 방식으로 지원되는 유일한 버전입니다.

SFTP 또는 SSH을 통한 FTP를 사용하면 FTPES와 달리 사용자와 클라이언트간에 수동으로 키를 교환해야합니다. 또한 .NET에는 SFTP에 대한 기본 제공 기능이 없으므로 타사 라이브러리가 필요합니다.

FTPES를 사용하기 위해 클라이언트를 작성하려면 FtpWebRequest를 사용하고 EnableSSL to true을 설정하면됩니다.

은 무엇을 피하기 위해 :

  • Implicit SSL을 통해 FTP 사용하지 마십시오. 이 시점에서 수년 간 에 대한 지원이 중단되었으며 더 이상 사용하지 않아야합니다.

  • 파일을 PGP로 암호화 한 다음 일반 오래된 FTP로 전송하지 마십시오. 평범한 구식 FTP의 경우 모든 사용자 이름과 암호는 일반 텍스트로 전송되므로 은 공격자가 PGP로 암호화 된 파일을 쉽게 가로 채도록 허용합니다.

+0

SSL 및 SSH는 비슷한 키 길이를 지원하므로 전반적인 SSL은 계층 적 PKI로 인해 더 안전합니다. –

+0

@ EugeneMayevski'EldoSCorp : SSL의 128 비트 세션 키와 달리 SSH2는 일반적으로 인증서 키에 해당하는 반면 256 비트 세션 키를 사용한다는 인상을 받았습니다. 내가 잘못? –

+1

TLS 1.1 및 1.2를 사용하면 256 비트 키가있는 AES 및 Camellia 암호 그룹을 사용할 수 있습니다. 또한 SSH의 경우 256 비트 세션 키가 최근 버전이기도합니다. 엄밀히 말하면 이들 중 하나가 다른 하나보다 암호 학적으로 안전하지 않게 만드는 프로토콜 시스템에는 아무것도 없습니다 (물론 보안 구멍도 가능합니다 :). 핵심 관리의 용이성 및 해지 메커니즘의 존재와 같은 비 기술적 인 측면으로 인해 보안의 핵심 요소가됩니다. –

관련 문제