CN116546075A - 网络设备、用于计算机网络的方法和客户端设备 - Google Patents

网络设备、用于计算机网络的方法和客户端设备 Download PDF

Info

Publication number
CN116546075A
CN116546075A CN202211734216.1A CN202211734216A CN116546075A CN 116546075 A CN116546075 A CN 116546075A CN 202211734216 A CN202211734216 A CN 202211734216A CN 116546075 A CN116546075 A CN 116546075A
Authority
CN
China
Prior art keywords
metadata
client device
data packet
symmetric encryption
encryption key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211734216.1A
Other languages
English (en)
Inventor
罗伯特·沃尔特·舒曼三世
杰里米·吉莱斯
鲍里斯·基利姆尼克
唐纳德·布赖恩·特罗申斯基
亚当·莫里斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN116546075A publication Critical patent/CN116546075A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及网络设备、用于计算机网络的方法和客户端设备。示例网络设备包括一个或多个处理器和耦接到该一个或多个处理器的存储器。存储器存储指令,这些指令在执行时使一个或多个处理器:从源客户端设备接收数据包,该数据包包括用于将数据包路由到在报头内指定的目的地客户端设备的报头和不同于报头的元数据,元数据,其指定公钥基础设施(PKI)信息和识别参与源客户端设备和目的地客户端设备之间的会话的用户或设备的身份上下文信息;基于元数据中的PKI信息验证元数据;响应于验证元数据,基于身份上下文信息,为与数据包相关联的会话应用一个或多个策略规则。

Description

