2009-02-23 41 views
5

Có một vài câu hỏi (C#, Java) bao gồm cách người ta có thể triển khai cập nhật tự động. Nó xuất hiện ban đầu dễ dàng để cung cấp cập nhật tự động, và có vẻ như không có lý do chính đáng để không cung cấp cập nhật tự động cho hầu hết các phần mềm.Cập nhật tự động - bảo mật 'đầy đủ' là gì?

Tuy nhiên, không xuất hiện để bao gồm các khía cạnh bảo mật của cập nhật tự động.

  • Cập nhật tự động bây giờ an toàn như thế nào?
  • Chúng phải an toàn như thế nào?
  • Chúng có thể an toàn như thế nào?

Vấn đề chính của tôi là internet, vì tất cả ý định và mục đích, phía tây hoang dã, nơi người ta không thể giả định bất cứ điều gì về bất kỳ dữ liệu nào họ nhận được. Cập nhật tự động qua internet xuất hiện vốn có rủi ro.

Máy tính của công ty bị nhiễm, giả mạo DNS (chỉ một phần nhỏ trong số đó thắng) và làm cho các máy tính khác của công ty tin rằng máy chủ cập nhật cho ứng dụng phổ biến ở nơi khác, họ tải xuống ứng dụng 'mới' và trở thành bị nhiễm bệnh.

Là nhà phát triển, có thể có những cuộc tấn công nào và tôi nên thực hiện các bước nào để bảo vệ khách hàng khỏi bị lạm dụng?

-Adam

Trả lời

6

Với việc sử dụng mật mã đúng cách, bản cập nhật của bạn có thể rất an toàn. Bảo vệ trang web bạn phân phối các bản cập nhật của bạn từ với SSL. Ký tất cả các bản cập nhật của bạn với GPG/PGP hoặc một cái gì đó khác, làm cho khách hàng của bạn xác minh chữ ký trước khi áp dụng bản cập nhật. Thực hiện các bước để đảm bảo máy chủ và khóa của bạn được giữ an toàn vô cùng.

Đầy đủ, rất chủ quan. Điều gì là thích hợp cho một trò chơi internet, có thể hoàn toàn đầy đủ cho hệ thống an ninh cho tên lửa hạt nhân của chúng tôi. Bạn phải quyết định có bao nhiêu thiệt hại tiềm năng có thể xảy ra nếu ai đó quản lý để phá vỡ an ninh của bạn.

2

Vụ tấn công rõ ràng nhất sẽ là một kẻ tấn công cung cấp thay đổi mã nhị phân thông qua "ác" máy chủ cập nhật của mình. Vì vậy, bạn nên đảm bảo rằng dữ liệu đã tải xuống có thể được xác minh để bắt nguồn từ bạn, sử dụng chữ ký kỹ thuật số.

Để đảm bảo an ninh, rõ ràng bạn nên tránh phân phối khóa cho chữ ký. Do đó, bạn có thể triển khai một số biến thể của RSA message signing

1

Kết nối với máy chủ cập nhật của bạn qua SSL có thể đủ, miễn là khách hàng của bạn sẽ từ chối kết nối nếu họ nhận được chứng chỉ không hợp lệ và máy chủ của bạn yêu cầu thương lượng mức bảo mật kết nối hợp lý (và máy khách cũng hỗ trợ).

Tuy nhiên, thực tế hầu hết mọi thứ bạn làm sẽ ít nhất là an toàn như tuyến đường mà qua đó người dùng của bạn nhận được cài đặt phần mềm đầu tiên của bạn. Nếu ban đầu người dùng của bạn tải xuống trình cài đặt của bạn thông qua http đơn giản thì đã quá muộn để bắt đầu bảo mật mọi thứ trên các bản cập nhật.

Điều này cũng đúng ở một mức độ nào đó ngay cả khi họ nhận được phần mềm nội bộ của bạn qua https hoặc chữ ký điện tử - vì hầu hết người dùng có thể dễ dàng được thuyết phục để nhấp OK trên hầu hết mọi cảnh báo bảo mật mà họ thấy trên đó.

1

có vẻ như không có lý do chính đáng nào để không cung cấp cập nhật tự động cho hầu hết phần mềm.

Có nhiều lý do chính đáng để không cập nhật.

  1. sửa lỗi có thể phá vỡ mã
  2. người dùng có thể không muốn mạo hiểm phá vỡ hệ thống sản xuất dựa trên các tính năng cũ
+0

Đó là một điểm tốt - lý do để tránh cập nhật tự động được bảo hiểm khá tốt ở đây: http : //stackoverflow.com/questions/558535/should-a-web-app-have-automatic-updates –

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