安全设置为什么阻止 Java 应用程序
安全沙箱是防止软件在用户不知情的情况下访问了资源。为了安全,首先是需要服务器自己证明自己的身份,让用户知道这个服务器“确实是谁而不是挂了木马的网站”,这就需要使用数字证书,另外数字签名能保证不可否认,如果用户事后发现服务器上保存的资料被服务器运营商用于非法或在隐私声明(很多网站不是会提示你同意一份隐私协议么)中未提及的用途,你就可以收集证据并在法院上作证:“这个 applet 把数据发往了另一个未授权的第三方服务器”,因为这个 applet 在用数字签名后不可否认这个程序确实是厂商提供的。数字证书使用的非对称加密是指:
自己用私钥加密,对方可以用公钥解密。
别人用公钥加密,自己可以用私钥解密。
我们在浏览器用它这个证书的公钥加密只有服务器能解密,以此来证明这个过程只有服务器能解密,不会被第三方篡改数据,如果数据有问题只能是服务器厂商自己事后篡改的。
所以,推荐的做法都是 Applet 程序需要打包成 jar 文件然后数字签名才能运行。那种直接把 classes 文件放在一个目录下让 Applet 从这个文件夹中拿是不合理的设计。在运行过程中浏览器会提醒用户确认数字证书内容,哪怕公司内部的软件自己签名的都没关系,只要公司保证数字证书的安全就可以了(防止黑客替换了证书,重新配置)。
2014-10-27