An toàn
Java được ý định sử dụng trong các môi trường liên mạng phân phát. Hướng tới cuối cùng đó, nhiều nhấn mạnh đã được
đặt lên an ninh. Java làm việc xây dựng có thể là các hệ thống virus-free, tamper-free.
Từ khi bắt đầu, Java được thiết kế làm các loại nhất định của các tấn công là không thể, giữa chúng:
+ Chạy đè runtime stack – một tấn công phổ biến của worms và viruses
+ Đổ hủy bộ nhớ bên ngoài không gian quá trình của bản thân nó
+ Đọc hay viết các files mà không được phép
Ban đầu thì thái độ Java hướng tới code download là “Bring it on!”. Code không tin cậy được thực thi trong một
môi trường sandbox nơi nó không thể ảnh hưởng hệ thống host. Người dùng được đảm bảo rằng không gì xấu có thể
xảy ra vì Java code, bất kể nơi nó đến từ, không bao giờ có thể trốn khỏi sandbox.
Tuy nhiên, mô hình an ninh của Java là phức tạp. Không lâu sau phiên bản đầu tiên của Java Development Kit được
đóng gói, một nhóm các chuyên gia an ninh tại Princeton University đã tìm thấy các bugs tinh vi cái cho phép
code không tin cậy tấn công hệ thống host.
Ban đầu thì, các lỗi an ninh được sửa nhanh chóng. Không may mắn là, theo thời gian, các hackers trở nên giỏi với
định vị các lỗ hổng tinh vi trong thực thi kiến trúc an ninh. Sun, và sau đó Oracle, có một thời gian khó khăn
để giữ nhịp với bug fixes.
Sau một số tấn công high-profile, các vendors trình duyệt và Oracle trở nên thận trọng hơn. Cho một lúc, code từ
xa phải có chữ kí số. Ngày nay, các trình duyệt không còn tin cậy Java, và phân phát an toàn các ứng dụng Java
là một bộ nhớ xa.
Chú ý: Mặc dù trong nhận thức muộn màng, mô hình an ninh Java đã không thành công như ban đầu hình dung, Java đã
đi trước thời đại của nó. Một cơ chế phân phát code cạnh tranh từ Microsoft, gọi là ActiveX, dựa trên chữ kí số một
mình trước an ninh. Rõ ràng là cái này đã là không đủ: Khi bất cứ người dùng của các sản phẩm của bản thân Microsoft
có thể khẳng định, các chương trình từ các vendors nổi tiếng crash và tạo phá hủy.
