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.

[参考译文] LAUNCHXL-CC3235SF:企业 WiFi 不能与 TLS 或 TTLS/TLS 连接

Guru**** 2577385 points
Other Parts Discussed in Thread: CC3235SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/978906/launchxl-cc3235sf-enterprise-wifi-doesn-t-connect-with-tls-or-ttls-tls

器件型号:LAUNCHXL-CC3235SF
主题中讨论的其他器件:CC3235SF

当 CC3235SF 设置为: SL_WLAN_ENT_EAP_METHOD_TTLS_MSCHAPv2时、我的 RADIUS 服务器可以正常使用企业登录。

但是,它无法使用以下任一项登录:

  • SL_WLAN_ENT_EAP_METHOD_TLS
  • SL_WLAN_ENT_EAP_METHOD_TTLS_TLS

现在、我知道这些方法应该起作用、因为我有一个嵌入式器件、它可以与相同的 RADIUS 服务器一起工作。

 CC3235SF 完全没有任何发言权(NWP 也没有提及)。

下面、我粘贴了一些半径日志转储。  我们希望能在这方面提供任何帮助。 谢谢!

SL_WLAN_ENT_EAP_METHOD_TLS

(0)从10.15.24.120:56319到10.15.24.121:1812长度155的已接收访问请求 ID 57
(0)  User-Name ="someusername"
(0)  NAS-IP-地址= 10.15.24.120
(0)  NAS-Port = 0
(0)  被叫站点 ID ="31-CE-21-44-32-98:WiFiName"
(0)  Call-Station"="12-45-77-23-76-42"
(0)  framed-MTU = 1400
(0)  NAS-Port-Type =无线-802.11
(0)  Connect-Info ="连接0Mbps 802.1"
(0)  EAP-Message =0x036e412...f74d2122e
(0)  消息验证器= 0xf05a3472c7aab6d3aa8f380175c31f12
(笑声)
(0)后缀:在"@"后检查后缀
(0)后缀:在 User-Name ="someusername"中没有'@'、查找 NULL 领域
(0)后缀:无此类领域"NULL"
(0)    [后缀]= NOOP
(0) EAP:对等发送 EAP 响应(代码2) ID 76长度9
(0) EAP:EAP-Identity 回复、返回"ok"、以便我们可以对剩余的授权进行短路
(0)    [EAP]=正常
(0)  }#授权=正常
(0)找到的 Auth 类型= EAP
(0)#正在从文件/usr/local/etc/raddb/sites-enabled/default 执行组
(0)  验证{
(0) EAP:使用方法 EAP 标识的对等发送数据包(1)
(0) EAP:调用子模块 EAP_TTLS 来处理数据
(0) EAP_TTLS:启动新的 TLS 会话
(0) EAP_TTLS:[eaptls start]=请求
(0) EAP:发送 EAP 请求(代码1) ID 77长度6
(0) EAP:EAP 会话添加应答:状态= 0x08b9011c08f41429
(0)    [EAP]=已处理
(0)  }#认证=已处理
(0)使用身份验证后类型质询
(0)#正在从文件/usr/local/etc/raddb/sites-enabled/default 执行组
(0)  挑战{...} 忽略#空子段
(0)已将访问质询 ID 57从10.15.24.121:1812发送到10.15.24.120:56319长度0
(0)  EAP-Message = 0x036e412...f74d2122e
(0)  消息验证器= 0x00000000000000000000000000000000
(0)  状态= 0x08b9011c08f41429e91c8ffeb47fb3b6
(0)请求完成

SL_WLAN_ENT_EAP_METHOD_TTLS_TLS

(1)从10.15.24.120:56319到10.15.24.121:1812长度226、接收到的访问请求 ID 73
(1)  User-Name ="someusername"
(1)  NAS-IP-地址= 10.15.24.120
(1)  NAS-Port = 0
(1)  被叫站点 ID ="31-CE-21-44-32-98:WiFiName"
(1)  Call-Station"="12-45-77-23-76-42"
(1)  framed-MTU = 1400
(1)  NAS-Port-Type =无线-802.11
(1)  Connect-Info ="连接0Mbps 802.1"
(1)  EAP-Message = 0x036e412...f74d2122e
(1)  状态= 0x1ceabf3d1cc4aadb43ed255131de81d3
(1)  消息验证器= 0xa237d2a5321f87679685e623ea9a722
(笑声)
(1)后缀:在"@"后检查后缀
(1)后缀:在 User-Name ="someusername"中没有'@'、查找 NULL 领域
(1)后缀:无此类领域"NULL"
(1)    [后缀]= NOOP
(1) EAP:对等发送 EAP 响应(代码2) ID 46长度62
(1) EAP:继续通道设置
(1)    [EAP]=正常
(1)  }#授权=确定
(1)找到的身份验证类型= EAP
(1)#正在从文件/usr/local/etc/raddb/sites-enabled/default 执行组
(1)  认证{
(1) EAP:状态为0x1ceabf3d1cc4aadb 的即将结束的 EAP 会话
(1) EAP:已完成状态为0x1ceabf3d1cc4aadb 的 EAP 会话
(1) EAP:从列表中找到状态为0x1ceabf3d1cc4aadb 的上一个 EAP 请求
(1) EAP:采用 EAP TTLS 方法的对等发送数据包(21)
(1) EAP:调用子模块 EAP_TTLS 来处理数据
(1) EAP_TTLS:验证
(1) EAP_TTLS:继续 EAP-TLS
(1) EAP_TTLS:获得最终 TLS 记录片段(56字节)
(1) EAP_TTLS:警告:接收到的 TLS 记录片段总数(56字节)、不等于指示的 TLS 记录长度(0字节)
(1) EAP_TTLS:[eaptls verify]= OK
(1) EAP_TTLS:完成初始握手
(1) EAP_TTLS:(其他):初始化之前/接受初始化
(1) EAP_TTLS:TLS_Accept:在初始化之前/接受初始化
(1) EAP_TTLS:<< Recv TLS 1.0握手[length 0033]、ClientHello
(1) EAP_TTLS:TLS_Accept:未知状态
(1) EAP_TTLS:>>发送 TLS 1.0握手[length 002A]、ServerHello
(1) EAP_TTLS:TLS_Accept:未知状态
(1) EAP_TTLS:>>发送 TLS 1.0握手[length 0641]、证书
(1) EAP_TTLS:TLS_Accept:未知状态
(1) EAP_TTLS:>>发送 TLS 1.0握手[length 0004]、ServerHelloDone
(1) EAP_TTLS:TLS_Accept:未知状态
(1) EAP_TTLS:TLS_Accept:未知状态
(1) EAP_TTLS:TLS_Accept:未知状态
(1) EAP_TTLS:TLS_Accept:需要读取更多数据:未知状态
(1) EAP_TTLS:TLS_Accept:需要读取更多数据:未知状态
(1) EAP_TTLS:TLS -在握手阶段
(1) EAP_TTLS:TLS -获得1662字节的数据
(1) EAP_TTLS:[eaptls process]=已处理
(1) EAP:发送 EAP 请求(代码1) ID 47长度1004
(1) EAP:EAP 会话添加&Reply:State = 0x1ceabf3d1dc5aadb
(1)    [EAP]=已处理
(1)  }#认证=已处理
(1)使用身份验证后类型质询
(1)#正在从文件/usr/local/etc/raddb/sites-enabled/default 执行组
(1)  挑战{...} 忽略#空子段
(1)已将访问质询 ID 73从10.15.24.121:1812发送到10.15.24.120:56319长度0
(1)  EAP-Message = 0x036e412...f74d2122e
(1)  消息验证器= 0x00000000000000000000000000000000
(1)  状态= 0x1ceabf3d1dc5aadb43ed255131de81d3
(1)请求完成

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

    您好!

    Radius 日志未提供有关问题的足够信息。  

    您能否获得监听器(AIR 或 pcap)日志?

     TTLS_MSCHAPv2与2种 TLS 方法之间的主要区别在于、对于 TLS、您需要客户端证书。

    请确保正确提供了客户端证书。

    BR、

    Kobi  

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

    你很可能会遇到一些问题、kobi。  我想我会尝试自己编写文件。  我正在执行以下操作:

    我将文件名(例如“/sys/cert/ca.der”)、其长度和内容(DER 二进制文件“*der_cert”)传递给如下函数:

    unsigned long masterToken = 1234;

    sl_FsDel ((uint8_t *)文件名、masterToken);

    SL_FsOpen ((uint8_t *)文件名、SL_FS_create | SL_FS_OVERRITE | SL_FS_CREATE_MAX_SIZE (der_cert_length)| SL_FS_CREATE_SECURE | SL_FS_CREATE_NOSIGNATURE | SL_FS_CREATE_VENDOOR_TOKER、masterToken);

    sl_FsWrite (file_handle、0、(unsigned char*) der_cert、der_cert_length);

    但是、我得到: sl_error_fs_inval_token_security_alert。  我正在指定一个主令牌、因此我不确定为什么会出现此错误。  有什么想法吗?  这是第一步。  

    谢谢!

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

    您是否收到 了 sl_FsDel 或 sl_FsOpen 的安全警报?

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

    该错误适用于 sl_FsDel。  不过,这是一个好问题。

    我从 Uniflash 中删除了原始占位符证书文件、并在没有任何企业证书(称为"全新"加载)的情况下刷写了内存。  然后、我使用我的应用程序在启动后刻录所有三个文件。  我尝试在文件名中使用和不使用前导的"/sys/cert。  (我在某个地方读过需要将"0"附加到 DER 文件中、但我认为情况并非如此。)

    现在、它已经在从"全新"加载开始几次之后、使它能够处理所有三种类型的登录(SL_WLAN_ENT_EAP_METHOD_TTLS_MSCHAPv2、SL_WLAN_ENT_EAP_METHOD_TTLS_TLS 和 SL_WLAN_ENT_EAP_METHOD_TTLS_TLS)。 但是、它并不总是起作用(症状是它无法连接/获取 IP)。  似乎奇怪的是、不需要使用"/sys/cert 前缀。

    我的文件写入可能无法预测。  非常奇怪。  

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

    没有完整路径、它就无法工作。

    您可能在根文件夹中有该文件的第二个副本、并且您不会更新用于连接的证书。

    请指定删除或写入证书文件时的错误代码。

    BR、

    Kobi

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

    我认为您是正确的: 我一定不能更新企业证书文件。  所有这些函数均无误传递(其中证书颁发机构的文件名为"/sys/cert/ca.der、"/sys/cert/private.key、"/sys/cert/client.der "、客户端私有 RSA 密钥和客户端公共证书均采用 PEM 格式):

    unsigned long masterToken = master_file_token;

    RetVal = sl_FsDel ((uint8_t *) fileName、masterToken);

    file_handle = sl_FsOpen (((uint8_t *)文件名、sl_FS_create | sl_FS_overwrite | sl_FS_CREATE_MAX_SIZE (pim_cert_length)| sl_FS_CREATE_SECTION | SL_FS_CREATE_NOSIGNATURE | SL_CREATE_VENDOORT_TOKEN、&masterToken);

    RetVal = sl_FsWrite (file_handle、0、(unsigned char*) pim_cert_file、pim_cert_length);

    RetVal = sl_FsClose (file_handle、0、0、0);

    由于 NWP 不允许回读这些文件、因此很难知道文件系统或 NWP 中到底发生了什么。

    您认为这些命令序列应该起作用吗?

    谢谢!

    Fred

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

    命令看起来不错、但您应该检查返回值。

    您应该能够读取您创建的文件的内容(即使用您自己的供应商令牌)。

    所有证书文件都应采用 PEM 格式-因此您很好。

    当前的问题是什么?

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

    我使用代码执行文件转储、我可以看到我正在正确地删除然后创建.der (PEM)文件。  

    我的企业登录偶尔工作(大部分根本不工作)。  当它不起作用时、我注意到 NWP 通过 SimpleLinkWlanEventHandler 报告了两个 sl_WLAN_EVENT_DISCONNECT 事件、其中 pEventData->ReasonCode 代码为210、1。  现在、210表示"sl_WLAN_DISCONNING_CERTIFICATE_EXPIRED"

    我搜索此论坛并在以下位置找到您的建议: https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/886310

    当我添加代码以将日期和时间初始化为"某个最小"日期时、登录工作正常。

    很棒,永恒,建议!  谢谢!