2014-10-28 44 views
5

Tôi đang phát xung quanh với iLoot, một ứng dụng nguồn mở cho phép bạn tải xuống bản sao lưu iCloud và tôi đã tự hỏi làm thế nào để có thể triển khai xác thực hai yếu tố với nó.setup.icloud.com xác minh hai bước

Tôi đã 2FA bật trên tài khoản của tôi và những gì tôi nhận được trên các yêu cầu đầu tiên là thế này:

yêu cầu đầu tiên:

 auth = "Basic %s" % base64.b64encode("%s:%s" % (login, password)) 
authenticateResponse = plist_request("setup.icloud.com", "POST", "/setup/authenticate/$APPLE_ID$", "", {"Authorization": auth}) 

plist_request chỉ là một con trăn bình thường (request) chức năng yêu cầu từ url và trả về xml được phân tích cú pháp.

phản ứng đầu tiên (ở định dạng xml):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"  "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>protocolVersion</key> 
    <string>2</string> 

    <key>title</key> 
    <string>Verification Required</string> 

    <key>localizedError</key> 
    <string>MOBILEME_TERMS_OF_SERVICE_UPDATE</string> 

    <key>message</key> 
    <string>This Apple ID is protected with two-step verification. To sign in, you must verify your identity.</string> 

</dict> 
</plist> 
Request /setup/authenticate/$APPLE_ID$ returned code 409 

Trong trường hợp bất cứ ai biết những gì các cuộc gọi tiếp theo sẽ là đầu vào hai bước mã xác minh, nó có thể giúp để con nó ra.

+0

Bạn có tìm thấy giải pháp cho việc này không? –

+0

@BenyBoariu Đây là dự án cuối tuần của tôi nên tôi đã ngừng tìm kiếm giải pháp sau đó, sẽ đăng ở đây nếu tôi quay lại. Xin vui lòng cho tôi biết nếu bạn tìm thấy bất cứ điều gì sau này :) – Shayan

Trả lời

4

Tôi là một anh chàng iOS, không phải là người phụ trợ, nhưng nhóm phụ trợ của tôi đã giải quyết vấn đề này bằng cách sử dụng mật khẩu dành riêng cho ứng dụng thay vì mã thông báo.

Đây là cách sử dụng có thể tạo ra một mật khẩu ứng dụng cụ thể: Generate App-Specific Password

Sau đó, chỉ cần sử dụng email và mật khẩu này, thay vì các dấu hiệu hình thành bởi dsPrsID: mmeAuthToken. Như tôi đã học được cho đồng đội của mình, bạn không phải thực hiện mã hóa base64, chỉ cần sử dụng mật khẩu mới đó và url: 'https://caldav.icloud.com/'

Hy vọng điều này sẽ hữu ích. Đó là một cơn ác mộng đối với chúng tôi, không có sự giúp đỡ nào trên internet.

CẬP NHẬT

Mọi chi tiết, đây là những bước tôi sử dụng đứng về phía tôi (iOS):

  1. tôi gọi https://setup.icloud.com/setup/authenticate/ "[email protected]", bằng cách thiết lập "Email cơ bản: mật khẩu" dưới dạng chuỗi base64 đến trường tiêu đề http "Cấp quyền".

  2. Tôi kiểm tra mã trạng thái phản hồi.Nếu 401, điều đó có nghĩa mật khẩu bạn gửi là mật khẩu dành riêng cho ứng dụng, vì vậy tôi gửi mật khẩu này (và email) trực tiếp tới máy chủ của tôi, qua API nội bộ của chúng tôi và họ đang sử dụng mật khẩu đó để gọi API iCloud và trả lại lịch của tôi , v.v.

  3. Nếu mã trạng thái phản hồi là 409, điều đó có nghĩa là người dùng đã cố đăng nhập bằng mật khẩu thông thường, nhưng tài khoản của anh ấy được bật 2fa và tôi hiển thị lỗi, cảnh báo người dùng truy cập ứng dụng của anh ấy- mật khẩu cụ thể và sử dụng mật khẩu đó sẽ dẫn đến bước 2 ở trên.

Tôi không nói đây là cách duy nhất, nhưng điều này làm việc cho tôi. Ngoài ra, tôi không chính xác biết những gì đang xảy ra trên phía máy chủ, nhưng họ đang sử dụng trực tiếp mà ứng dụng cụ thể-passwrod (và có lẽ là email), để thực hiện công việc.

+0

Điều này là tuyệt vời, tôi không biết Apple cũng cung cấp mật khẩu ứng dụng cụ thể. Cảm ơn câu trả lời :) – Shayan

+0

Chào mừng, tôi hy vọng nó sẽ giúp người khác, bởi vì đối với chúng tôi nó rất tệ, đào ở khắp mọi nơi để tìm giải pháp, và hầu như không có gì. Apple chắc chắn nên cải thiện tài liệu của họ. –

+0

@BenyBoariu bạn có thể cung cấp thêm chi tiết không? Tôi đã cố gắng chỉ để thay đổi dsPrsID: mmeAuthToken để appleId: mật khẩu tuple và nó không hoạt động .. – idog

1

bạn phải thay thế $ appliid $ với appleid của bạn ... sau đó bạn sẽ có được mmeAuthToken, dsPrsID

https setup.icloud.com/setup/get_account_settings dsPrsID: mmeAuthToken như cơ bản auth lợi nhuận: mmeAuthToken (mới/kia !!)

yêu cầu tiếp theo cho các thông tin sao lưu không làm việc cho tôi ... tôi không phải là xa ngay bây giờ ...

tài liệu tôi đã wo rked với trước đây:

https://www.elcomsoft.com/PR/recon_2013.pdf https://deepsec.net/docs/Slides/2013/DeepSec_2013_Vladimir_Katalov_-_Cracking_And_Analyzing_Apple_iCloud_Protocols.pdf

Cám ơn bài viết của bạn! Đưa tôi đến iLoot.

+0

xin lỗi, đã không đọc mà khoảng 2fa. không nghĩ rằng những gì được mô tả trong các giấy tờ là 2fa – relascope

Các vấn đề liên quan