EtherNet/IP&CIP协议 &TLS的Scyther截图
1、CIP协议使用个的安全机制 TLS和DTLS协议
TLS在传输层对网路连接加密,其优势在于他与应用层协议独立无关性、高层协议能够透明的建立在TLS协议之上。TLS协议在应用层协议通信之前就已经完成加密算法,通信秘钥的协商,以及服务器认证工作、在此之前之后应用层协议所传送的数据都会被加密。TLS协议只要功能包括客户认证,服务器认证和加密连接
由于书卷加密之后没有任何的规律,如果对数据进行压缩的话将不会有任何的效果,甚至还会增加数据的长度,因此必须在加密数据之前对数据进行压缩、
2、CIP的安全机制TLS形式化分析
(Scyther分析的时候内存必须保证4G以上)
macro CERT-b = { b,pk(b) }sk(Terence);
macro CERT-a = { a,pk(a) }sk(Terence);
macro MSG = a,na,sid,pa,pb,nb,sid,pb,CERT-a,CERT-b,{pms}pk(b);
macro M = hash(pms,na,nb);
macro F = hash(M,MSG);
macro CLIENTK = hash(sid,M,na,pa,a,nb,pb,b,false);
macro SERVERK = hash(sid,M,na,pa,a,nb,pb,b,true);
usertype Params, Bool, SessionID;
hashfunction hash;
const pa,pb: Params;
const false,true: Bool;
const Terence: Agent;
protocol tlspaulson(a,b)
{
role a
{
fresh na: Nonce;
fresh sid: SessionID;
fresh pms: Nonce;
var nb: Nonce;
var pb: Params;
send_1( a,b, a,na,sid,pa );
recv_2( b,a, nb,sid,pb );
recv_3( b,a, CERT-b );
send_4( a,b, CERT-a );
send_5( a,b, { pms }pk(b) );
send_6( a,b, { hash(nb,b,pms) }sk(a) );
send_7( a,b, { F }CLIENTK );
recv_8( b,a, { F }SERVERK );
claim_9a(a, SKR, SERVERK);
claim_9b(a, SKR, CLIENTK);
}
role b
{
var na: Nonce;
var sid: SessionID;
var pms: Nonce;
fresh nb: Nonce;
fresh pb: Params;
recv_1( a,b, a,na,sid,pa );
send_2( b,a, nb,sid,pb );
send_3( b,a, CERT-b );
recv_4( a,b, CERT-a );
recv_5( a,b, { pms }pk(b) );
recv_6( a,b, { hash(nb,b,pms) }sk(a) );
recv_7( a,b, { F }CLIENTK );
send_8( b,a, { F }SERVERK );
claim_10a(b, SKR, SERVERK);
claim_10b(b, SKR, CLIENTK);
}
}
存在的安全威胁