网络设备、用于计算机网络的方法和客户端设备
相关申请的交叉引用
本申请要求于2022年2月1日提交的美国专利申请第17/649,629号的权益,其全部内容通过引用并入本文。
技术领域
本公开整体涉及计算机网络,并且更具体地,涉及在计算机网络内路由数据包。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集合。示例计算设备包括路由器、交换机以及在开放系统互连(OSI)参考模型的第2层(即数据链路层)内运行的其他第2层(L2)网络设备、在OSI参考模型第3层(即网络层内)运行的第3层(L3)网络设备,以及在OSI参考模型第4层(即传输层)内运行的第4层(L4)网络设备。计算机网络内的网络设备通常包括为网络设备提供控制平面功能的控制单元和用于路由或交换数据单元的转发组件。
计算设备可以建立“网络会话”(本文也称为“会话”)以实现计算机网络上的设备之间的通信。会话可以是双向的,因为会话包括在第一设备和第二设备之间双向传播的数据包。例如,会话包括源自第一设备并以第二设备为目的地的前向数据包流和源自第二设备并以第一设备为目的地的反向数据包流。会话的前向和反向数据包流相互关联,因为前向数据包流的源地址和源端口与反向数据包流的目的地址和目的端口相同,前向数据包流的目的地址和目的端口与反向数据包流的源地址和源端口相同。
或者,会话可以是单向的,因为会话包括仅在一个方向上从第一设备传播到第二设备的数据包。例如,会话包括源自第一设备并以第二设备为目的地的转发数据包流。不同的会话可以包括源自第二设备并以第一设备为目的地的反向数据包流。
为了建立会话,计算设备可以使用一种或多种通信会话协议,包括传输控制协议(TCP)、传输层安全协议(TLS)、用户数据报协议(UDP)、互联网控制消息协议(ICMP)、封装安全有效载荷(ESP)等。
发明内容
通常,描述了用于提供基于公钥基础设施(PKI)的会话认证的技术。例如,源设备(例如,客户端设备)可以与目的地设备(例如,托管应用程序或服务的服务器)建立会话。为了确保源设备和目的地设备之间数据的安全传输,设备可以使用PKI来加密和签名数据。例如,终端用户或设备被颁发数字证书(在此简称为“证书”)以用于识别和授权。证书用于分发公钥并确保公钥由经过身份验证的用户或与证书关联的设备拥有。源设备可以使用私钥对数据进行“签名”(例如,加密)(称为“数字签名”或简称为“签名”),并将带有公钥的数据发送到目的地设备。目的地设备可以使用公钥和签名来加密地验证数据实际上是由源设备生成的。
根据本发明中描述的技术,源客户端设备向被配置为执行基于会话的路由的路由器发送包括关于用户的信息和/或机器特定信息(本文称为“身份上下文信息”)以及PKI信息的数据包作为数据包的元数据。身份上下文信息可以包括源应用程序、用户、安全标识符、域或识别会话的用户和/或设备的其他信息。PKI信息可以包括公钥。在一些示例中,源客户端设备可以使用私钥(也称为“签名”)对元数据进行签名。响应于接收到包括指定身份上下文信息和PKI信息的元数据的数据包,路由器检查数据包的元数据并基于元数据中的PKI信息加密地验证元数据。如果通过验证,路由器将根据元数据指定的身份上下文信息,为与数据包关联的会话应用一个或多个策略规则(例如,允许或拒绝访问服务)。
在一些示例中,源客户端设备可以接收由路由器生成的对称加密密钥并且可以使用对称加密密钥来进一步加密数据包的元数据(或包括元数据的有效载荷)。例如,源客户端设备可以利用路由器初始化传输层安全(TLS)会话,并且响应于证书的验证,路由器生成对称加密密钥并将对称加密密钥发送到源客户端设备。源客户端设备使用对称加密密钥加密元数据或包括元数据的数据包的有效载荷并将数据包发送到路由器,路由器使用对称加密密钥解密元数据或包括数据包的元数据的有效载荷以恢复元数据,验证元数据,如果验证通过,则根据身份上下文信息,为与数据包关联的会话应用策略。在一些示例中,路由器使用对称加密密钥来加密向源客户端设备发送的数据包(例如,响应数据包)的有效载荷。
本发明的技术可以对具有实际应用的计算机网络的计算机相关领域提供具体改进。例如,在数据包的元数据内添加PKI信息可以为数据包的元数据中包含的身份上下文信息提供额外级别的加密验证。也就是说,由于路由器能够验证客户端设备能够使用私钥(难以伪造)对元数据进行签名,因此网络设备可以确保元数据中包含的身份上下文信息属于发该送信息的用户或设备。此外,在数据包的元数据中包含身份上下文信息和PKI信息提供了一种带内解决方案,使得网络内的路由器无需查询网络外的设备(例如,通过应用程序编程接口(API))做出有关安全访问的决定或获取允许设备做出访问决定所需的数据,这些数据在某些网络中可能不可用,例如不允许外部访问或在连接性较差的环境中运行的政府网络(例如,中断、断开连接、间歇性和低带宽(DDIL)环境)。
在一个示例中,本发明描述了一种网络设备,包括一个或多个处理器和耦接到该一个或多个处理器的存储器,该存储器存储指令,这些指令在执行时使一个或多个处理器:从源客户端设备接收数据包,该数据包包括用于将数据包路由到由报头指定的目的地客户端设备的报头和与报头不同的元数据,元数据指定公钥基础设施(PKI)信息和识别参与所述源客户端设备和所述目的地客户端设备之间的会话的用户或设备的身份上下文信息;基于元数据指定的PKI信息,对元数据进行验证;响应于验证元数据,基于身份上下文信息,为与数据包相关联的会话应用一个或多个策略规则。
在另一个示例中,本发明描述了一种方法,包括:由网络设备从源客户端设备接收数据包,该数据包包括用于将该数据包路由到由报头指定的目的地客户端设备的报头和与报头不同的元数据,元数据指定公钥基础设施(PKI)信息和识别参与源客户端设备和目的地客户端设备之间的会话的用户或设备的身份上下文信息;网络设备根据元数据指定的PKI信息验证元数据;响应于验证元数据,由网络设备基于身份上下文信息应用一个或多个用于与数据包关联的会话的策略规则。
在另一示例中,本发明描述了一种客户端设备,包括一个或多个处理器和耦接到该一个或多个处理器的存储器,该存储器存储指令,这些指令在执行时使一个或多个处理器:获得识别参与源客户端设备和目的地客户端设备之间的会话的用户或设备的身份上下文信息;从客户端数字证书中获取公钥基础设施(PKI)信息;向网络设备发送用于该会话的数据包,该数据包包括用于将数据包路由到在报头内指定的目的地客户端设备的报头和与报头不同的元数据,该元数据指定身份上下文信息和PKI信息。
本发明的技术的一个或多个示例的细节在附图和下面的描述中阐述。这些技术的其他特征、目的和优点将从描述和附图以及权利要求变得中显而易见。
附图说明
图1是示出根据本公开的技术的示例计算机网络系统的框图。
图2是示出根据本公开的技术的作为路由器操作的示例计算设备的框图。
图3是示出根据本公开的技术的作为客户端设备操作的示例计算设备的框图。
图4是示出根据本公开的技术的示例对称加密密钥交换过程的框图。
图5是示出根据本公开的技术的基于公钥基础设施的会话认证的示例操作的流程图。
贯穿附图和描述,相似的参考字符指代相似的元件。
具体实施方式
图1是图示根据本公开的技术的示例计算机网络系统2的框图。在图1的示例中,计算机网络系统2包括服务提供商网络150,其被配置为不同的客户网络140A-140B(统称为“客户网络140”)提供广域网(WAN)连接。服务提供商网络150的路由器110A-110B(统称为“路由器110”)向客户端设备(例如,分别与客户网络140关联的客户端设备100和服务器103)提供对服务提供商网络150的访问。在一些示例中,客户网络140是企业网络。为了便于说明,客户网络140A被描绘为具有单个客户端设备100并且客户网络140B被描绘为具有单个服务器103,但是每个客户网络140可以包括任何数量的设备。
在一些示例中,客户网络140可以是L2计算机网络,其中对后面跟着数字的层的引用是指开放系统互连(OSI)模型中的对应层。L2在OSI模型中也被称为“数据链路层”,并且贯穿本公开,术语L2可以与短语“数据链路层”互换使用。通常,客户网络140包括许多客户端设备,如下文更详细描述的,每个客户端设备都可以通过服务提供商网络150彼此通信。
服务提供商网络150通常为客户网络140提供许多住宅和商业服务,包括住宅和商业级数据服务(通常被称为“互联网服务”,因为这些数据服务允许访问被称为互联网的公共网络集合),住宅和商业级电话和/或语音服务,以及住宅和商业级电视服务。服务提供商网络150可以耦接到由其他提供商(未示出)管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施的一部分,例如互联网。因此,客户网络140可被视为互联网的边缘网络。服务提供商网络150可以向客户网络140内的计算设备(例如客户端设备100和服务器103)提供对互联网的访问,并且可以允许客户网络140内的计算设备相互通信。
服务提供商网络150表示由服务提供商拥有和运营的可公开访问的计算机网络。服务提供商通常是大型电信实体或公司。服务提供商网络150通常是大型L3计算机网络,其本身支持OSI模型中描述的L3操作。常见的L3操作包括根据L3协议执行的操作,例如互联网协议(IP)。L3在OSI模型中也被称为“网络层”,并且贯穿本公开,术语L3可以与短语“网络层”互换使用。
尽管在图1的示例中图示了路由器110,本公开的技术可以使用任何网络设备来实现,例如路由器、交换机、网关或可以发送和接收网络流量的其他合适的网络设备。例如,客户网络140可以是用于企业的地理上分离的站点的网络。路由器110可以经由一个或多个通信链路连接,例如通信链路16。通信链路16可以是以太网、ATM或任何其他合适的网络连接。
尽管为了便于解释没有示出额外的路由器,但是应该理解,系统2可以包括额外的网络和/或计算设备,例如一个或多个额外的路由器、交换机、集线器、网关、安全设备(例如防火墙、入侵检测和/或入侵防御设备)、服务器、计算机终端、笔记本电脑、打印机、数据库、无线移动设备(例如手机或个人数字助理)、无线接入点、网桥、电缆调制解调器、应用程序加速器,或其他路由器。此外,尽管系统2的元件被示为直接耦接,但应当理解,可以沿通信链路16包括一个或多个附加网络元件,使得系统2的网络元件不直接耦接。尽管计算机网络系统2在图1的示例中被说明。尽管在图1的示例示出了作为包括单个服务提供商网络150的计算机网络系统2,在其他示例中,计算机网络系统2可以备选地包括多个服务提供商网络,每个服务提供商网络提供客户网络140之间的连接。
在一些示例中,路由器110可以实现有状态的、基于会话的路由方案,其使得每个路由器110能够独立地执行路径选择和流量工程。使用基于会话的路由可以使路由器110避免使用集中式控制器,例如软件定义网络(SDN)控制器来执行路径选择和流量工程。以此方式,路由器110对于使用SDN控制器将是不可行的大型网络可以是更高效和可扩展的。此外,使用基于会话的路由可以使路由器110避免使用隧道,从而通过避免在隧道端点执行封装和解封装的需要来节省大量网络资源。在一些示例中,路由器110将基于会话的路由实现为由JuniperNetworks,Inc.提供的安全向量路由(SVR)。
在图1的示例中,系统2的客户端设备100与服务器103建立会话40。在一些示例中,客户端设备100可以被认为是“源”设备,因为客户端设备100在客户端设备100和服务器103之间发起会话40,例如,客户端设备100是会话的前向流的数据包的“来源”。会话40包括源自客户端设备100并以服务器103为目的地的前向数据包流和源自服务器103并以客户端设备100为目的地反向数据包流。会话40的前向流穿过包括例如客户端设备100、路由器110和服务器103的路径。
在一些示例中,路由器110可以根据一个或多个L3通信会话协议(包括TCP或UDP等)将会话40扩展为跨越服务提供商网络150的L3会话。例如,为了根据TCP建立会话40以便可以根据TCP交换数据,客户端设备100和服务器103执行三次握手。客户端设备100向服务器103发送包含“SYN”标志的第一数据包。服务器103通过用包含“SYN-ACK”标志的第二数据包响应客户端设备100来确认接收到第一数据包。客户端设备100通过用包括“ACK”标志的第三数据包响应服务器103来确认接收到第二数据包。在发送第三数据包之后,根据TCP建立会话40,并且客户端设备100和服务器103可以通过会话40彼此交换数据。关于TCP的附加示例信息在1981年9月的Internet Engineering Task Force(IETF),Request forComments(RFC)793,“TRANSMISSION CONTROL PROTOCOL议”中描述,可在https://tools.ietf.org/html/rfc793获得,其全部内容通过引用并入本文。
UDP是一种无连接协议,因为客户端设备100在传输数据之前不验证服务器103是否能够接收数据。为了根据UDP建立会话40,客户端设备100向服务器104发送第一数据包。在客户端设备100从服务器103接收到任何数据包后,会话40可以根据UDP被认为是“建立的”,这意味着服务器103成功地从客户端设备100接收到第一数据包,进行了响应,并且客户端设备100能够接收到来自服务器103的响应。有关UDP的其他示例信息在1980年8月28日的IETF,RFC768“User Datagram Protocol”中描述,可在https://tools.ietf.org/html/rfc768获得,其全部内容通过引用并入本文。
在图1的示例中,当路由器110A接收到会话40的转发数据包流的数据包时,路由器110A确定该数据包是否属于新会话(例如,是会话40的“第一”数据包或“前导”数据包)。在一些示例中,路由器110A确定第一数据包的信息(例如,包括源地址、源端口、目的地地址、目的地端口和协议的五元组)是否匹配会话表中的条目。如果不存在这样的条目,则路由器110A确定该数据包属于新会话并在会话表中创建条目。例如,路由器110A可以生成会话40的会话标识符并将该会话标识符与包括例如第一数据包的会话信息的条目相关联。例如,条目可以包括客户端设备100A的源地址和源端口、服务器103的目的地地址和目的地端口、租户信息和/或服务信息。路由器110A可以使用会话信息来将后续数据包识别为属于同一会话并且沿与第一数据包相同的路径转发后续数据包。
路由器110A修改第一数据包以包括指定会话标识符和会话信息的元数据。元数据可能与报头不同,并且位于外部传输层报头和有效载荷之间。路由器110A替换修改后的第一数据包的外部传输层报头以将数据包路由到下一跳路由器,例如路由器110B。例如,路由器110A替换修改后的第一数据包的报头以指定作为路由器110A的地址的源地址、源端口(路由器110A通过该端口向客户端设备100B转发修改后的第一数据包)、目的地地址(其是路由器110A将第一数据包转发到的下一跳的地址(例如,路由器110B的地址)),以及目的地端口(是路由器110A将第一数据包转发到的下一跳的端口(例如,路由器110B的端口))。路由器110A然后将修改后的第一数据包转发到路由器110B。
路由器110B接收修改后的第一数据包并确定修改后的第一数据包是否包括指定会话标识符的元数据。响应于确定修改后的第一数据包包括指定会话标识符的元数据,路由器110B使用元数据中指定的信息在其会话表中生成条目。
由于路由器110B是会话40的出口或“终点”路由器,因此路由器110B通过从修改的第一数据包中移除元数据来恢复原始的第一数据包,并使用元数据修改第一数据包的报头以指定原始源地址、源端口、目的地地址和目的地端口,以将数据包转发给服务器103。然后,路由器110B将恢复的第一数据包转发到服务器103。因此,使用基于会话的路由可以形成一系列由路径“段”(例如,每个路点之间的端到端路由向量)互连的路点(例如,路由器110)。
关于基于会话的路由和SVR的附加信息在2017年8月8日授权的题为“COMPUTERNETWORK PACKET FLOW CONTROLLER”的美国专利第9,729,439号,和Menon等人在2021年10月1号的Internet-Draft,draft-menon-svr-00,“Secure Vector Routing(SVR)”中有所描述,每篇文章的全部内容均通过引用并入本文。
在一些示例中,客户端设备100可以发送会话40的转发数据包流的第一数据包,其包括关于用户的信息和/或在数据包的元数据中的机器特定信息(本文称为“身份上下文信息”)。身份上下文信息可以包括安全标识符、用户名、域名和域类型、进程名称和进程的信任级别、设备标识符(例如,通用唯一标识符(UUID))、系统信息,例如静态系统信息(例如,操作系统版本、硬件详细信息、补丁级别)和/或可变系统信息(例如,CPU利用率、内存消耗、活动运行进程的数量、应用程序的URL访问(例如,HTTP存档(HAR)文件)等),或识别会话的用户和/或设备(例如,与设备相关的机器特定信息)的其他信息。路由器110可以基于身份上下文信息应用策略。例如,路由器110可以仅针对特定应用、特定设备和/或特定用户应用流量策略。这样,路由器110可以使用元数据中的身份上下文信息(即“带内”)来确定流量的上下文信息,而不是使用例如“带外”解决方案来确定流量的上下文信息,并在网络层执行访问决定。于2020年9月3日提交的题为“DEVICE INFORMATION METHOD AND APPARATURSFOR DIRECTING LINK-LAYER COMMUNICATION”的美国申请第17/011,181号以及于2020年9月3日提交的题为“USER INFORAMTION METHOD AND APPARATUS FOR DIRECTING LINK-LAYER COMMUNICATION”,美国申请第17/011,174号,两者的全部内容均通过引用并入本文。
根据本公开中描述的技术,网络系统2可以提供基于公钥基础设施(PKI)的会话认证以加密地验证包括在数据包的元数据中的身份上下文信息。
在一些示例中,网络系统2可以实现公钥基础设施以保护客户端设备100和服务器103之间的流量。作为公钥基础设施的一个示例,可以向用户颁发客户端数字证书(例如,经由智能卡)来验证用户。客户端证书通常用于“签名”数据、加密和解密数据以及建立安全的在线网络连接。客户端证书可以包括公钥、私钥和加密算法。
在该示例中,客户端设备100可以向路由器110A发送会话40的数据包,例如数据包42,其除了身份上下文信息之外还包括数据包42的元数据内的PKI信息。在一些示例中,元数据指定的PKI信息可以包括从客户端证书获得的公钥和/或与客户端证书关联的其他信息。在一些示例中,由元数据指定的身份上下文信息和PKI信息的计算散列用私钥签名(本文称为“签名”)以验证元数据内的信息。客户端设备100可以在会话40的第一数据包(例如,SYN数据包)中发送指定身份上下文信息和PKI信息的元数据。在一些示例中,服务器103还可以在会话40的响应数据包(例如,SYN-ACK数据包)中发送身份上下文信息和PKI信息,以使路由器110能够将应用程序映射到应用程序服务器(即,提供客户端设备100和服务器103两者的相互认证)。
响应于接收到数据包42,路由器110A可以提取元数据并且使用PKI信息来验证身份上下文信息。例如,路由器110A可以使用公钥(例如,从元数据或使用如下文进一步描述的包括在数据包中的对称加密密钥标识符获得)来验证由客户端设备100用私钥签名的签名。例如,路由器110A计算接收到的数据包的元数据的散列,并且如果计算的散列与从解密的签名(例如,使用公钥解密)获得的散列相同,则路由器110A确定客户端设备100(或客户端设备100的用户)实际上签名了元数据并且可以访问用于签名元数据的私钥。路由器110A还可以确定证书是否已被撤销和/或基于与身份上下文信息相关联的一个或多个策略规则来执行访问决定。以此方式,路由器110A可以在基于与身份上下文信息相关联的一个或多个策略规则执行访问决定(即,是允许还是拒绝会话40)时加密地验证数据包42的元数据中的身份上下文信息。然后路由器110A可以实现上述的有状态的、基于会话的路由方案,其使得每个路由器110能够独立地执行路径选择和流量工程。例如,路由器110A可以修改数据包42以包括元数据的第二部分,该元数据包括会话40的会话标识符。这样,沿着会话40的路由的每个路由器110可以接收在数据包的元数据中接收会话标识符和身份上下文信息以及PKI信息。
在一些示例中,路由器110A可以跨L3网络验证身份上下文信息,其中客户端与路由器相距多个网段。例如,路由器110A可以放置在云服务提供商网络中并充当托管在云服务提供商网络上的应用程序的网关,并且还可以通过跨多个L3网络的身份上下文信息对用户和/或设备进行身份验证,客户端必须穿越这些网络才能到达云服务提供商网络。
在一些示例中,客户端设备100可以使用从路由器(例如,路由器110A)接收的对称加密密钥来加密元数据(或包括元数据的整个有效载荷)。客户端设备100可以应用对称加密来加密和解密,例如高级加密标准(AES)、RivestCipher4(RC4)、RC5、RC6、数据加密标准(DES)、国际数据加密(IDEA)、Blowfish等。如下文进一步描述的,客户端设备100可以执行与路由器110A的对称加密密钥交换过程以获得用于加密数据包42的元数据(或包括元数据的整个有效负载)的对称加密密钥。在一些示例中,客户端设备100和路由器110A可以使用安全套接字层(SSL)连接的传输层安全(TLS)连接来交换对称加密密钥。在这些示例中,客户端设备100可以初始化与路由器110A的TLS/SSL连接,并且响应于验证客户端设备100,生成对称加密密钥,客户端设备100可以使用该对称加密密钥来加密发送到路由器110A的数据包的元数据(或包括元数据的有效负载)或由路由器110A用来加密发送到客户端设备100的数据包(例如,响应数据包)。
路由器110A发送对称加密密钥,并且在一些示例中,发送与对称加密密钥相关联的对称加密密钥标识符到客户端设备100。这样,当客户端设备100发送包括指定身份上下文信息和PKI信息的元数据的数据包42时,客户端设备100可以使用对称加密密钥来加密元数据。客户端设备100还可以在数据包42中包括对称加密密钥标识符,使得路由器110A可以响应于接收到数据包42,使用对称加密密钥标识符来确定对称加密密钥来解密数据包42的元数据。在元数据中未指定公钥的一些示例中,路由器110A可以使用对称加密密钥标识符来获得用于验证已经用私钥签名的上下文信息的公钥。例如,路由器110A可以包括存储身份上下文信息和PKI信息的表或其他类型的数据存储器。如下文进一步描述的,对称加密密钥标识符被映射到PKI信息,包括公钥、私钥和/或客户端证书中包含的其他信息。以这种方式,客户端设备100可以发送包括对称加密密钥标识符和指定身份上下文信息的元数据和PKI信息的没有公钥的数据包,并且路由器110A可以使用对称加密密钥标识符来执行存储PKI信息的表的查找以获得公钥以验证元数据中指定的签名身份上下文信息。
在一些示例中,对称加密密钥用于提供身份上下文信息的验证。在这些示例中,元数据不需要指定身份上下文信息的签名,这消除了对每个会话进行签名(这可能占用大量的过程和时间)的需要。
在一些示例中,路由器110A向客户端设备100发送指定间隔以生成新的对称加密密钥(本文称为“密钥生成间隔”),使得客户端设备100可以根据密钥生成间隔与路由器110A执行对称加密密钥交换过程以交换新的对称加密密钥。
在一些示例中,客户端设备100可以实现虚拟专用网络(VPN)以通过使用诸如点对点隧道协议(PPTP)、第2层隧道协议(L2TP/IPsec)、Wireguard、OpenVPN、安全套接字隧道协议(SSTP)、Internet密钥交换版本2(IKEv2)等之类的VPN协议与路由器110A(例如,VPN服务器)建立虚拟点对点连接。基于VPN协议,VPN的流量可能会被加密。在这些示例中,客户端设备100和路由器110A可以建立连接(例如,TLS连接)来交换VPN的公钥,使得客户端设备100和路由器110A可以使用共享的公钥为VPN建立安全连接。以此方式,客户端设备100可以使用基于PKI的会话认证技术来加密数据包的元数据,并且进一步使用用于VPN的加密来加密数据包,用于VPN的加密使用不同的加密算法和密钥添加额外的加密层。
在一些示例中,路由器110A还可以将签名的身份上下文信息发送到其他路由器(例如,路由器110B),使得路由器110中的每一个可以创建已经被加密地验证和签名的会话的记录。每个记录可以由路由器110发送到中央储存库,中央储存库可以维护记录的智能分类帐。中央存储库可以由网络系统2中的计算设备(未示出)维护。这样,中央存储库可以维护单个真实数据库以确保分类帐中的签名记录是合法的并且已经过加密地验证。在2019年5月13日提交的题为“CENTRAL AUTHORITY FOR SERVICE AND TOPOLOGY EXCHANGE”的美国专利申请第16/410,122号;在2019年5月13日提交的题为“SERVICE AND TOPOLOGYEXCHANGE PROTOCOL”的美国专利申请第16/410,100号中描述了有关中央存储库的其他信息,其全部内容均以引用方式并入本文。
图2是示出根据本公开的技术的作为路由器操作的示例计算设备200的框图。通常,计算设备200可以是图1的路由器110之一的示例实现。图2图示了服务器或其他计算设备200的特定示例,其包括用于执行应用程序222、路由组件250或本文描述的任何其他计算设备中的任何一个或多个的处理电路202。在其他情况下可以使用计算设备200的其他示例。
尽管出于示例的目的在图2中显示为独立计算设备200,根据本公开的技术操作的计算设备可以是包括一个或多个处理器或用于执行软件指令的其他合适的计算环境的任何组件或系统,并且,例如,不必包括图2中所示的一个或多个元件(例如,通信单元206;并且在一些示例中,诸如存储设备208的组件可能不与其他组件位于同一位置或在相同机箱中)。在一些示例中,计算设备200可以被实现为虚拟化网络功能(VNF)。在一些示例中,计算设备200的一个或多个方面可以使用例如VirtIO和SRIOV网络虚拟化技术在网络功能虚拟化(NFV)平台的虚拟机内或者在裸金属服务器上作为一个或多个容器或者作为一个或者多个应用来运行。在一些示例中,计算设备200是物理网络设备,例如交换机、路由器、网关或发送和接收网络流量的其他设备。
如图2的示例所示,计算设备200包括处理电路202、一个或多个输入设备204、一个或多个通信单元206、一个或多个输出设备212、一个或多个存储设备208和一个或多个用户接口(UI,界面)设备210。在一个示例中,计算设备200还包括可由计算设备200执行的一个或多个应用程序222和操作系统216。组件202、204、206、208、210和212中的每一个被耦接(物理上、通信上和/或操作上)用于组件间通信。在一些示例中,通信通道214可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法。作为一个示例,组件202、204、206、208、210和212可以通过一个或多个通信信道214耦接。
在一个示例中,处理电路202被配置为实现用于在计算设备200内执行的功能和/或过程指令。在一些示例中,处理电路202包括一个或多个基于硬件的处理器。例如,处理电路202能够处理存储在存储设备208中的指令。处理电路202的示例可以包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等效的离散或集成逻辑电路。
一个或多个存储设备208可以被配置为在操作期间将信息存储在计算设备200内。在一些示例中,存储设备208被描述为计算机可读存储介质。在一些示例中,存储设备208是临时存储器,意味着存储设备208的主要目的不是长期存储。在一些示例中,存储设备208被描述为易失性存储器,这意味着当计算机关闭时存储设备208不保持存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和其他形式的易失性存储器。在一些示例中,存储设备208用于存储由处理电路202执行的程序指令。在一个示例中,存储设备208由在计算设备200上运行的软件或应用程序使用以在程序执行期间临时存储信息。
在一些示例中,存储设备208还包括一个或多个计算机可读存储介质。存储设备208可以被配置为存储比易失性存储器更大量的信息。存储设备208可以进一步被配置用于信息的长期存储。在一些示例中,存储设备208包括非易失性存储元件。这种非易失性存储元件的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除可编程(EEPROM)存储器的形式。
在一些示例中,计算设备200还包括一个或多个通信单元206。在一个示例中,计算设备200利用通信单元206经由一个或多个网络例如一个或多个有线/无线/移动网络与外部设备通信。通信单元206可以包括网络接口,例如以太网卡、光收发器、射频收发器或可以发送和接收信息的任何其他类型的设备。这种网络接口的其他示例可以包括3G和WiFi无线电。在一些示例中,通信单元206可以包括多个高速网络接口卡。在一些示例中,计算设备200使用通信单元206与外部设备通信。例如,计算设备200使用通信单元206经由与通信单元206连接的图1的链路16与图1的其他路由器110和/或客户端设备100通信。
在一个示例中,计算设备200还包括一个或多个用户接口设备210。在一些示例中,用户接口设备210被配置为通过触觉、音频或视频反馈接收来自用户的输入。用户接口设备210的示例包括存在敏感显示器、鼠标、键盘、语音响应系统、摄像机、麦克风或用于检测来自用户的命令的任何其他类型的设备。在一些示例中,存在敏感显示器包括触敏屏幕。在一些示例中,诸如服务提供商网络150的管理员的用户可以输入计算设备200的配置数据。
计算设备200中还可以包括一个或多个输出设备212。在一些示例中,输出设备212被配置为使用触觉、音频或视频刺激向用户提供输出。在一个示例中,输出设备212包括存在敏感显示器、声卡、视频图形适配卡或用于将信号转换成人类或机器可理解的适当形式的任何其他类型的设备。输出设备212的附加示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或可以向用户生成可理解的输出的任何其他类型的设备。
计算设备200可以包括操作系统216。在一些示例中,操作系统216控制计算设备200的组件的操作。例如,在一个示例中,操作系统216促进一个或多个应用程序222与处理电路202、通信单元206、存储设备208、输入设备204、用户接口设备210和输出设备212的通信。应用程序222还可以包括可由计算设备200执行的程序指令和/或数据。
在一些示例中,处理电路202执行路由组件250,路由组件250确定接收到的数据包的路由并相应地转发数据包。路由组件250与其他路由器通信,例如图1的路由器110,建立和维护计算机网络,例如图1的计算机网络系统2,用于在一个或多个客户端设备之间传输网络流量。路由组件250的路由协议守护进程(RPD)254执行软件指令以实现一个或多个控制平面网络协议256。例如,协议256可以包括一个或多个路由协议,例如互联网组管理协议(IGMP)221和/或边界网关协议(BGP)220,用于与其他路由设备交换路由信息并更新路由信息库(RIB)252、多协议标签交换(MPLS)协议215和其他路由协议。协议256还可以包括一个或多个通信会话协议,例如TCP、UDP、TLS或ICMP。
路由信息252可以描述计算设备200所在的计算机网络的拓扑结构,并且还可以包括通过计算机网络中的共享树的路由。路由信息252描述了计算机网络内的各种路由,以及每条路由的适当下一跳,即沿着每条路由的相邻路由设备。路由信息252可以是编程到专用转发芯片中的基数树、一系列表、复杂数据库、链接列表、基数树、数据库、平面文件或各种其他数据结构。
会话信息235存储用于识别会话的信息。在一些示例中,会话信息235是会话表的形式。例如,服务信息232包括一个或多个指定会话标识符的条目。在一些示例中,会话标识符包括与会话的前向数据包流和/或反向数据包流相关联的源地址、源端口、目的地地址、目的地端口和协议中的一项或多项。如上所述,当路由组件250接收到源于图1的客户端设备100A且目的地为客户端设备100B的前向数据包流的数据包时,路由组件250确定该数据包是否属于新会话(例如,是会话40的“第一”数据包还是“前导”数据包)。为了确定数据包是否属于新会话,路由组件250确定会话信息235是否包括与第一数据包的源地址、源端口、目的地地址、目的地端口和协议相对应的条目。如果条目存在,则该会话不是新会话。如果不存在条目,则会话是新的并且路由组件250生成会话标识符和包括会话信息的条目,并将会话标识符和信息存储在会话信息235中。此后路由组件250可以使用存储在会话的会话信息235中的信息来将后续数据包识别为属于同一会话。
在性能信息(例如,测量的延迟、带宽等)被添加到元数据的一些示例中,会话信息235可以存储用于报告和/或分析目的的性能信息(例如,测量的延迟、带宽等)。
服务信息232存储路由组件250可以用来识别与会话相关联的服务的信息。在一些示例中,服务信息232是服务表的形式。服务信息232可以包括在会话信息235或单独的表中。服务信息232包括一个或多个条目,其指定服务标识符和与服务相关联的地址和/或端口。在一些示例中,路由组件250可以使用接收到的数据包的信息(例如,会话的源地址、源端口、目的地地址、目的地端口和协议中的一个或多个)来查询服务信息232以确定与会话关联的服务。例如,路由组件250可以基于服务信息232中的源地址、源端口、目的地地址、目的地端口或协议与由会话标识符指定的源地址、源端口、目的地地址、目的地端口或协议的对应关系,确定服务标识符。路由组件250基于与数据包相关联的服务来检索对应于识别的服务的一个或多个服务策略234。服务策略可以包括例如路径故障转移策略、差分服务代码点(DSCP)标记策略、流量工程策略、与会话相关联的网络流量的优先级、访问策略等。路由组件250向数据包应用对应于与数据包相关联的服务的一个或多个服务策略234。
根据本公开的技术,计算设备200提供基于公钥基础设施的会话认证。例如,路由组件250被配置为接收包括指定身份上下文信息和PKI信息的元数据的数据包,并且加密地地验证身份上下文信息。例如,路由组件250可以从客户端设备100接收包括指定身份上下文信息和诸如公钥的PKI信息的元数据的数据包,以及由客户端设备100用私钥签名的元数据。客户端设备100可以为元数据生成签名,该签名可以是身份上下文信息和已经用私钥加密的PKI信息的计算散列值。在某些示例中,接收到的数据包中的元数据未指定公钥。在这些示例中,计算设备200可以使用包括在接收到的数据包中的对称加密密钥标识符来执行存储PKI信息的ICD PKI信息236的查找,如下面进一步描述的。
响应于接收到包括指定身份上下文信息和PKI信息的元数据的数据包,路由组件250的验证模块237计算元数据的散列值,解密签名以获得由客户端设备100计算的散列值,并且比较散列值。如果散列值匹配,则验证模块237确定客户端设备100(或客户端设备100的用户)确实签名了元数据并且可以访问用于签名元数据的私钥,并且响应于元数据的验证,可以基于身份上下文信息为与数据包关联的会话应用一个或多个策略规则。在一些示例中,对称加密密钥用于提供身份上下文信息的验证。在这些示例中,元数据不需要指定身份上下文信息的签名,这消除了对每个会话进行签名(这可能会占用大量的过程和时间)的需要。
在一些示例中,计算设备200可以执行与客户端设备100的密钥交换过程以交换对称加密密钥以进一步加密元数据(或包括元数据的有效载荷)。在一些示例中,协议256可以包括传输层安全(TLS)或其他加密协议(例如,安全套接字层(SSL))以建立与客户端设备100的安全连接以交换对称加密密钥。如下进一步描述的,客户端设备100发送包括客户端证书的启动消息,计算设备200验证客户端证书并请求客户端设备100验证客户端设备100拥有客户端证书内提供的公钥的私钥。在验证客户端设备100拥有私钥后,计算设备200可以生成对称加密密钥并将对称加密密钥存储在ICD PKI信息236中。在一些示例中,ICD PKI信息236可以表示表或任何其他类型的数据存储器。对称加密密钥信息236可以包括指定映射到对称加密密钥标识符的对称加密密钥的条目。ICD PKI信息236还可以存储来自客户端证书的信息,例如客户端证书的通用名称(例如,用户或设备)、颁发客户端证书的证书颁发机构以及由通用名称识别的用户或设备的一个或多个策略规则。
在一些示例中,用户可以指定间隔(例如,经由到计算设备200的接口),其中客户端设备100将执行密钥交换过程以获得新的对称加密密钥,其存储在ICD PKI信息236中。路由组件250可以向客户端设备100发送对称加密密钥和与对称加密密钥相关联的对称加密密钥标识符(在一些示例中,指定间隔),客户端设备100又可以使用对称加密密钥加密元数据,并将对称加密密钥标识符包括在数据包中。
响应于接收到包括加密的元数据和对称加密密钥标识符的数据包,路由组件250的验证模块237可以使用对称加密密钥标识符来执行ICD PKI信息的查找236以识别与对称加密密钥标识符相关联的对称加密密钥,并且使用对称加密密钥来解密元数据并且响应于验证元数据,应用例如在ICD PKI信息236、服务策略234、服务信息232和/或存储策略规则的任何其他位置内指定的映射到身份上下文信息的一个或多个策略规则。在一些示例中,路由组件250的验证模块237可以使用对称加密密钥来加密发送给客户端设备100的数据包(例如,响应数据包)。在这些示例中,路路由组件250可以根据包括在响应数据包中的会话信息确定客户端设备100是会话的响应数据包的目的地。作为响应,验证模块237可以基于会话信息确定与会话相关联的对称加密密钥,使用对称加密密钥对响应数据包进行加密,并向客户端设备100发送加密响应数据包。
图3是示出根据本公开的技术的作为客户端设备操作的示例计算设备300的框图。通常,计算设备300可以是图1的客户端设备100或服务器103的示例实现。图3示出了服务器或其他计算设备300的特定示例。计算设备300的其他示例可以在其他情况下使用。
如图3的示例所示,计算设备300包括处理电路302、一个或多个输入设备304、一个或多个通信单元306、一个或多个输出设备312、一个或多个存储设备308以及一个或多个用户接口(UI,界面)设备)310。在一个示例中,计算设备300还包括可由计算设备300执行的一个或多个应用程序322和操作系统316。组件302、304、306、312、308和310中的每一个如上所述分别与组件202、204、206、212、208和210类似地操作,并且通过包括系统总线、网络连接、进程间通信数据结构或用于通信数据的任何其他方法的一个或多个通信通道314物理地、通信地和/或操作地耦接。
在该示例中,计算设备300包括身份上下文模块350以提供基于公钥基础设施的会话认证。身份上下文模块350可以表示例如在计算设备300的内核(未示出)中运行的驱动程序。在一些示例中,身份上下文模块350可以与编程接口(未示出)交互,例如公钥加密学标准编号11(PKCS11)编程接口,用于从证书(如智能卡)获取PKI信息。在一些示例中,如下文进一步描述的,身份上下文模块350可以启动与路由器的密钥交换过程以获得用于加密元数据的对称加密密钥。
在该示例中,身份上下文模块350可以使计算设备300发送包括指定身份上下文信息和PKI信息的元数据的会话的数据包(例如,第一数据包(例如,SYN数据包)或响应数据包(例如,SYN-ACK数据包))到路由器(例如,图1的路由器110A)。PKI信息可以包括从证书(例如,用户证书或设备证书)获得的公钥和用私钥签名的身份上下文信息。例如,身份上下文模块350可以计算身份上下文信息的散列值并用私钥签名(例如,加密)该散列值。计算设备300随后将包括指定身份上下文信息的元数据、公钥和用私钥签名的身份上下文信息的数据包发送到被配置为执行基于会话的路由的路由器(例如,图1的路由器110A或图2的计算设备200)。以此方式,接收数据包的路由器可以加密地验证元数据内的身份上下文信息并将一个或多个策略规则应用于数据包。
在一些示例中,计算设备300可以执行与路由器(例如,图1的路由器110A和图2的计算设备200)的密钥交换过程。在一些示例中,身份上下文模块350可以使用传输层安全(TLS)或其他加密协议(例如,安全套接字层(SSL))来建立与路由器110A的安全连接以交换对称加密密钥。如下文进一步描述的,计算设备300的身份上下文模块350发送包括客户端证书的发起消息并且作为响应,接收来自路由器110A的响应,包括路由器110A的证书和验证计算设备300拥有客户端证书内提供的公钥的私钥的请求。在验证计算设备300拥有私钥后,路由器110A可以生成对称加密密钥并将对称加密密钥提供给计算设备300。在一些示例中,计算设备300可以接收与对称加密密钥相关联的对称加密密钥标识符。在一些示例中,计算设备300可以接收指定间隔,在该指定间隔中计算设备300将执行密钥交换过程以从路由器110A获得新的对称加密密钥。
然后身份上下文模块350可以发送会话的数据包,数据包包括会话加密密钥标识符和指定身份上下文信息以及用会话加密密钥加密的PKI信息的元数据,使得路由器110A可以使用与包括在数据包中的对称加密密钥标识符相关联的对称加密密钥来解密元数据。在一些示例中,计算设备300可以发送没有PKI信息的数据包。在这些示例中,接收数据包的路由器110A可以使用对称加密密钥标识符来从ICD PKI表(例如,图2的ICD PKI信息236)中获得PKI信息。
图4是示出根据本公开的技术的对称加密密钥交换过程的示例的流程图。图4是关于图1的客户端设备100和路由器110A、图2的计算设备200和图3的计算设备300来描述的。
在该示例中,客户端设备100可以获得客户端证书(402)。例如,客户端设备100的身份上下文模块350可以使用编程接口(例如PKCS11)从智能卡获得客户端证书。响应于获得客户端证书,客户端设备100的身份上下文模块350发起与路由器110A的连接(例如,TLS连接)以获得对称加密密钥。例如,身份上下文模块350可以使客户端设备100向路由器110A发送带有客户端证书的启动消息(“Hello”消息)(404)。
响应于接收包括客户端证书的启动请求(406),路由器110A验证客户端证书并发送包括路由器证书的响应,请求客户端设备100验证客户端设备100可以访问提供给路由器110A的公钥的私钥(408)。
在接收来自路由器110A的响应之后(410),身份上下文模块350可以使用路由器的证书验证路由器110A是否可信,并且如果验证通过,则执行私钥操作并向路由器110A发回响应,包括客户端设备100有权访问客户端证书的公钥的私钥的证明(412)。
路由器110A接收包括客户端设备100的验证的响应(414),并且作为响应生成对称加密密钥(416)。对称加密密钥与用于加密TLS消息的加密密钥是分开的。在一些示例中,路由器110A可以生成对称加密密钥并将对称加密密钥存储在ICD PKI信息236中。对称加密密钥可以映射到对称加密密钥标识符。路由器110A可以使用传入数据包中包含的对称加密密钥标识符来执行ICD PKI信息236的查找,以识别与对称加密密钥标识符相关联的对称加密密钥,并且在一些示例中,识别与客户端证书内指定的身份上下文信息相关联的一个或多个策略规则。
然后路由器110A将对称加密密钥(和对称加密密钥标识符)发送到客户端设备100(418)。在一些示例中,路由器110A还发送指定间隔,其中客户端设备100将执行对称加密密钥交换过程以从路由器110A获得新的对称加密密钥。客户端设备100接收对称加密密钥(420)并且可以使用对称加密密钥来加密元数据,如图5中进一步描述的。图4所示的示例仅仅是关于TLS1.2描述的一个示例对称加密密钥交换过程,但是该技术可以使用其他对称加密密钥交换过程,例如TLS1.3。TLS1.2的其他示例在T.Dierks等人的2008年8月的Requestfor Comments(RFC)5246,“The Transport Layer Security(TLS)Protocol Version 1.2”中进行了描述,而TLS1.3的其他示例在E.Rescorla在2018年8月在RFC 8446“TheTransport Layer Security(TLS)Protocol Version 1.3”中进行了描述,其中每一项的全部内容均通过引用并入本文。
图5是示出根据本公开的技术的基于公钥基础设施的会话认证的示例操作的流程图。图5是关于图1的客户端设备100和路由器110A、图2的计算设备200和图3的计算设备300来描述的。
响应于从路由器110A接收到对称加密密钥,客户端设备100发送包括指定上下文信息和PKI信息的元数据的数据包(例如,图1的数据包42),其中元数据(或包括元数据的有效载荷)使用对称加密密钥(502)加密。例如,客户端设备100的身份上下文模块350可以发送包括指定身份上下文信息的元数据的数据包,该身份上下文信息指定用户或机器特定的信息和包括来自客户端证书的公钥的PKI信息,并且用私钥签名元数据。在元数据中未指定公钥的一些示例中,路由器110A可以使用对称加密密钥标识符来获得用于验证已经用私钥签名的身份上下文信息的公钥。例如,客户端设备100可以在没有公钥的情况下发送包括对称加密密钥标识符和指定身份上下文信息和PKI信息的元数据的数据包,并且路由器110A可以使用对称加密密钥标识符来执行存储PKI信息的表的查找以获得公钥以验证元数据中指定的签名身份上下文信息。在一些示例中,对称加密密钥用于提供身份上下文信息的验证。在这些示例中,元数据不需要指定身份上下文信息的签名,这消除了对每个会话进行签名(这可能占用大量的过程和时间)的需要。客户端设备100的身份上下文模块350可以使用从路由器110A接收的对称加密密钥进一步加密元数据(或包括元数据的有效载荷)并且包括与用于加密元数据的对称加密密钥相关联的对称加密密钥标识符。在一些示例中,客户端设备100可以使用用于VPN的加密来进一步加密数据包,这使用不同的加密算法和密钥添加了额外的加密层。
响应于接收包括指定身份上下文信息和PKI信息的元数据的数据包(504),路由器110A可以使用对称加密密钥解密数据包的元数据(或者如果有效载荷被加密则包括元数据的有效载荷)(506)。例如,路由器110A可以使用数据包中包括的对称加密密钥标识符执行ICD PKI信息236的查找以识别与对称加密密钥标识符相关联的对称加密密钥。路由器110A可以使用对称加密密钥来解密数据包的元数据以恢复身份上下文信息和PKI信息。路由器110A验证数据包的元数据(508),并且如果验证通过,则路由器110A基于身份上下文信息为与数据包相关联的会话应用一个或多个策略规则(510)。例如,路由器110A可以使用公钥(例如,从元数据或使用包括在数据包中的对称加密密钥标识符获得)来验证由客户端设备100使用私钥签名的签名。例如,路由器110A计算接收到的数据包的元数据的散列,并且如果计算的散列与从解密的签名(例如,使用公钥解密)获得的散列相同,则路由器110A确定客户端设备100(或客户端设备100的用户)实际上签名了元数据并且可以访问用于签名元数据的私钥。
尽管在图5中描述的操作包括使用对称加密密钥加密元数据(或包括元数据的有效载荷),客户端设备100可以发送包括指定身份上下文信息和包括公钥的PKI信息的未加密元数据数的据包。
在本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或分立逻辑电路,以及此类组件的任何组合。术语“处理器”或“处理电路”通常可以指代任何前述逻辑电路,单独或与其他逻辑电路或任何其他等效电路的组合。包括硬件的控制单元也可以执行本发明的一种或多种技术。
这样的硬件、软件和固件可以在同一设备内或在单独的设备内实现以支持本发明中描述的各种操作和功能。此外,任何所描述的单元、模块或组件都可以作为分立但可互操作的逻辑设备一起或单独实现。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可由单独的硬件或软件组件执行,或集成在公共或单独的硬件或软件组件内。
本发明中描述的技术还可以体现或编码在包含指令的计算机可读介质中,诸如计算机可读存储介质。嵌入或编码在计算机可读存储介质中的指令可以使可编程处理器或其他处理器执行该方法,例如,当指令被执行时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质或其他计算机可读介质。
已经描述了各种示例。这些和其他示例在所附权利要求书的范围内。

