2016-04-06 21 views
1

SSL ana şifresini ve anahtarlarını krom tarayıcısından bir dosyaya vermeyi/yazmayı deniyorum. Birisi bana bunu nasıl yapması konusunda tavsiyede bulunabilirse memnun olurum.SSL istemci ve sunucu anahtarları anahtarlarını yazma

Premaster sırrını yazmak için ortamdaki SSLKEYLOGFILE değişkenini dışa aktarabiliriz. Premaster sırları bir HTTPS oturumunun şifresini çözmek için wireshark tarafından kullanılabilir. CLIENT_WRITE_MAC CLIENT_IV CLIENT_WRITE ve sunucu 3 daha fazla -

premaster gizli ayrıca 6 anahtarları oluşturmak için kullanılan ana gizli hesaplamak için kullanılır.

Bu anahtarları premaster secret yerine bir dosyaya vermek istiyorum.

Sadece çıktı almak için wireshark kodunu kullanabiliyor olsaydım ama bu daha karmaşık Wireshark'ın SSL paketlerini işleme ve premaster sırrını kullanmanın kodunun burada olduğuna inanıyorum. github.com/boundary/wireshark/blob/master/epan/dissectors/packet-ssl-utils.c

Devam etmenin diğer bir yolu, krom tarayıcısında değişiklik yapmak ve derlemek. Burada değişiklik yapılması gerektiğini düşünüyorum. https://code.google.com/p/chromium/codesearch#chromium/src/net/third_party/nss/ssl/derive.c&q=client_write_mac_secret&sq=package:chromium&type=cs&l=214

Daha fazla kaynak kodundan geçiyordum ve bu dosyanın ilişkili olduğunu buldum. Ben ayarlanabilir fazla ortam değişkenleri olduğunu fark yukarıdaki

https://code.google.com/p/chromium/codesearch#chromium/src/net/third_party/nss/ssl/sslsock.c&q=SSLKEYLOG&sq=package:chromium&dr=C&l=3569

koduna bakarak. SSLDEBUG ortamı SSLKEYLOG değişkeni ile aynı şekilde ayarlanabiliyorsa bilen var mı? Bunu yapmak için başka herhangi bir yöntem veya teknik de

Buraya kadar anahtarların başarıyla gönderilmesini sağlayamadım.

+0

Muhtemelen Ana sırrı (nonces ve türevleri karıştırdıktan sonra) ve Premaster'ın sırrını istemezsiniz (istemci ve sunucuda rastgele non-non). Ayrıca bkz. [Psst. Tarayıcınız tüm sırlarınızı bilir] (https://isc.sans.edu/forums/diary/Psst+Your+Browser+Knows+All+Your+Secrets/16415/). – jww

cevap

0

Bunu çözdüm. Bunu yapmak için, wireshark kaynak kodunun en son sürümünü indirmeniz gerekir. Wireshark kaynak klasöründeki - /epan/dissectors/packet-ssl-utils.c dosyasında - Wireshark 2.0.1

Üzerinde yaptığım testi değiştirdim.

Değişkenleri 3179 - 3194 satırındaki bir dosyaya yazdırın. İstemci yazma anahtarı, Sunucu yazma anahtarı, İstemci MAC anahtar, Sunucu MAC anahtar, cient IV ve Sunucu IV)

C Kullanım bu

Dosya * fptr bir dosyaya yazmak için bulabilirsiniz; fptr = fopen ("bir dosyayı açmak istediğiniz dizin", "a +");

fprintf ("data"); , O değişikliği daha tarafsız bir şekilde yapmak için ve

geçersiz custom_ssl_print_data (const gchar * ad, const guchar * veri, size_t uzunluk) {aşağıdaki fonksiyonları oluşturmak - // Bu dosyaya

Not verilerini yazacak

// aşağıdaki satırları

Dosya * ssl_debug_file yazın;

ssl_debug_file = fopen ("dosyayı açmak istediğiniz dizin", "a +");

hattan orijinal işlevselliği Kopya // 4927

}

geçersiz custom_ssl_print_string (const gchar * isim, const StringInfo * verileri) {

// hattan orijinal işlevselliği Kopya 4953 }

Şimdi, anahtarlarınızı bir dosyaya vermek için bu işlevleri kullanın.

Ana wireshark kaynak klasörüne gidin.

./configure

sudo

sudo yapmak ./autogen.sh Çalıştır terminalde

ve çalıştırma wireshark yüklemek olun. (SSLKEYLOGFILE ortam değişkenini dışa aktararak hala premus gizli dosyasını beslemeniz gerekir)

İlgili konular