2024/09/10

무료 무제한 클라우드 스토리지? | MixFile

무료 무제한 클라우드 스토리지? | MixFile

출처: MixFile-무제한 공간의 클라우드 스토리지

일단, MixFile은 흔히 생각하는 바이두 넷디스크나 구글 드라이브 같은 클라우드는 아니다. 하지만, 이론적으론 무료 무제한 클라우드가 얼추 맞기는 한 것 같다.

MixFile은 파일을 작은 크기로 나눈 다음 암호화한 후 스테가노그래피(Steganography) 같은 데이터 은폐 기술을 사용해 빌리빌리 같은 무료 업로드 사이트에 (뻐꾸기가 다른 새의 둥지에 알을 낳듯) 몰래 저장하는 방식으로 무료 무제한 클라우드를 실현한다. 고로 정식으로 인가받은 서비스라고는 할 수 없고, 일종의 편법인 셈이다(개발자는 다양한 무료 이미지 호스팅 사이트를 새로운 업로드 라인으로 추가 가능).

그런 만큼 빌리빌리 측에서 비정상 데이터를 확인해 삭제할 수 있는 위험이 항상 존재한다. 하지만, ‘AES-128-GCM 알고리즘으로 암호화 + 은폐 기술‘이 적용되어 있어 서버 측에선 내용을 확인할 수는 없다.

앞으로 어떤 방향으로 개발될지는 모르겠지만, 지금으로선 데이터 백업 및 보관용보다는 임시 공유용으로 사용하는 것이 좋을 것이다.

MixFile 특징

로그인 및 등록 필요 없음, 웹브라우저로 바로 사용 가능

현재 400G 정도의 단일 파일 지원

무제한 공간, 업로드/다운로드 속도 제한 없음

업로드된 비디오 온라인 재생 지원(원본 화질)

클라이언트 로컬 암호화/복호화, 서버 쪽에서는 파일 내용 파악 불가

같은 WiFi에 연결된 기기 중 하나만 MixFile 앱을 설치하면, 다른 기기도 모두 로컬 네트워크 웹사이트 페이지를 통해 직접 파일을 업로드/다운로드/재생할 수 있음

MixFile 원리

MixFile은 복잡한 파일 암호화 및 스테가노그래피(Steganography) 업로드 메커니즘 사용

사용자가 업로드한 모든 데이터는 제삼자 이미지 호스팅 웹사이트에 저장됨

100MB 파일을 업로드할 경우, 파일이 100개로 자동 분할됨

각 조각을 AES-GCM 알고리즘으로 암호화한 뒤, 스테가노그래피 메커니즘을 사용해 빈 이미지에 숨김

그런 다음 100개의 이미지를 타사 웹사이트에 업로드

마지막으로 이 100개 이미지의 링크 데이터를 GZIP 알고리즘으로 압축한 뒤 AES 암호화하여 이진수로 변환하고, 다시 이미지에 숨겨 색인 파일로 저장

마지막에 파일 공유 코드를 반환하고, 공유 코드에는 본 암호화에서 사용한 임의 키와 색인 파일 주소 등의 정보가 포함됨

다운로드 시에는 먼저 색인 파일을 해석하고, 색인에 따라 다른 파일을 다운로드

이러한 모든 단계는 자동으로 처리되며, Kotlin 병렬 최적화를 채택하고 http API 접근을 제공하므로 일반적인 http 직접 전송 호출과 전혀 차이 없음

모든 파일은 다운로드 시 GCM 알고리즘으로 자동 검증되어 파일이 변조되지 않았음을 보장하며, 1바이트라도 변조되면 검증에 실패

MixFile 다운로드

안드로이드: gitlab.com/ivgeek/mixfile/-/releases

윈도우: gitlab.com/ivgeek/mixfiledesktop/-/releases

MixFile 간단하게 살펴보기

MixFile 실행

MixFile 실행 화면. 업로드 라인은 현재 3개(A1, A2, A3)가 제공되고 [사용자 정의]로 별도의 이미지 호스팅 서비스를 추가할 수 있다.

[打开页面]를 클릭해 웹페이지를 연다.

MixFile 파일 업로드 및 공유 코드 복사

파일을 업로드 후 [复制分享码](공유 코드 복사)를 클릭하면, mf://로 시작하는 긴 코드가 클립보드로 복사된다. 이 코드가 일종의 복호화 키인데, 아무튼 이 코드를 알고 있어야 파일을 받을 수 있다.

이게 중요한데, MixFile을 재시작하면 업로드했던 파일 목록이 사라지기 때문에 업로드 후 공유 코드를 반드시 보관해야 한다!!! 목록은 사라져도 공유 코드만 있으면 다운로드는 가능.

참고로 업로드된 파일은 삭제할 수 없다!!!

공유 코드로 다운로드

mf://로 시작하는 공유 코드를 입력하면 파일 다운로드가 시작된다.

업로드/다운로드 속도는 그렇게 좋지는 않고, 200MB 이상 파일 업로드하는 것도 쉽지가 않다. 프로젝트 참여자가 늘어나고 개발도 좀 더 진척되어야 쓸만해질 것 같다.

"上传失败: Request failed with status code 500", 용량 큰 파일 업로드 완료 후 이와 같은 오류가 생기면 [上传并发(업로드 동시성)] 값을 기본값 10에서 5 이하로 낮추고 하면 잘 된다.

0 comments:

댓글 쓰기

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요