LabVIEW网络服务安全
如何保护Web服务?
当许多人考虑安全性时,他们会考虑加密、用户ID和密码。用户ID和密码用于授权(告诉目标谁在发出请求)。加密保护客户端和服务器之间的通信流量,以便未经授权的个人无法拦截和读取发送和接收的数据。
LabVIEW8.6不支持内置加密,因此在客户端和LabVIEWWeb服务之间发送的安全请求是未加密的或“明文发送”。但是,这些请求是“数字签名”的,其密钥旨在仅由授权的应用程序知道。因此,在LabVIEWWeb服务中,安全性是通过仅接受来自客户端应用程序的“签名”请求并对其执行操作来实现的,并验证签名以验证请求是否由有权访问所请求资源(如Web方法VI或静态文档)的应用程序创建。
开发人员可以通过选中服务构建规范中URL映射页面下的映射信息选项组中的需要API密钥复选框来保护LabVIEWWeb服务。此设置是为每个URL映射单独指定的,而不是为整个Web服务指定的。应为要保护的每个URL映射启用安全性。
Web服务运行时引擎如何验证数字签名?
在运行时,Web服务运行时引擎会在每个客户端请求到达时对其进行检查。当请求与安全URL映射匹配时,运行时会在请求中查找“数字签名”。如果此签名缺失或格式不正确,则请求将被拒绝。如果存在签名,运行时将查看请求并计算该请求的签名。然后,它将计算出的签名与消息中实际存在的签名进行比较。如果两者不匹配,则拒绝请求。
当安全请求被拒绝时,客户端会收到包含“HTTP/1.1403禁止访问”错误的HTTP响应,指示请求已被拒绝,因为客户端无权发出该请求。
创建签名的算法包括请求的时间,运行时配置为拒绝任何包含“过期”签名的请求。如果签名是在当前时间的窗口外超过配置的分钟数,则认为签名已过期。默认情况下,这是正负15分钟。这是为了最大程度地降低未经授权的应用程序捕获正确签名的请求并“重播”该请求以在以后执行未经授权的操作的可能性。
请注意,这意味着必须正确设置服务器和客户端上的时钟。签名时间使用UTC时间,该时间与时区无关,因此客户端和服务器可能位于不同的时区。
数字签名在数学上保证请求在传输过程中未被更改。在签名后更改请求的任何尝试都会自动使签名无效。
核心假设是,受保护的Web服务请求必须通过数字签名的存在进行授权,并且只有获得授权的应用程序才具有创建正确数字签名的知识。
数字签名只能由知道安全密钥的两个部分的人创建。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。