OpendRop 은 Wi-Fi에서 직접 장치간에 파일을 공유 할 수있는 명령 줄 도구입니다. 고유 한 기능은 iOS 및 MACOS를 실행하는 Apple 장치와 파일을 공유 할 수있는 Apple Airdrop과 프로토콜 호환이라는 것입니다. 현재 (그리고 아마도 가까운 미래), OpenDrop은 기본 연락처 전용 모드에 Apple 서명 된 인증서가 필요하기 때문에 모든 사람 이 발견 할 수있는 Apple 장치로 전송하는 것만 지원합니다. Keychain 추출기를 통해 MACOS에서 추출 된 에어 드롭 자격 증명 (키 및 인증서)을 사용하여 연락처 전용 장치를 지원합니다.
OpenDrop은 실험적인 소프트웨어이며 Open Wireless Link 프로젝트의 역 엔지니어링 노력의 결과입니다. 따라서 에어 드롭의 모든 기능을 지원하지 않거나 향후 에어 드롭 버전과 호환되지 않을 수 있습니다. OpenDrop은 Apple Inc와의 제휴 또는 승인이 아닙니다.이 코드를 귀하의 위험에 따라 사용하십시오.
Apple Airdrop과의 호환성을 달성하려면 OpenDrop은 특정 Wi-Fi 링크 계층을 지원하기위한 대상 플랫폼이 필요합니다. 또한 여러 라이브러리뿐만 아니라 Python> = 3.6이 필요합니다.
Apple Wireless Direct Link. AirDrop은 AWDL (Apple Wireless Direct Link)을 통해 독점적으로 실행되므로 OpenDrop은 MacOS 또는 OWL과 같은 AWDL의 개방형 재 구현을 실행하는 Linux 시스템에서만 지원됩니다.
도서관. Opendrop은 현재 버전의 libarchive에 의존합니다. MacOS는 다소 오래된 버전을 제공하므로 예를 들어 Homebrew를 통해 새로운 버전을 설치해야합니다.
brew install libarchive
OpenDrop은 DYLD_LIBRARY_PATH
자동으로 설정하여 Homebrew 버전을 찾습니다. 라이브러리를 다르게 설치하면 변수를 직접 업데이트해야 할 수도 있습니다.
Linux 배포판은보다 최신 버전과 함께 배송해야하므로 필요하지 않습니다.
pip3
사용하여 Python 패키지 릴리스의 설치는 간단합니다.
pip3 install opendrop
먼저이 저장소를 복제 한 다음 pip3
통해 설치하여 현재 개발 버전을 설치할 수도 있습니다.
git clone https://github.com/seemoo-lab/opendrop.git
pip3 install ./opendrop
opendrop
사용하여 파일을 보내고받는 방법을 간단히 설명합니다. 모든 명령 줄 옵션을 보려면 opendrop -h
실행하십시오.
파일을 보내는 것은 일반적으로 2 단계 절차입니다. 먼저 find
명령을 사용하여 근접한 장치를 발견합니다. 수신기를 찾으면 프로세스를 중지하십시오.
$ opendrop find
Looking for receivers. Press Ctrl+C to stop ...
Found index 0 ID eccb2f2dcfe7 name John’s iPhone
Found index 1 ID e63138ac6ba8 name Jane’s MacBook Pro
그런 다음 사용 파일 (또는 링크, 아래 참조)을 send
수 있습니다.
$ opendrop send -r 0 -f /path/to/some/file
Asking receiver to accept ...
Receiver accepted
Uploading file ...
Uploading has been successful
index
대신 ID
또는 name
사용할 수도 있습니다. OpenDrop은 (1) index
, (2) ID
및 (3) name
과 일치가 발견되지 않은 경우 실패로 입력을 해석하려고합니다.
웹 링크 보내기. v0.13 이후 OpenDrop은 웹 링크, 즉 URLS 전송을 지원하므로 Apple 장치를 수신하면 수락 할 때 즉시 브라우저를 열게됩니다. (OpenDrop 수신기는 여전히 일반 파일 수신 만 지원합니다.)
$ opendrop send -r 0 -f https://owlink.org --url
받는 것이 훨씬 쉽습니다. receive
명령을 사용하기 만하면됩니다. OpenDrop은 들어오는 모든 파일을 자동으로 수락하고 수신 된 파일을 현재 디렉토리에 넣습니다.
$ opendrop receive
OpenDrop은 연구 프로젝트의 결과이므로 몇 가지 제한 사항이 있습니다 (아래의 비대적 목록). 나는 그들 자신을 직접 일할 능력이 없지만 다른 사람이 그들을 데려 가고 싶다면 도움을 드릴 것입니다.
Bluetooth 저에너지를 통해 MacOS/iOS 수신기를 트리거합니다. Apple 장치는 Bluetooth LE를 통해 사용자 정의 광고를 수신 한 후에 만 AWDL 인터페이스 및 에어 드롭 서버를 시작합니다 (자세한 내용은 Usenix 용지 참조). 이것은 Apple Airdrop 수신기가 모든 사람 이 발견 할 수 있더라도 발견되지 않을 수 있음을 의미합니다.
발신자/수신자 인증 및 연결 상태. 현재 Apple의 에어 드롭에서와 같이 피어 인증은 없습니다. (1) OpenDrop은 TLS 인증서가 Apple의 루트에 의해 서명되었으며 (2) Apple ID 검증 기록이 올바른지 확인하지 않습니다 (자세한 내용은 Usenix 용지 참조). . 또한 OpenDRop은 연결 상태가 누락되어 수신 한 파일을 자동으로 수락합니다.
여러 파일을 전송합니다. Apple Airdrop은 여러 파일을 한 번에 보내는 것을 지원하며 OpenDRop은 (아카이브에 더 많은 파일을 추가하고, http /ask request)를 수정해야합니다).
OpenDrop은 GNU 일반 공개 라이센스 v3.0 에 따라 라이센스가 부여됩니다.