HTTPS yüklerini çözmek için TLS ve KRİPTOLOJİ bilgisi gerekli

Merhabalar bu ilk konum bir hata yaparsam kusuruma bakmayın lütfen!

Python scapy ile yerel ağda yakaladığım web isteklerinde http yüklerini çözebiliyorum ancak https yükleri çözmek için tls paketlerinin tam olarak nasıl çalıştığını çözmem gerekiyor ama çözemedim.

Sorunum şu: tls paketlerinde bir birine giden anahtarlar bu paketlerin neresinde bulunuyor ve bu diffie hellman anahtarla ile asıl anahtara ulaşıp nasıl yükü çözebilirim

###[ TLS ]### 
           type      = handshake
           version   = TLS 1.0
           len       = 654    [deciphered_len= 654]
           iv        = b''
           \msg       \
            |###[ TLS Handshake - Client Hello ]### 
            |  msgtype   = client_hello
            |  msglen    = 650
            |  version   = TLS 1.2
            |  gmt_unix_time= Thu, 26 Jul 2063 17:10:28 +0000 (2952695428)
            |  random_bytes= [random bytes]
            |  sidlen    = 32
            |  sid       = [session id]
            |  cipherslen= 34
            |  ciphers   = [cipher suites]
            |  complen   = 1
            |  comp      = null
            |  extlen    = 543
            |  \ext       \
            |   |###[ TLS Extension - Server Name ]### 
            |   |  type      = server_name
            |   |  len       = 19
            |   |  servernameslen= 17
            |   |  servernames= [b'www.example.com']
            |   |###[ TLS Extension - Extended Master Secret ]### 
            |   |  type      = extended_master_secret
            |   |  len       = 0
            |   |###[ TLS Extension - Renegotiation Indication ]### 
            |   |  type      = renegotiation_info
            |   |  len       = 1
            |   |  reneg_conn_len= 0
            |   |  renegotiated_connection= ''
            |   |###[ TLS Extension - Supported Groups ]### 
            |   |  type      = supported_groups
            |   |  len       = 14
            |   |  groupslen = 12
            |   |  groups    = [supported groups]
            |   |###[ TLS Extension - Supported Point Format ]### 
            |   |  type      = ec_point_formats
            |   |  len       = 2
            |   |  ecpllen   = 1
            |   |  ecpl      = [uncompressed]
            |   |###[ TLS Extension - Application Layer Protocol Negotiation ]### 
            |   |  type      = alpn
            |   |  len       = 14
            |   |  protocolslen= 12
            |   |  protocols = [b'h2', b'http/1.1']
            |   |###[ TLS Extension - Certificate Status Request ]### 
            |   |  type      = status_request
            |   |  len       = 5
            |   |  stype     = ocsp
            |   |  \req       \
            |   |   |###[ OCSPStatusRequest structure ]### 
            |   |   |  respidlen = 0
            |   |   |  \respid    \
            |   |   |  reqextlen = 0
            |   |   |  reqext    = ''
            |   |###[ TLS Extension - Scapy Unknown ]### 
            |   |  type      = 34
            |   |  len       = 10
            |   |  val       = '\x00\x08\x04\x03\x05\x03\x06\x03\x02\x03'