Claims (20)

1.一种网络设备,包括:
一个或多个处理器;以及
存储器,耦接到所述一个或多个处理器,所述存储器存储指令,所述指令在执行时使所述一个或多个处理器:
从源客户端设备接收数据包,所述数据包包括报头和与所述报头不同的元数据,所述报头用于将所述数据包路由到由所述报头指定的目的地客户端设备,所述元数据指定公钥基础设施PKI信息以及识别参与所述源客户端设备和所述目的地客户端设备之间的会话的用户或设备的身份上下文信息;以及
基于所述元数据指定的所述PKI信息,验证所述元数据;以及
作为对验证所述元数据的响应,基于所述身份上下文信息,为与所述数据包关联的所述会话应用一个或多个策略规则。
2.根据权利要求1所述的网络设备,
其中所述PKI信息包括公钥,并且
其中,为了验证所述元数据,所述指令进一步使所述一个或多个处理器使用所述公钥验证所述元数据的签名,其中,所述元数据的所述签名由所述源客户端设备使用私钥签名。
3.根据权利要求1所述的网络设备,其中,所述PKI信息由所述源客户端设备从用户或所述源客户端设备的数字证书中获取。
4.根据权利要求1所述的网络设备,其中,所述身份上下文信息包括源应用程序、用户、安全标识符、域和包括静态系统信息或可变系统信息的系统信息中的一项或多项。
5.根据权利要求1-3中任一项所述的网络设备,其中,所述指令进一步使所述一个或多个处理器:
生成用于进一步加密和解密所述元数据的对称加密密钥;
将所述对称加密密钥发送到所述源客户端设备;以及
响应于接收包括所述元数据的所述数据包,使用所述对称加密密钥对接收到的所述数据包中包括的所述元数据进行解密,其中,所述源客户端设备使用所述对称加密密钥对接收到的所述数据包中包括的所述元数据进行加密。
6.根据权利要求5所述的网络设备,其中,所述指令进一步使所述一个或多个处理器:
生成与所述对称加密密钥关联的对称加密密钥标识符;
将所述对称加密密钥标识符发送给所述源客户端设备;以及
响应于接收所述数据包,根据所述数据包中包含的所述对称加密密钥标识符,确定用于解密所述元数据的所述对称加密密钥。
7.根据权利要求6所述的网络设备,其中,所述指令进一步使所述一个或多个处理器:
生成存储将所述对称加密密钥标识符映射到所述对称加密密钥的条目的表,其中,所述表包括数字证书中识别的用户或设备的通用名称、颁发所述数字证书的证书颁发机构以及所述数字证书中识别的所述用户或设备的一个或多个策略规则。
8.根据权利要求5所述的网络设备,其中,所述指令进一步使所述一个或多个处理器:
向所述源客户端设备发送间隔以生成新的对称加密密钥。
9.根据权利要求1-3中任一项所述的网络设备,其中,所述指令进一步使所述一个或多个处理器:
生成用于加密和解密所述数据包的有效载荷的对称加密密钥,所述有效载荷包括所述元数据;
将所述对称加密密钥发送到所述源客户端设备;以及
响应于接收所述数据包,使用所述对称加密密钥解密接收到的所述数据包的所述有效载荷,其中,接收到的所述数据包的所述有效载荷由所述源客户端设备使用所述对称加密密钥加密。
10.一种用于计算机网络的方法,所述方法包括:
由网络设备从源客户端设备接收数据包,所述数据包括报头和不同于所述报头的元数据,所述报头包括用于将所述数据包路由到由所述报头指定的目的地客户端设备,所述元数据指定公钥基础设施PKI信息以及识别参与所述源客户端设备和所述目的地客户端设备之间的会话的用户或设备的身份上下文信息;
所述网络设备根据所述元数据指定的所述PKI信息验证所述元数据;并且
响应于验证所述元数据,由所述网络设备基于所述身份上下文信息为与所述数据包关联的所述会话应用一个或多个策略规则。
11.根据权利要求10所述的方法,还包括:
由所述源客户端设备发送包括指定所述身份上下文信息和所述PKI信息的所述元数据的所述数据包。
12.根据权利要求10-11中任一项所述的方法,
其中,所述PKI信息包括公钥,以及
其中,验证所述元数据包括使用所述公钥验证所述元数据的签名,其中,所述元数据的所述签名由所述源客户端设备使用私钥签名。
13.根据权利要求10-11中任一项所述的方法,还包括:
所述网络设备与所述源客户端设备建立连接以交换对称加密密钥;
响应建立所述连接,所述网络设备生成用于加密和解密所述元数据的对称加密密钥;
所述网络设备向所述源客户端设备发送所述对称加密密钥;以及
响应于接收包括所述元数据的所述数据包,由所述网络设备使用所述对称加密密钥对接收到的所述数据包中包括的所述元数据进行解密,其中,包括在接收到的所述数据包中的所述元数据由所述源客户端设备使用所述对称加密密钥加密。
14.根据权利要求13所述的方法,其中,建立与所述源客户端设备的所述连接包括:
所述网络设备从所述源客户端设备接收包括具有公钥的客户端数字证书的发起消息;
所述网络设备验证所述客户端数字证书;
所述网络设备向所述源客户端设备发送带有与所述网络设备相关联的数字证书的响应消息和请求验证所述客户端数字证书中包含的所述公钥的私钥的所有权;以及
所述网络设备从所述源客户端设备接收响应消息,所述响应消息具有对所述客户端数字证书中包括的所述公钥的所述私钥的所有权的验证。
15.根据权利要求13所述的方法,还包括:
所述网络设备生成与所述对称加密密钥相关联的对称加密密钥标识符;
所述网络设备向所述源客户端设备发送所述对称加密密钥标识符;和
响应于接收所述数据包,所述网络设备基于所述数据包中包含的所述对称加密密钥标识符确定用于解密所述元数据的所述对称加密密钥。
16.根据权利要求13所述的方法,还包括:
所述网络设备向所述源客户端设备发送间隔以生成新的对称加密密钥。
17.根据权利要求10-11中任一项所述的方法,其中,包括在所述数据包中的所述元数据包括所述元数据的第一部分,所述方法还包括:
由所述网络设备修改所述数据包以包括指定所述源客户端设备和所述目的地客户端设备之间的所述会话的会话标识符的所述元数据的第二部分。
18.一种客户端设备,包括:
一个或多个处理器;以及
耦接到所述一个或多个处理器的存储器,所述存储器存储指令,所述指令在执行时使所述一个或多个处理器:
获得识别参与源客户端设备和目的地客户端设备之间的会话的用户或设备的身份上下文信息;
从客户端数字证书中获取公钥基础设施PKI信息;以及
向网络设备发送所述会话的数据包,所述数据包包括报头和与所述报头不同的元数据,所述报头用于将所述数据包路由到在所述报头内指定的所述目的地客户端设备,所述元数据指定所述身份上下文信息和所述PKI信息。
19.根据权利要求18所述的客户端设备,其中,所述指令还使所述一个或多个处理器:
建立与所述网络设备的连接以从所述网络设备交换对称加密密钥;并且
响应于建立所述连接,从所述网络设备接收所述对称加密密钥,
其中,使用所述对称加密密钥对指定所述身份上下文信息和所述PKI信息的所述元数据进行加密。
20.根据权利要求18-19中任一项所述的客户端设备,
其中,所述身份上下文信息包括源应用程序、用户、安全标识符、域和包括静态系统信息或可变系统信息的系统信息中的一项或多项,并且
其中,所述PKI信息包括:
来自所述客户端数字证书的公钥;以及
用私钥签名的所述身份上下文信息。
CN202211734216.1A 2022-02-01 2022-12-30 网络设备、用于计算机网络的方法和客户端设备 Pending CN116546075A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/649,629 2022-02-01
US17/649,629 US20230246819A1 (en) 2022-02-01 2022-02-01 Public key infrastructure based session authentication

