This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C129ENCPDT:为 Simplelink 和 NDK 同时使用 TLS

Guru**** 2584135 points
Other Parts Discussed in Thread: CC3100, CC3120

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/868177/ccs-tm4c129encpdt-using-tls-for-both--simplelink-and-ndk

器件型号:TM4C129ENCPDT
主题中讨论的其他器件:CC3100CC3120

工具/软件:Code Composer Studio

大家好、

我还使用 TI RTOS 2.16.1.14和具有 cc3100和 NDK 的简单链接 SDK 1.2。 我将对这两者使用 httpcli 库、它本身提供 TLS 支持。 现在、我使用的是套接字.h 中提供的 API 的 FTP、我可以很好地将普通 FTP 与 WiFi 和以太网结合使用。

但现在我必须使用 FTPS、为此、我需要 TLS。 在 httpcli 库中实现 TLS 的方式、对于 FTPS、我也希望 TLS 的方式相同、这样我的应用层代码就不会被更改。  

有什么方法可以做到这一点吗? 到目前为止、我已经看到 simplelink 提供了单独的 TLS 接口(我目前正在使用它)、而以太网具有单独的 TLS (使用 Wolfsl、现在不工作)。 如果我需要单独实施、那么这不是我们需要的好解决方案、因为会有两个不同的代码。 我需要在 httpcli 库中完成的操作。 有办法吗?

我也尝试使用 httpcli 库进行 FTP、但遇到协议错误(-370)。

谢谢、此致、

Akhilesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Akhilesh、

    我是否正确地理解了 httpcli 使用的型号适用于您的应用程序以及您想要使用的型号? 如果是这样,您应该能够按照 httpcli 的操作,并使用 Ssock_StartTLS() API 启动安全套接字。

    谢谢、
    Gerardo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好 Gerardo

    您的理解是正确的。 我只知道 httpcli 库的 API 调用。 我需要 TLS 连接到可同时用于简单链路和 NDK 的应用层。

    在哪里可以找到与 Ssock_StartTLS API 相关的文档?

    在使用简单链路和 NDK 中通用的套接字 API 时、我需要将纯套接字连接到 TLS。

    我还想在此详细说明一点、那就是我尝试使用 httpcli 库进行 FTP。 我可以打开端口21上的控制信道并使用用户名和密码登录。 但是、在将其置于被动模式并尝试连接到 IP 上的 FTP 服务器和服务器发送的端口 NO 后、它无法连接。

    端口21上已经有1个控制通道、我正在尝试在同一服务器上的其他某个端口号上打开数据通道、但失败了。 为什么会这样呢? 这就是我可以将 httpcli 用于普通 FTP 客户端的情况、可能也可以使用其 TLS 部分。 只是实验。

    让我知道您对这两个方面的看法。

    谢谢、

    Akhilesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Akhilesh、

    在进一步检查后、HTTP 客户端通过两个平台启动安全 TLS 会话所使用的 API 看起来是不同的。 您可以通过检查源代码来查看每个平台为建立安全会话所做的工作、该代码可在以下位置找到:
    /netapps/http/client
    /products/ns_1_11_00_10/packages/ti/net/http
    因此、为每个平台建立安全会话的代码会略有不同、但一旦建立会话、您就可以在两个平台上继续使用套接字 API。  

    尝试连接到 FTP 服务器时收到什么错误?

    此致、
    Gerardo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gerado、

    我能够同时为 NDK 和 simplelink 使用 TLS。 我正在使用 TI RTOS 中的组件。  

    像这样-

    TLS_PARAMS_INIT (&tlsParams);
    tlsParams.ca = ca_cert;//根 ca cert 数组(.pem 格式)
    tlsParams.calen = sizeof_ca_cert;
    G_TLS = TLS_create (TLS_METHOD_CLIENT_TLSv1_2、&tlsParams、NULL); 

    我尝试对 FTPS 执行同样的操作。 我可以使用使用 https://cli 库使用纯 FTP。 我可以在端口21上建立套接字连接、登录、也可以打开数据连接、一切都可以在普通 FTP 上进行。 但是、当我尝试通过添加上述 TLS 来使用 FTPS 时、我在连接时收到错误-370 (SL_ESEC_Protocol_version)。 我不会在 https 中看到此错误、而是仅在 FTPS 中看到。 问题出在哪呢? 如果我可以解决此错误、我的工作就会完成。 我也尝试更改 TLS 版本、但出现相同的错误。

    谢谢

    Akhilesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Akhilesh、

    您是否确认了您连接到的服务器支持的 TLS 协议的哪个版本?

    此致、
    Gerardo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gerardo、

    我已选中。 它支持 tls1、1.1和1.2。  但是、当我尝试使用其他版本时、也存在错误。

     能帮你吗?

    谢谢

    Akhilesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Akhilesh、

    您能否使用 SDK 中的 SSL 示例而不是 httpcli 库来尝试 TLS 连接? 这是否也会失败?

    请确保您已将最新的服务攻击刷写到 CC3100。

    此致、

    Sarah

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akhilesh、

    我们仍在研究这一点、但您使用的是什么版本的 WolfSSL? 我们仅针对3.8进行了验证。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sarah、

    我也尝试过这种方法。 我遇到相同的错误。  

    让我在此澄清一点。 我已经尝试使用了 simplelink 提供的 SL 示例。 在这里、是 FTPS、连接时、我将获得-370。  

    之前我得到-456、然后我将.pem 转换为.der、现在我得到-370。

    我还尝试使用 httpcli 库。 我也会遇到相同的-370。

    我将 FileZilla 服务器用于 FTPS、并使用 FileZilla 服务器应用程序生成自签名证书。 我没有任何防火墙限制、因为我允许所有数据包入站和出站、也允许 FileZilla 通过防火墙。  

    这需要很多时间。 我也在附上我的代码供您参考(https://cli 和 simplelink)。 它不是生产代码、只是用于测试目的、因此我实施的错误处理非常少。 如果要尝试此操作,请使用 FileZilla 服务器和自签名证书。

    而 Todd,我不是自己使用狼。 刚刚尝试了 simplelink。 但我更喜欢使用 httpcli。

    我要添加另一个编辑。 这是我在端口21上使用的显式 FTPS。 但是、当我在端口990上使用隐式 FTPS 时、我将得到-340。 我不想使用隐式 FTPS。 只是尝试。

    谢谢

    e2e.ti.com/.../2376.e2ehttpcliTLS.txte2e.ti.com/.../8372.e2eTLSsimplelink.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akhilesh、

    您能否获取此问题的监听器捕获并将其提供给我们? 错误-370表示连接支持哪些协议时出现错误。 例如、simplelink 设备只能运行 TLS1.0、服务器需要 TLS1.1。 嗅探器捕获应该会告诉我们更多信息。

    查看您的代码、我看不到您指定了协议或密码套件。 是否可以尝试添加此项? Roger Monk 对密码套件有很好的解释: https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/636342?CC3200-Problem-with-cipher-suit-in-HTTPS-Connection

    BR、

    Vince

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     大家好、Vince、我尝试了 cc3100中提供的所有密码套件。 有两个方面-

    1.我尝试在显式 FTP 模式下连接到端口21,并得到-370。 我在 https 中没有收到此错误。

    2.我在隐式 FTP 模式下尝试了端口990,并尝试了使用 simplelink 的所有密码设置,并得到-340或-155的错误。  

    我附加端口991连接的 Wireshark 日志。 请检查。  

    192.168.0.172是具有简单链路的 FTP 客户端,192.168.0.138是在本地计算机上运行的 FTPS 服务器。  

    我也看到了这篇文章。  

    您能解释一下为什么我在更改端口编号时遇到不同的错误吗?

    无法附加 Wireshark 日志******* 正在连接屏幕快照...  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akhilesh、

    尝试使用 Wireshark 捕获向我发送消息。 如果打开该捕获并深入了解复位的详细信息、它应告诉您器件复位连接的原因。

    对于端口、我看不到我们的设备需要关注的原因、但对于服务器、端口用于定义预期的流量类型。 请确保使用为该连接打开的端口。 您能否使用特定端口在本地测试 FTP 并验证是否正常工作?

    BR、

    Vince

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vince、

    我检查了所有其他本地 FTPS 客户端是否正在工作。 我将在消息中向您发送 Wireshark 捕获。 我始终得到-155、器件正在发送复位信号。  

    请检查。 我很长时间都在这里。 我正在使用端口 n0 990。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akhilesh、

    如果您单独运行这些程序、软件是否正常工作? 或者您是否仍在尝试同时安装两个安全套接字?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否 我单独运行。 我在端口21上看到的是-370和端口990 -155。

    我通过编辑代码一次只运行1。

    您在结束时尝试的 dii?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akhilesh、

    您使用的是 CC3100还是 CC3120?

    BR、

    Vince  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请捕获 NWP 日志并提供它们。

    https://processors.wiki.ti.com/index.php/CC3120_%26_CC3220_Capture_NWP_Logs

    BR、

    Vince  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vince:

    我正在使用 cc3100。 我可以在那里启用 NWP 日志吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    https://processors.wiki.ti.com/index.php/CC3100_%26_CC3200_Capture_NWP_Logs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的项目中没有 pinmux.c 文件。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vince:

    我可以使用 httpcli 库在端口号990上使用隐式 FTPS、其中在连接到服务器时会发生握手。  

    使用同一个库、我可以在连接后显式执行握手吗? 连接时不需要握手。 我希望在向服务器发送 AUTH TLS 命令后发生。 我该怎么做? 这就是我对显式 FTPS 所需要的。  

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vince:  

    我无法在 cc3100中执行显式 FTPS。 我刚刚知道、这就是出现此错误的原因。 无论如何、隐式 FTPS 正在工作。 我可以将 wolfsl 库与 cc3100配合使用吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akhilesh、

    不可以、您不能在我们的设备上使用 wolfsl。

    BR、

    Vince  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vince:

    我认为他可以将第三方 SSL/TLS 库与 CC3100提供的非安全 TCP 套接字结合使用、并在主机端进行透明加密。 我看不到任何技术原因会阻止这种类型的使用。 因为我们讨论的是 TLS/SSL 而不是 IPsec。

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1月、

    这是正确的,但我们不能支持这一努力。  

    BR、

    Vince  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vince:

    我能够成功地将 wolfsl 与 cc3100配合使用。 我现在可以执行显式 FTPS。

    谢谢