*******     |   |###[ TLS Extension - Key Share (for ClientHello) ]### 
            |   |  type      = key_share
            |   |  len       = 107
            |   |  client_shares_len= 105
            |   |  \client_shares\
            |   |   |###[ Key Share Entry ]### 
            |   |   |  group     = x25519
            |   |   |  kxlen     = 32
            |   |   |  key_exchange= [key exchange data]
            |   |   |###[ Key Share Entry ]### 
            |   |   |  group     = secp256r1
            |   |   |  kxlen     = 65
            |   |   |  key_exchange= [key exchange data]
            |   |###[ TLS Extension - Early Data ]### 
            |   |  type      = early_data_indication
            |   |  len       = 0
            |   |###[ TLS Extension - Supported Versions (for ClientHello) ]### 
            |   |  type      = supported_versions
            |   |  len       = 5
            |   |  versionslen= 4
            |   |  versions  = [TLS 1.3, TLS 1.2]
            |   |###[ TLS Extension - Signature Algorithms ]### 
            |   |  type      = signature_algorithms
            |   |  len       = 24
            |   |  sig_algs_len= 22
            |   |  sig_algs  = [signature algorithms]
            |   |###[ TLS Extension - PSK Key Exchange Modes ]### 
            |   |  type      = psk_key_exchange_modes
            |   |  len       = 2
            |   |  kxmodeslen= 1
            |   |  kxmodes   = [psk_dhe_ke]
            |   |###[ TLS Extension - Record Size Limit ]### 
            |   |  type      = record_size_limit
            |   |  len       = 2
            |   |  record_size_limit= 16385
            |   |###[ TLS Extension - Pre Shared Key (for ClientHello) ]### 
            |   |  type      = pre_shared_key
            |   |  len       = 278
            |   |  identities_len= 241
            |   |  \identities\
            |   |   |###[ PSK Identity ]### 
            |   |   |  identity_len= 235
            |   |   |  \identity  \
            |   |   |   |###[ Recommended Ticket Construction (from RFC 5077) ]### 
            |   |   |   |  key_name  = [key name]
            |   |   |   |  iv        = [initialization vector]
            |   |   |   |  encstatelen= 13083
            |   |   |   |  encstate  = [encrypted state]
            |   |   |   |  mac       = None
            |   |   |  obfuscated_ticket_age= 2959607051
            |   |  binders_len= 33
            |   |  \binders   \
            |   |   |###[ PSKBinderEntry ]### 
            |   |   |  binderlen = 32
            |   |   |  binder    = [binder]
|   |###[ TLS Extension - Key Share (for ClientHello) ]### 
            |   |  type      = key_share
            |   |  len       = 107
            |   |  client_shares_len= 105
            |   |  \client_shares\
            |   |   |###[ Key Share Entry ]### 
            |   |   |  group     = x25519
            |   |   |  kxlen     = 32
            |   |   |  key_exchange= [key exchange data]
            |   |   |###[ Key Share Entry ]### 
            |   |   |  group     = secp256r1
            |   |   |  kxlen     = 65
            |   |   |  key_exchange= [key exchange data]
            |   |###[ TLS Extension - Early Data ]### 
            |   |  type      = early_data_indication
            |   |  len       = 0
            |   |###[ TLS Extension - Supported Versions (for ClientHello) ]### 
            |   |  type      = supported_versions
            |   |  len       = 5
            |   |  versionslen= 4
            |   |  versions  = [TLS 1.3, TLS 1.2]
            |   |###[ TLS Extension - Signature Algorithms ]### 
            |   |  type      = signature_algorithms
            |   |  len       = 24
            |   |  sig_algs_len= 22
            |   |  sig_algs  = [signature algorithms]
            |   |###[ TLS Extension - PSK Key Exchange Modes ]### 
            |   |  type      = psk_key_exchange_modes
            |   |  len       = 2
            |   |  kxmodeslen= 1
            |   |  kxmodes   = [psk_dhe_ke]
            |   |###[ TLS Extension - Record Size Limit ]### 
            |   |  type      = record_size_limit
            |   |  len       = 2
            |   |  record_size_limit= 16385
            |   |###[ TLS Extension - Pre Shared Key (for ClientHello) ]### 
            |   |  type      = pre_shared_key
            |   |  len       = 278
            |   |  identities_len= 241
            |   |  \identities\
            |   |   |###[ PSK Identity ]### 
            |   |   |  identity_len= 235
            |   |   |  \identity  \
            |   |   |   |###[ Recommended Ticket Construction (from RFC 5077) ]### 
            |   |   |   |  key_name  = [key name]
            |   |   |   |  iv        = [initialization vector]
            |   |   |   |  encstatelen= 13083
            |   |   |   |  encstate  = [encrypted state]
            |   |   |   |  mac       = None
            |   |   |  obfuscated_ticket_age= 2959607051
            |   |  binders_len= 33
            |   |  \binders   \
            |   |   |###[ PSKBinderEntry ]### 
            |   |   |  binderlen = 32
            |   |   |  binder    = [binder]

Merhaba,

DH’nin, TLS’in temel ozelligi guvensiz kanallar uzerinden yurutulebilmesi; paketleri goren birinin dataya erisememesi.

TLS trafigini cozebilmek icin taraflardan birinin destegine ihtiyaciniz var. Yontemin teknik bir ismi oldugundan emin degilim, fakat kullandiginiz client veya server programi + HTTPS decryption filan gibi bir seyler aratarak bulabilirsiniz. SSLKEYLOGFILE environment variable’i yaygin bir yontem, onu da aratabilirsiniz.

1 Beğeni