Publications (1)

Publication Number Publication Date
CN116546075A true CN116546075A (zh) 2023-08-04

Family

ID=84547366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211734216.1A Pending CN116546075A (zh) 2022-02-01 2022-12-30 网络设备、用于计算机网络的方法和客户端设备

Country Status (3)

Country Link
US (1) US20230246819A1 (zh)
EP (1) EP4221083A1 (zh)
CN (1) CN116546075A (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207426A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および電子認証装置、並びにプログラム記憶媒体
US9729439B2 (en) 2014-09-26 2017-08-08 128 Technology, Inc. Network packet flow controller
US9762485B2 (en) * 2015-08-24 2017-09-12 128 Technology, Inc. Network packet flow controller with extended session management
US9832024B2 (en) * 2015-11-13 2017-11-28 Visa International Service Association Methods and systems for PKI-based authentication
US10931637B2 (en) * 2017-09-15 2021-02-23 Palo Alto Networks, Inc. Outbound/inbound lateral traffic punting based on process risk

Also Published As

Publication number Publication date
EP4221083A1 (en) 2023-08-02
US20230246819A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
US11477037B2 (en) Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange
US11038854B2 (en) Terminating SSL connections without locally-accessible private keys
US11934525B2 (en) Network security by integrating mutual attestation
US8788805B2 (en) Application-level service access to encrypted data streams
US11621945B2 (en) Method and system for secure communications
US9516061B2 (en) Smart virtual private network
US8104082B2 (en) Virtual security interface
US10187356B2 (en) Connectivity between cloud-hosted systems and on-premises enterprise resources
US11582193B2 (en) System and method for securely interconnecting branch networks to enterprise network through TSPS
CN110830351A (zh) 基于SaaS服务模式的租户管理及服务提供方法、装置
EP3216163B1 (en) Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
WO2016134631A1 (zh) 一种OpenFlow报文的处理方法及网元
US11108739B2 (en) Firewall incorporating network security information
EP3220604B1 (en) Methods for client certificate delegation and devices thereof
Choi et al. MACsec extension over software-defined networks for in-vehicle secure communication
US20230246819A1 (en) Public key infrastructure based session authentication
Paladi et al. On-demand key distribution for cloud networks
CN113949730A (zh) 一种设备的通信方法和装置
US20230131877A1 (en) Inline security key exchange
Huda et al. A Proposed Cryptography Key Management in Software-Defined Networking (SDN)
Martín Padilla Study of secure tunnels and VPNs applied to an educational practice
Paladi et al. Flowrider: Fast On-Demand Key Provisioning for Cloud Networks
WO2015197099A1 (en) Inter-carrier virtual private networking
Press IKEv2 IPsec Virtual Private Networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication