Compare commits
3 Commits
539f7ff19d
...
66c6af2f8c
Author | SHA1 | Date |
---|---|---|
nervuri | 66c6af2f8c | |
nervuri | dc53b5fa76 | |
nervuri | 0092ed6dd0 |
|
@ -8,6 +8,7 @@ package main
|
|||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/binary"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"golang.org/x/crypto/cryptobyte"
|
||||
|
@ -197,9 +198,10 @@ type extension struct {
|
|||
|
||||
type highlights struct {
|
||||
//SupportedTLSVersions []uint16
|
||||
SecureRenegotiationSupport bool `json:"secure_renegotiation_support"`
|
||||
OcspStaplingSupport bool `json:"ocsp_stapling_support"`
|
||||
SctSupport bool `json:"sct_support"`
|
||||
GmtUnixTime uint32 `json:"gmt_unix_time"` // first 4 bytes of client random
|
||||
SecureRenegotiationSupport bool `json:"secure_renegotiation_support"`
|
||||
OcspStaplingSupport bool `json:"ocsp_stapling_support"`
|
||||
SctSupport bool `json:"sct_support"`
|
||||
// Go's crypto/tls server does not support early data.
|
||||
EarlyData bool `json:"-"` // don't include in JSON
|
||||
JA3 string `json:"ja3"`
|
||||
|
@ -231,6 +233,8 @@ func (m *clientHelloMsg) unmarshal(data []byte) bool {
|
|||
return false
|
||||
}
|
||||
m.Random = random
|
||||
m.Highlights.GmtUnixTime = binary.BigEndian.Uint32(random[0:4])
|
||||
|
||||
m.SessionID = sessionID
|
||||
|
||||
var cipherSuites cryptobyte.String
|
||||
|
|
|
@ -84,7 +84,7 @@ a:active {color:#FFF;}
|
|||
<p>This test:
|
||||
<ul>
|
||||
<li>reflects the complete Client Hello message, preserving the order in which TLS parameters and extensions are sent;</li>
|
||||
<li>can be used to check for TLS privacy pitfalls (<a href="https://svs.informatik.uni-hamburg.de/publications/2018/2018-12-06-Sy-ACSAC-Tracking_Users_across_the_Web_via_TLS_Session_Resumption.pdf">session resumption</a>, <a href="https://tlsfingerprint.io/">TLS fingerprinting</a>, <a href="https://datatracker.ietf.org/doc/html/rfc5246/#section-7.4.1.2">system time exposure</a>);</li>
|
||||
<li>can be used to check for TLS privacy pitfalls (<a href="https://svs.informatik.uni-hamburg.de/publications/2018/2018-12-06-Sy-ACSAC-Tracking_Users_across_the_Web_via_TLS_Session_Resumption.pdf">session resumption</a>, <a href="https://tlsfingerprint.io/">TLS fingerprinting</a>, <a href="https://datatracker.ietf.org/doc/html/draft-mathewson-no-gmtunixtime">system time exposure</a>);</li>
|
||||
<li>supports both HTTP and <a href="https://gemini.circumlunar.space/">Gemini</a>;</li>
|
||||
<li>is <a href="https://www.gnu.org/philosophy/free-sw.en.html">free as in freedom</a> and trivial to self-host.</li>
|
||||
</ul>
|
||||
|
@ -100,6 +100,7 @@ Note that these lists do not include draft extensions and <a href="https://datat
|
|||
</main>
|
||||
<hr>
|
||||
<footer>
|
||||
Author: <a href="https://nervuri.net/">nervuri</a><br>
|
||||
<a href="https://tildegit.org/nervuri/client-hello-mirror">Source</a> (contributions welcome)<br>
|
||||
License: <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPL-3.0-or-later</a>
|
||||
</footer>
|
||||
|
@ -124,6 +125,7 @@ JSON only, for now. The API is largely stable - fields may be added, but existin
|
|||
Note that these lists do not include draft extensions and GREASE values. Missing values will be documented here as the project evolves.
|
||||
|
||||
_____________________
|
||||
=> https://nervuri.net/ Author: nervuri
|
||||
=> https://tildegit.org/nervuri/client-hello-mirror Source (contributions welcome)
|
||||
=> https://www.gnu.org/licenses/agpl-3.0.en.html License: AGPL-3.0-or-later`
|
||||
|
||||
|
|
Loading…
Reference in New Issue