파일 전송 애플리케이션을 보장합니다
안전한 인터넷 파일 전송 응용 프로그램/프로토콜 설계 및 구현. 이 프로그램에는 아래에 요약 된 몇 가지 보안 요구 사항이 포함됩니다.
지원되는 기능
- 클라이언트는 안전한 방식으로 파일을 서버에 업로드 할 수 있어야합니다. 클라이언트는 또한 안전한 방식으로 서버의 파일을 다운로드합니다.
- 파일이 업로드되거나 다운로드되면 손상되지 않아야합니다. 즉, 기능을 유지해야합니다. 예를 들어, 실행 가능한 경우 실행할 수 있거나 이미지 인 경우 이미지가 원래 파일과 동일해야합니다.
- 클라이언트는 서버를 인증하면됩니다. 서버는 클라이언트를 인증 할 필요가 없습니다.
- 커뮤니케이션을 확보하는 데 허용되는 유일한 기술은 Keyed 해시 (예 : SHA-256)입니다.
보안 요구 사항
응용 프로그램에는 다음 보안 요구 사항이 포함됩니다.
- 인증 : 클라이언트는 서버의 RSA 공개 키를 사용하여 서버를 인증합니다.
- 기밀성 : 클라이언트와 서버간에 교환 된 메시지는 전달되는 내용을 읽을 수있는 권한이없는 다른 사람에 대한 노출로부터 보호됩니다. 기밀 커뮤니케이션 메커니즘을 구축 할 수있는 유일한 보안 프리미티브는 Keyed 해시 (예 : SHA-256)입니다. 이 프로젝트의 일부는 기밀에 대한 잘 알려진 공격에 대해 안전한 통신 프로토콜을 설계하는 것입니다.
- 무결성 : 통신 당사자들에 의해 운송에서 가능한 메시지 변경이 감지되지 않아야합니다. 다시 말하지만, 당신은이를 달성하기 위해 키 해시 메커니즘 만 사용할 수 있습니다.
기술 사양
* Python3
* SHA256
* RSA Key Generation and usage
전제 조건
- python3
- 멀티 스레딩 및 소켓 프로그래밍
- 암호화 해시 기능
- 공개 키 암호화
팀원