问题标签 [transport-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 对于 Internet 上的 WCF 服务,传输安全性是一种不好的做法吗?
我有一个可通过 Internet 访问的 WCF 服务。它具有 wsHttpBinding 绑定和消息安全模式,使用用户名凭据来验证客户端。msdn 说我们应该在 Internet 场景中使用消息安全,因为它提供端到端的安全性,而不是像传输安全性那样提供点对点的安全性。
如果我通过 Internet 对 wcf 服务使用传输安全性会怎样?这是一个不好的做法吗?恶意用户会看到我的数据吗?
wcf - 具有 SSL 和线程信息的 WCF 传输安全性
我对上述主题有疑问。我有一个 WCF 服务并为其使用传输安全模型。但是有一些我无法理解的与线程状态相关的机制。在我的服务的构造函数中,我尝试设置 Thread.CurrentPrincipal 但在我的服务的调用方法开始时 Thread.CurrentPrincipal 变为空......我读到它可能是在使用 WCF 传输安全的情况下。
是 WCF 传输安全中的原因还是此行为有任何其他原因?
提前致谢!抱歉,如果有一些解释中的混淆。
wcf - 具有证书身份验证的传输安全性
当我访问我的网络服务 localhost/MyService/MyService.svc 时出现以下错误
服务“SslRequireCert”的 SSL 设置与 IIS“Ssl,SslNegotiateCert”的设置不匹配。
我遵循http://msdn.microsoft.com/en-us/library/ms731074.aspx中指定的 web.config 示例
这是我的 wcf 服务器 web.config:
我已将 IIS 配置如下:
- 使用自签名证书添加的 https 绑定
- 在 SSL 设置下,选中需要 SSL 并接受客户端证书
- 自签名证书已添加到本地计算机受信任的根 CA。
我可以浏览并执行 .asmx 服务定义,但 .svc 给了我上述错误。
wcf - 通过 HTTPS 上的客户端证书对 WCF 请求进行身份验证
在过去的一周里,我一直在为这个糟糕的 WCF 服务的配置而苦苦挣扎,而且我开始怀疑我正在尝试做的事情是不可能的,尽管有文档。
很简单,我希望 WCF 服务需要一个客户端证书(服务器将在其证书存储中拥有该证书),然后使用 System.ServiceModel.ServiceSecurityContext 访问该身份。此外,这需要使用传输安全性。
这是我的服务器配置:
这是我的客户端配置:
当 security mode='None' over http 时,代码都可以完美运行,但是当然,没有身份验证,System.ServiceModel.ServiceSecurityContext 中也没有任何内容。我已经对所有这些元素尝试了几十种变体,最终都不可避免地导致请求抛出异常“现有连接被远程主机强行关闭”。
我正在使用自签名证书“CyberdyneIndustries”,我已将其 CA 证书添加到受信任的 CA 存储中。证书在我查看时签出。我经历了 http 命名空间管理的地狱,也解决了这些问题。看起来 WCF 并不真正支持这一点……请告诉我我错了。
TIA。
java - 传输安全性和基于 SSL 的消息身份验证之间有什么区别?
Transport Security
Metro WSIT和有什么区别Message Authentication over SSL
?
运输安全:
传输安全机制在传输过程中使用 SSL 进行身份验证和保密来保护您的应用程序。
基于 SSL 的消息身份验证机制将加密安全身份或身份验证令牌附加到消息中,并使用 SSL 进行机密性保护。
asp.net - 经典 asp“验证消息的安全性时出错。” iis7 传输级安全性
在 II7 上,我们托管了一个基于 WCF/asp.net 的 API。为了允许经典 ASP 应用程序的用户连接到 API,我们必须发布一个我们称为“传输”的版本。这个 Transport 版本也是用 asp.net 写的,它指向同一个程序集,只是安全层不同,可以让经典的 asp 进行身份验证。使用传输级安全性,而不是基于消息的安全性。
当使用浏览器加载服务引用时,我可以加载 svcutil.exe ... WDSL 页面。
当使用我的测试 asp 页面从该引用调用 web 方法时,我得到以下返回:
已完成调用 Web 服务。状态 = 内部服务器错误 ResponseText = a:InvalidSecurity 验证消息的安全性时发生错误。
这表明身份验证失败。当使用 asp.net 或应用程序 WCF 风暴来联系正常的 API 进行测试时,一切正常。
API 最近被迁移,看起来有些东西没有正确设置,但我不知道是什么。
我可以浏览到 svcutil.exe ... WDSL 服务参考,当通过浏览器选择它时,我得到了预期的 XML 响应。
使用基于消息的安全性的 API 的非经典 asp publicaiton 时,使用的用户名和密码有效。
是否可以发布一些可能有助于诊断问题的故障排除技巧,请特别针对传输级安全故障查找和设置?
谢谢斯科特
编辑添加以下更新:
尝试使用默认应用程序池和新的应用程序池,但同样的问题仍然存在。
我的测试页错误:ResponseText = a:InvalidSecurityAn 验证消息的安全性时发生错误。
IIS LOG 显示: v3/transport/testclassicasptransportwcfservice.asp ( 200 0 0 ) (即 iis 200) /V3/Transport/DeviceService.svc/DeviceService (500 0 0) (即 iis 错误 500)
注意:在 TRANSPORT 和 V3 上定义的虚拟目录。V3 使用 .net 可以正常工作,而不是使用经典的 asp 进行身份验证。
事件日志:由于以下错误,应用程序池“传输”的模板持久缓存初始化失败:无法为应用程序池创建磁盘缓存子目录。数据可能有额外的错误代码。
此参考似乎建议修复,但“appcmd”中的许多 DIR 路径和参考不存在。
_http://theether.net/kb/100127
silverlight-4.0 - N 层应用程序中的 WCF 和 Silverlight 4.0:安全服务调用(无 SSL、无消息安全、无 x.509)
我们的架构是一个简单的 N 层模型,它由一个位于 IIS7 中的 ASP.Net 应用程序(托管在 DiscountASP 中)组成,它公开了 WCF 服务上的方法。这些方法使用 EF4 与数据库通信。客户端使用 Silverlight 4.0。
三个重点:
身份验证和授权不是问题 - 对服务的调用是匿名的,我们不关心调用者的身份。
在方法调用中传输的数据不敏感。
我们只是想确保任何人都无法拨打电话。
如果有错误请纠正我:
消息安全不是一个选项,因为 Silverlight 不支持它。
传输安全(HTTPS 和 x.509/SSL 证书)也无法在 Silverlight 中完成
因此,我们为实施某种程度的安全性而采取的步骤是:
密钥被硬编码到 XAP 中的一个 dll 中。
这个 dll 是加扰的,所以它不能被重新设计。
密钥作为参数发送给所有服务方法调用。
在每个方法开始时,将密钥与数据库中的原始密钥进行核对。
从服务中删除 MetaDataExchange 终结点。
考虑到这个最小的设置和许多缺陷,最大的缺陷可能是传输不安全(HTTP),并且密钥被暴露。所以问题是:
如果恶意用户想要破坏我们的系统,他需要付出多少努力才能提取密钥,找到暴露的方法并开始调用它们?
是否有其他 WCFcombiantion 可以在每次调用时提供基本的凭据保护(无 HTTPS 或证书)?
wcf - WCF 4 - TransportWithMessageCredential 使用 X.509 证书进行传输和消息安全
我正在尝试制作一个托管在 IIS 上的 WCF4 服务,它将使用 X.509 证书进行消息安全和 SSL,并使用所需的相互身份验证来实现传输安全(项目规范要求使用 WS-Security和SSL,AFAIK 通常只有一个是路要走,但没关系)。
我制作了我的 TestRootCA 并用它来颁发服务器证书 (localhost) 和客户端证书 (TestUser)。我最初只想建立和测试传输安全性,所以我将 IIS 配置为使用 https,配置 SSL 证书(我制作的本地主机证书),并将 IIS 配置为需要来自客户端的客户端证书。然后我修改了服务 web.config,制作了相应的 svcutil.conf 并运行了 svcutil,它成功地为我的测试 WinForms 应用程序制作了客户端代理类和 app.config。我通过调用创建代理客户端时设置证书:
到现在为止还挺好。但是,当我修改服务的 web.config 以使用 TrasportWithMessageCredential(而不是 Transport)并将“Certificate”指定为消息安全的 clientCredentialType 时,我得到了HTTP 403 - The HTTP request was forbidden with client authentication scheme 'Anonymous'
,即使我指定了“Certificate”。
我最终的 web.config 如下所示:
和我的客户端 app.conf:
有任何想法吗?
编辑:
我已经设法通过将客户端证书的 IIS SSL 设置从require更改为accept来使其工作。似乎当我使用证书而不是使用 SSL 的传输安全性引入消息安全性时,客户端使用证书进行消息签名,而不是通过 SSL 进行相互身份验证(即使分配了证书,它也会尝试以匿名身份登录)。
不知道为什么会这样,我想听听专家的评论:)。
.net - WCF - 具有基本身份验证、无 ssl、自托管的 Soap Web 服务
我完全意识到这种方法的不安全性,但对 WCF 托管的 SOAP Web 服务的基本 http 身份验证有合理的需求。真的没有办法做到这一点吗?我发现的每种添加基本身份验证的方法都需要传输 (https) 安全性。
ssl - 一种方式 SSL 是一种方式加密?
如果使用一种方式 SSL(服务器证书身份验证),则从客户端发送的数据将使用服务器证书的公钥加密。因此,隐私保护可用于从客户端发送的数据。我的问题是
这是否意味着以一种方式从服务器发送到客户端的 SSL 数据未加密并以纯文本形式发送?
对于服务器到客户端和客户端到服务器的通信,数据/消息都没有签名,因此不能保证防篡改或数据完整性。在使用基于 SSL 的传输安全而不是消息安全选项时,是否有任何其他方法可以实现数据完整性?