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.

[参考译文] MSP-EXP432E401Y:TCP TLS 客户端旁路证书验证

Guru**** 663810 points
Other Parts Discussed in Thread: MSP432E401Y, TM4C129ENCPDT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1230620/msp-exp432e401y-tcp-tls-client-bypass-cert-verify

器件型号:MSP-EXP432E401Y
主题中讨论的其他器件:MSP432E401YTM4C129ENCPDT

您好!

我使用 MSP432E401Y Launchpad、并实现 TLS 客户端套接字以连接到 TLS 服务器。  

当我使用 TM4C129ENCPDT 开发此应用程序时、我在 wolfsl 中使用了 WOLFSSL_VERIFY_NONE 来绕过服务器证书验证。 我的团队想出了我们自己的方法来验证服务器。

我想在 MSP432上实现类似的功能。 我知道 MSP432使用的是 slnetsock、而据我了解、这在引擎盖下使用了 mbedTLS? 是这样吗? 在使用 MSP432E401Y 的情况下、我难以确定 WOLFSSL_VERIFY_NONE 的等效值。

如何实现? 非常感谢任何输入。

谢谢

AJ

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

    简单来说、这是我在 TM4C129E 中使用的代码片段、它具有 wolfsl

    wolfSSL_Init ();

    TLS_CLI_Ctx = wolfSSL_CTX_NEW (wolfTLSv1_2_client_method ());
    if (TLS_CLI_Ctx == NULL)
    {
    write_console_msg ("\n\n\rwolfSSL_CTX_NEW 表示 TLS 客户端错误。\n");
    返回-1;;
    }//end if (mqtt_ctx == NULL)
    否则
    {
    write_console_msg ("\n\n\rwolfSSL_CTX_NEW (对于 TLS 客户端)可以。
    }//end else

    wolfSSL_CTX_SET_VERIFY (TLS_CLI_Ctx、WOLFSSL_VERIFY_NONE、0);

    我想对 MSP432执行同样的操作。

    谢谢

    AJ

    顺便说一句,似乎每当我张贴,同一个线程的2被张贴。 我不知道为什么会发生这种情况。 我只点击了帖子一次。 如果情况再次如此、我深表歉意。

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

    您好、AJ、

     TLS/SSL 不是我的专业领域。 我做了一些谷歌搜索。  一些在线讨论谈到 如果您不想在 TLS 客户端中提供客户端证书,请不要 在客户端代码中调用`mbedtls_ssl_conf_own_cert ()`。 然后、该库将根据标准的要求发送一个空证书列表。 但我不确定这是否等效于使用 WOLFSSL_VERIFY_NONE 实现 wolfSSL 中使用的功能。 请联系 https://tls.mbed.org 、我认为那里的专家可以提供更好的指导。  

     如果您尚未这样做、则下面的 SDK 文件夹中会有一个 TLS 示例。  

      C:\ti\simplelink_msp432e4_SDK_4_20_00_12\examples\rtos\MSP_EXP432E401Y\ns\tcpechotls

     下面这篇文章可能对将 mbedtls 集成到 SDK 有所帮助。  

    https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/792706/msp432e411y-msp432e4-ssl-tls

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

    尊敬的 Charles:

    这实际上是我查看的示例、示例使用了 slnetsock、我想它会绕过 mbedtls。 没有一个 mbedtls 函数被直接调用,这就是为什么我坚持用 slnetsock 函数,他们似乎没有提供我需要的东西。

    谢谢

    AJ

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

    尊敬的 Charles:  

    我试图运行 tcpechotls 示例以更好地理解、但它不起作用。 我可以让 IP 和 SNTP 正常工作。 但是、每当我运行 python 程序时、就会出现此错误。

    C:\ti\simplelink_msp432e4_sdk_4_20_00_12\tools\examples\tcpSendeTLS.py:99:DeprecationWarning:ssl.wap_socket ()已弃用,请使用 SSLContext.wap_socket ()
    sslSocket = SSL.WIP_SOCKET (
    [ssl:EE_KEY_TOO_SMAL] ee 键太小(_ssl.c:3900)
    无法打开套接字

    您能帮助我理解一下这个问题吗?

    谢谢

    AJ  

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

    您好、AJ、

    这实际上是我看过的示例,该示例使用 slnetsock,我想它可以绕过 mbedtls。 没有一个 mbedtls 函数被直接调用,这就是为什么我坚持用 slnetsock 函数,他们似乎没有提供我需要的东西。[/引号]

    抱歉、我不知道如何提供好的指导。 我甚至不确定调用 mbedtls 函数是否可以绕过验证、前提是 mbedtls 首先具有这样的相应方法。  

    但是、每当我运行 python 程序时、就会出现此错误。

    C:\ti\simplelink_msp432e4_sdk_4_20_00_12\tools\examples\tcpSendeTLS.py:99:DeprecationWarning:ssl.wap_socket ()已弃用,请使用 SSLContext.wap_socket ()
    sslSocket = SSL.WIP_SOCKET (
    [ssl:EE_KEY_TOO_SMAL] ee 键太小(_ssl.c:3900)
    无法打开套接字

    [/报价]

    我想帮助的是、我对 TLS 的了解非常有限。 不确定这个错误在 python 端上有什么。 这似乎是说 SSL.WIP_SOCKET ()也许不受操作系统支持,但我不知道你是否可以用 SSLContext 取代 SSL 来解决这个问题。 您可能需要寻找一些支持 TLS 的其他客户端应用程序 与 MCU 进行交互。  

    [/quote]