Heim > Artikel > Backend-Entwicklung > Erstellen Sie mit Go Ihren eigenen JA3-Fingerabdruck
Die Gliederung dieses Artikels lautet wie folgt. Bitte folgen Sie den Ideen von Lao Xu und erstellen Sie nach und nach Ihren eigenen JA3-Fingerabdruck.
Bevor wir offiziell beginnen zu verstehen, was JA3-Fingerabdruck ist, überprüfen wir zunächst den HTTPS-Handshake-Prozess, der uns beim Verständnis des Folgenden helfen wird.
Ich habe mehr als 2.000 Codezeilen codiert, um den TLS-Handshake-Prozess zu verdeutlichen. In diesem Artikel wird hauptsächlich der HTTPS-Einweg-Authentifizierungsprozess und der Zwei-Wege-Authentifizierungsprozess (TLS1.3) analysiert.
Bei der Einseitigen Authentifizierung benötigt der Client kein Zertifikat, er muss lediglich überprüfen, ob das Serverzertifikat legal ist. Der Handshake-Prozess und die ausgetauschten Nachrichten sind wie folgt.
Bei der Zwei-Wege-Authentifizierung müssen sowohl der Server als auch der Client die Legitimität des Zertifikats der anderen Partei überprüfen. Der Handshake-Prozess und die ausgetauschten Nachrichten sind wie folgt.
Vergleich von Einweg-Authentifizierung und Zwei-Wege-Authentifizierung:
Bei der Einweg-Authentifizierung und der Zwei-Wege-Authentifizierung werden die gesamten Daten nur dreimal gesendet und empfangen, und die einmal gesendeten Daten enthalten eine oder mehrere Nachrichten
serverHelloMsg
Nicht verschlüsselt, alle danach gesendeten Nachrichten werden verschlüsseltclientHelloMsg
和serverHelloMsg
未经过加密,之后发送的消息均做了加密处理
Client和Server会各自计算两次密钥,计算时机分别是读取到对方的HelloMsg
和finishedMsg
之后
双向认证和单向认证相比,服务端多发送了certificateRequestMsgTLS13
消息
双向认证和单向认证相比,客户端多发送了certificateMsgTLS13
和certificateVerifyMsg
HelloMsg
und finishedMsg
Nach 🎜🎜🎜🎜🎜🎜Im Vergleich zur Einwegauthentifizierung sendet der Server mehr certificateRequestMsgTLS13
Nachricht 🎜🎜🎜🎜🎜🎜Im Vergleich zur Einwegauthentifizierung sendet der Client mehr certificateVerifyMsg
two message 🎜Ob es sich um eine einseitige oder eine zweiseitige Authentifizierung handelt, das Verständnis des Servers für die grundlegenden Informationen des Clients hängt vollständig davon ab, dass der Client den Server aktiv darüber informiert, und die kritischeren Informationen sind „nicht verschlüsselt“. Unverschlüsselt bedeutet, dass die Schwierigkeit der Änderung verringert wird, was uns auch die Möglichkeit bietet, unseren eigenen JA3-Fingerabdruck anzupassen. 客户端支持的TLS版本
、客户端支持的加密套件(cipherSuites)
、客户端支持的签名算法和客户端支持的密钥交换协议以及其对应的公钥
。这些信息均在包含clientHelloMsg
中,而这些信息也是生成JA3指纹的关键信息,并且clientHelloMsg
和serverHelloMsg
"
Wenn Sie mehr Details über den HTTPS-Handshake-Prozess erfahren möchten, lesen Sie bitte den folgenden Artikel: Codieren Sie mehr als 2.000 Codezeilen, nur um es klarer zu machen. Codieren Sie mehr als 2.000 Codezeilen Nur um es klarzustellen. TLS-Handshake-Prozess (Fortsetzung)“
Das obige ist der detaillierte Inhalt vonErstellen Sie mit Go Ihren eigenen JA3-Fingerabdruck. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!