IP Library Granted Patent US 11,706,254
Granted Patent B2
US 11,706,254 · App. 16/874,237 · Granted Jul 18, 2023

Method and apparatus for identifying encrypted data stream

Inventor: Yong Zhao (Beijing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L63/16H04L43/026H04L63/0428H04L63/1408H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,706,254
App. No.
16/874,237
Granted
Jul 18, 2023
Kind
B2
Abstract

A method includes parsing a handshake message of an encrypted data stream according to a secure encrypted transmission protocol corresponding to the encrypted data stream, to obtain a plurality of fields included in the handshake message, determining, from a plurality of rule sets and based on the plurality of fields, a rule set that matches the handshake message, and determining, based on a mapping relationship between the matched rule set and an application, an application corresponding to the encrypted data stream.

Claims (60)

1. An encrypted data stream identification method, comprising:

parsing a handshake message of an encrypted data stream to obtain a plurality of fields comprised in the handshake message, wherein the parsing is performed according to a secure encrypted transmission protocol corresponding to the encrypted data stream;

determining a rule set of a plurality of rule sets comprising a plurality of field rules and a plurality of order rules, wherein the rule set is associated with an application corresponding to the encrypted data stream and matches the handshake message, and wherein determining the rule set comprises:

determining whether the plurality of fields matches one or more field rules associated with a first subset of applications, wherein each of the field rules indicates a feature of a field and comprises at least one of a length of the field, a type of the field, or a value of the field; and

determining whether an order of the plurality of fields comprised in the handshake message matches one or more order rules associated with a second subset of applications, wherein each of the order rules indicates the order of the plurality of fields in the handshake message;

obtaining an intersection set of the first subset of applications and the second subset of applications; and

determining the application corresponding to the encrypted data stream based on the intersection set of the first subset of applications and the second subset of applications and whether the plurality of fields matches the one or more field rules associated with the application and whether the order of the plurality of fields comprised in the handshake message matches the one or more order rules associated with the application.

2. The encrypted data stream identification method of claim 1 , wherein the plurality of fields comprises a plurality of groups, wherein each of the plurality of groups corresponds to one of the handshake message, and wherein the encrypted data stream identification method further comprises matching the plurality of groups with rules from the plurality of rule sets in an order of receiving the handshake message to obtain the rule set that matches the handshake message.

3. The encrypted data stream identification method of claim 1 , wherein the plurality of rule sets comprises a plurality of rules stored in a linked list, and wherein each node in the linked list stores a rule corresponding to a name of the handshake message.

4. The encrypted data stream identification method of claim 1 , further comprising:

parsing a plurality of names of the handshake message;

determining a rule corresponding to the plurality of names; and

parsing the plurality of fields of the handshake message that are indicated by the rule.

5. The encrypted data stream identification method of claim 1 , wherein the handshake message comprises a plurality of handshake messages.

6. The encrypted data stream identification method of claim 1 , further comprising:

training a machine learning algorithm to obtain at least one rule set corresponding to a target application based on a plurality of samples of a plurality of encrypted data flows streams; and

determining whether the plurality of samples are handshake messages of an encrypted data flow stream corresponding to the target application.

7. The encrypted data stream identification method of claim 1 , wherein a plurality of handshake messages is parsed and separately matched in a batch.

8. The encrypted data stream identification method of claim 1 , wherein determining the application corresponding to the encrypted data stream is whether the plurality of fields matches all the field rules associated with the application and whether the order of the plurality of fields comprised in the handshake message matches all the order rules associated with the application.

9. The encrypted data stream identification method of claim 1 , further comprising:

parsing a second message of the encrypted data stream; and

obtaining a third subset of applications corresponding to the second message,

wherein obtaining the intersection set further comprises obtaining the intersection set based on the first subset of applications, the second subset of applications, and the third subset of applications, and

wherein determining the application corresponding to the encrypted data stream further comprises determining the application based on the intersection set of the first subset of applications, the second subset of applications, and the third subset of applications.

10. An encrypted data stream identification device, comprising:

a processor; and

a memory coupled to the processor and storing instructions that, when executed by the processor, cause the encrypted data stream identification device to be configured to:

parse a handshake message of an encrypted data stream according to a secure encrypted transmission protocol to obtain a plurality of fields comprised in the handshake message;

determine a rule set of a plurality of rule sets comprising a plurality of field rules and a plurality of order rules, in which the rule set is associated with an application corresponding to the encrypted data stream and matches the handshake message, wherein, to determine the rule set, the instructions further cause the encrypted data stream identification device to be configured to:

determine whether the plurality of fields matches one or more field rules associated with a first subset of applications, wherein each of the field rules indicates a feature of a field and comprises at least one of a length of the field, a type of the field, or a value of the field; and

determine whether an order of the plurality of fields comprised in the handshake message matches one or more order rules associated with a second subset of applications, wherein each of the order rules indicates the order of the plurality of fields in the handshake message;

obtain an intersection set of the first subset of applications and the second subset of applications; and

determine the application corresponding to the encrypted data stream based on the intersection set of the first subset of applications and the second subset of applications and whether the plurality of fields matches the one or more field rules associated with the application and whether the order of the plurality of fields comprised in the handshake message matches the one or more order rules associated with the application.

11. The encrypted data stream identification device of claim 10 , wherein the plurality of fields comprises a plurality of groups, wherein each of the plurality of groups corresponds to the handshake message, and wherein the instructions further cause the processor to be configured to match the plurality of groups with rules from the plurality of rule sets in an order of receiving the handshake message to obtain the rule set that matches the handshake message.

12. The encrypted data stream identification device of claim 10 , wherein the instructions further cause the processor to be configured to:

parse a plurality of names of the handshake message;

determine a rule corresponding to the plurality of names; and

parse the plurality of fields of the handshake message that is indicated by the rule.

13. The encrypted data stream identification device of claim 10 , wherein the handshake message comprises a plurality of handshake messages.

14. The encrypted data stream identification device of claim 10 , wherein a plurality of handshake messages is parsed and separately matched in a batch.

15. The encrypted data stream identification device of claim 10 , wherein the instructions further cause the processor to be configured to:

parse a second message of the encrypted data stream; and

obtain a third subset of applications corresponding to the second message,

wherein obtaining the intersection set further comprises obtaining the intersection set based on the first subset of applications, the second subset of applications, and the third subset of applications, and

wherein determining the application corresponding to the encrypted data stream further comprises determining the application based on the intersection set of the first subset of applications, the second subset of applications, and the third subset of applications.

16. A computer program product comprising computer-executable instructions for storage on a non-transitory computer-readable medium that, when executed by a processor, cause an encrypted data stream identification device to:

parse a handshake message of an encrypted data stream according to a secure encrypted transmission protocol to obtain a plurality of fields comprised in the handshake message;

determine a rule set of a plurality of rule sets comprising a plurality of field rules and a plurality of order rules, in which the rule set is associated with an application and matches the handshake message, wherein, to determine the rule set, the computer-executable instructions further cause the encrypted data stream identification device to:

determine whether the plurality of fields matches one or more field rules associated with a first subset of applications, wherein each of the field rules indicates a feature of a field and comprises at least one of a length of the field, a type of the field, or a value of the field; and

determine whether an order of the plurality of fields comprised in the handshake message matches one or more order rules associated with a second subset of applications, wherein each of the order rules indicates the order of the plurality of fields in the handshake message;

obtain an intersection set of the first subset of applications and the second subset of applications; and

determine the application corresponding to the encrypted data stream based on the intersection set of the first subset of applications and the second subset of applications and whether the plurality of fields matches the one or more field rules associated with the application and whether the order of the plurality of fields comprised in the handshake message matches the one or more order rules associated with the application.

17. The computer program product of claim 16 , wherein the plurality of fields comprises a plurality of groups, wherein each of the plurality of groups corresponds to the handshake message, and wherein the instructions further cause the encrypted data stream identification device to be configured to match the plurality of groups with rules from the plurality of rule sets in an order of receiving the handshake message to obtain the rule set that matches the handshake message.

18. The computer program product of claim 16 , wherein the handshake message comprises a plurality of handshake messages.

19. The computer program product of claim 16 , wherein a plurality of handshake messages is parsed and separately matched in a batch.

20. The computer program product of claim 16 , wherein the instructions further cause the encrypted data stream identification device to be configured to:

parse a second message of the encrypted data stream; and

obtain a third subset of applications corresponding to the second message,

wherein obtaining the intersection set further comprises obtaining the intersection set based on the first subset of applications, the second subset of applications, and the third subset of applications, and

wherein determining the application corresponding to the encrypted data stream further comprises determining the application based on the intersection set of the first subset of applications, the second subset of applications, and the third subset of applications.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2020
From: ZHAO, YONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 052665/0796 →
Priority Claims (1)
CN 201711141610.3 · Nov 17, 2017 · national
Continuity (2)
Continuation PCTCN2018116207 · Nov 19, 2018
Related Publication 20200280584A1 · Sep 3, 2020