我使用Xamarin开发了一个iOS应用程序,我不确定在调用使用HTTPS的服务时加密是如何工作的。
在我的结尾,我没有做任何特别的事情:我利用RestClient并将凭证添加到json序列化请求的主体。然后我将其发布到HTTPS服务。
这样安全还是我应该做得更多?我不确定iOS是否在加密方面为我处理其余部分。
答案 0 :(得分:0)
使用HTTPS时,除服务器地址外的所有内容在传输过程中都会被加密。加密对客户端和服务器完全透明。
示例:对于网址https://myApiEndpoint.com/getIsUserValid/user123/password1234
,仅myApiEndpoint.com
未加密,其余网址已加密。
为了防止MITM攻击针对服务器证书,即验证请求上收到的证书是否属于正确的服务器。
如果您控制服务器,请使用TLS 1.2和Perfect Forward Secrecy。
答案 1 :(得分:0)
是的,使用HTTPS
,您最有可能是安全的。但是,有几件事需要验证以确保没有安全漏洞。
默认情况下,使用TLS对安全HTTPS
点的通信加密邮件的标头和正文。
HTTPS包括通过传输层安全性加密的连接中的超文本传输协议(HTTP)通信。 Source
HTTPS
端点的网址未加密。永远不要将任何敏感数据放入HTTPS
点的URL中,这一点非常重要。要确保加密敏感数据,请将数据放入邮件正文中。
例如,如果您要验证用户的登录名(用户名:user1234,密码:password1234),请不要将用户名/密码作为url参数发送。而是序列化用户名和密码数据,并将其设置为HttpContent
的{{1}}。
错误: HttpClient
确保您使用https://myApiEndpoint.com/getIsUserValid/user123/password1234
进行iOS HttpClient实施。
NSUrlSession
端点通信时, NSUrlSession
默认会使用TLS
。从iOS 10开始,HTTPS
默认情况下不允许与非安全NSAppTransportSecurity
端点进行通信;通过更新HTTP
,Apple Documentation中的HTTP
,可以启用与不安全NSAppTransportSecurity
点的通信。
您可以验证iOS Build Settings中使用的Info.plist
(下面的屏幕截图)。