2011-09-14 27 views
11

Tôi tò mò muốn biết mô hình bảo mật mới trong OS X Lion sẽ ảnh hưởng đến tương lai như thế nào. Cụ thể, tôi đang đặt câu hỏi là Entitlements và Sandboxing.Mô hình bảo mật mới của Lion Ảnh hưởng như thế nào đến Python?

Đây không phải là câu hỏi liệu đây có phải là những ý tưởng hay hay không. Thay vào đó, đây là câu hỏi dự đoán tốt nhất về những gì sẽ xảy ra trong tương lai.

Tôi tò mò về những thứ như Python. Công ty của tôi làm cho một ứng dụng Python nhỏ cho các tình huống khẩn cấp với phần mềm dựa trên web. Điều này bao gồm việc đọc và ghi vào hệ thống tập tin.

Ứng dụng của chúng tôi không có quyền, cụ thể là vì nó chỉ là mã Python và chúng tôi không thực hiện bất kỳ gói Cocoa nào. Khi Mac App Store yêu cầu tất cả các ứng dụng phải được sandboxed và liệt kê các quyền của họ có hiệu lực, tôi tự hỏi liệu Apple có tung ra bản cập nhật cho hệ điều hành không và nói "đây là cách chúng tôi thực hiện bảo mật từ bây giờ và nếu ứng dụng không đáp ứng mô hình bảo mật của chúng tôi, nó sẽ không chạy vì nó không an toàn. "

Tôi có cảm xúc lẫn lộn về điều này. Một mặt, tôi nghĩ thật tuyệt vời khi làm cho máy của người tiêu dùng an toàn hơn. Ít mã rogue và tất cả những gì thối. Mặt khác, nó sẽ làm cho phát triển một địa ngục sống cho rất nhiều nhà phát triển, methinks.

Tôi cũng tự hỏi nếu một bản cập nhật như vậy sẽ xuất hiện cho Lion nếu cùng một bản cập nhật sẽ được phát hành cho Leopard hoặc Snow Leopard. Suy nghĩ của tôi sẽ không phải là Leopard vì nó là hai thế hệ đằng sau hệ điều hành hiện tại. Snow Leopard tất cả phụ thuộc vào bao lâu Apple muốn hỗ trợ một hệ điều hành cũ hơn.

Vì vậy, bây giờ tôi mở nó cho các nhà phát triển Apple để nói về tâm trí của họ về chủ đề này và có lẽ tạo ra những suy nghĩ mà trước đây không có.

+4

Tôi muốn nói không ai biết cho đến khi Apple thực sự làm điều gì đó. Tại thời điểm này tất cả các công cụ bảo mật này là hoàn toàn tùy chọn và bạn có thể tiếp tục phát triển phần mềm theo cùng một cách mà bạn luôn có. Tôi không nghĩ rằng điều này đột nhiên sẽ thay đổi.Họ có thể tinh chỉnh và thực thi nhiều mô hình bảo mật theo mặc định theo thời gian, nhưng bạn vẫn có thể "viết phần mềm". Nó chỉ bắt buộc nếu bạn muốn đi qua App Store, IMO là một cách tuyệt vời để buộc mọi người trên tàu muốn phân phối phần mềm; nhưng điều đó dường như không cần phải quan tâm đến bạn cả. – deceze

Trả lời

6

Nếu bạn có thể nhúng Python cùng với tập lệnh của bạn và gói nó thành một .app sử dụng một cái gì đó như py2app, tôi sẽ tưởng tượng bạn có thể add/edit the Info.plist để đáp ứng các yêu cầu của Apple đối với việc ký kết. Tương tự như vậy đối với các quyền lợi, tôi sẽ tưởng tượng bạn có thể edit the .app's entitlements.plist. Tôi nghĩ rằng người thực thi hộp cát sandboxd không phải là ngôn ngữ cụ thể, nó chỉ cho phép/chặn quyền truy cập của quá trình vào thiết bị và tệp (ví dụ: bằng cách không cấp các mô tả tệp bị hạn chế). Hãy nhớ, có thể một trình thông dịch Python được nhúng theo mặc định sẽ cần truy cập vào một số quyền cho khởi tạo (vì nó có thể không được tạo ra với hộp cát trong đầu).

Đối với thiết bị iOS (mà phải được sandboxed được bán trên các cửa hàng), chính sách của Apple (iOS chương trình phát triển thỏa thuận phần 3.3.2) là:

Một ứng dụng có thể không tải hoặc cài đặt mã thực thi. Mã phiên dịch chỉ có thể được sử dụng trong một Ứng dụng nếu tất cả các tập lệnh, mã và thông dịch viên được đóng gói trong Ứng dụng và không được tải xuống.

Dường như giải pháp trên, nếu có thể, sẽ đáp ứng yêu cầu này (giả định một quy định tương tự sẽ được thực hiện cho các ứng dụng OS X). Tuy nhiên, nếu bạn không muốn phân phối ứng dụng của mình trên App Store, tôi không nghĩ bạn có bất cứ điều gì phải lo lắng. Tôi rất nghi ngờ họ sẽ yêu cầu ký mã hoặc quyền truy cập để chạy các ứng dụng trên máy tính của bạn sớm (thay vì chỉ sandboxing những người được bán trên App Store, làm cho nó trở thành nơi an toàn để tải ứng dụng).

+0

Gatekeeper là bước đầu tiên theo hướng đó. Nó sẽ được giới thiệu trong Mountain Lion (10.8) và sẽ thông báo cho người dùng khi họ đang chạy một ứng dụng chưa được ký, theo cấu hình mặc định. Mặc dù vậy, nó không mang về hộp cát. – Dov

+0

@Dov Mặc dù tôi tin rằng bạn có thể ký các ứng dụng không được phân phối qua Mac App Store. – shookster

+0

Tất nhiên bạn có thể, đó là toàn bộ quan điểm của Gatekeeper. Trong cài đặt hạn chế nhất, bạn chỉ có thể cài đặt ứng dụng MAS. Ở phần giữa (mặc định), nó cảnh báo bạn khi bạn chạy bất kỳ ứng dụng không phải MAS nào mà _has not_ được ký bởi nhà phát triển bằng chứng chỉ Apple-issue. Trên cài đặt ít hạn chế nhất, không có cảnh báo nào, như trong Lion. – Dov

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