2014-01-14 105 views
0

我想创建支持PEAP(类型25 - 使用EAP-TLS的PEAP)的RADIUS服务器 我有足够的信息并且知道有关Radius Packets和PEAP数据包的一切格式(RFC 2865半径) 我的项目中唯一困难的部分是EAP数据包内的TLS消息。根据RFC 2246(TLS 1.0)的 我需要一些工具来帮助我创建PEAP协议的第1阶段。在PEAP阶段1中建立了TLS信道(内部半径数据包和内部EAP消息属性-UDP)。阶段2中的其他数据通过该通道发送。 由于PEAP分两阶段完成,阶段1是我的主要问题 波纹管工具没有帮助我:如何在C#中创建支持PEAP身份验证的Radius服务器

1- System.Net.Security.SslStream类。 (通过TCP工作,而半径通过UDP工作)。

2- secureBlackbox DTLS类。 (这是一个高级DLL,并且不允许我在TLS握手过程之前更改数据,编辑在需要TLS协议的任何进程之前从客户端接收的数据,因为接收的数据是一个半径数据包。首先,我必须提取从它的TLS消息,然后把它作为一个代理。但secureBlackBox类不允许我改变数据。)

3- FREERADIUS项目(www.freeradius.org) 这个项目用C语言编写,并我很难将其转换为C#。

你能帮我在我的半径数据包中建立TLS频道吗? 预先感谢您的时间和考虑。

+0

你总是可以使用平台调用打电话给FreeRADIUS的解放:) –

回答

0

我正在开发使用C#RADIUS服务器。我不认为带dotnet的sslstream类会起作用。除非你开发一个BIO作为解释器并使用sslstream类,否则半径与peap一起工作。只是记录层数据被加密,必须进行所有握手和加密/解密。

我不知道的DTLS,但可能不会太工作,因为以后你需要从握手过程中的一些数据来计算MPPE键等