Home | History | Annotate | Download | only in tls
      1 {
      2  "cells": [
      3   {
      4    "cell_type": "markdown",
      5    "metadata": {},
      6    "source": [
      7     "# The lack of PFS: a danger to privacy"
      8    ]
      9   },
     10   {
     11    "cell_type": "code",
     12    "execution_count": null,
     13    "metadata": {
     14     "collapsed": true
     15    },
     16    "outputs": [],
     17    "source": [
     18     "from scapy.all import *"
     19    ]
     20   },
     21   {
     22    "cell_type": "code",
     23    "execution_count": null,
     24    "metadata": {
     25     "collapsed": false
     26    },
     27    "outputs": [],
     28    "source": [
     29     "record1_str = open('raw_data/tls_session_compromised/01_cli.raw').read()\n",
     30     "record1 = TLS(record1_str)\n",
     31     "record1.msg[0].show()"
     32    ]
     33   },
     34   {
     35    "cell_type": "code",
     36    "execution_count": null,
     37    "metadata": {
     38     "collapsed": false,
     39     "scrolled": true
     40    },
     41    "outputs": [],
     42    "source": [
     43     "record2_str = open('raw_data/tls_session_compromised/02_srv.raw').read()\n",
     44     "record2 = TLS(record2_str, tls_session=record1.tls_session.mirror())\n",
     45     "record2.msg[0].show()"
     46    ]
     47   },
     48   {
     49    "cell_type": "code",
     50    "execution_count": null,
     51    "metadata": {
     52     "collapsed": true
     53    },
     54    "outputs": [],
     55    "source": [
     56     "# Suppose we possess the private key of the server\n",
     57     "# Try registering it to the session\n",
     58     "#key = PrivKey('raw_data/pki/srv_key.pem')\n",
     59     "#record2.tls_session.server_rsa_key = key"
     60    ]
     61   },
     62   {
     63    "cell_type": "code",
     64    "execution_count": null,
     65    "metadata": {
     66     "collapsed": false
     67    },
     68    "outputs": [],
     69    "source": [
     70     "record3_str = open('raw_data/tls_session_compromised/03_cli.raw').read()\n",
     71     "record3 = TLS(record3_str, tls_session=record2.tls_session.mirror())\n",
     72     "record3.show()"
     73    ]
     74   },
     75   {
     76    "cell_type": "code",
     77    "execution_count": null,
     78    "metadata": {
     79     "collapsed": false
     80    },
     81    "outputs": [],
     82    "source": [
     83     "record4_str = open('raw_data/tls_session_compromised/04_srv.raw').read()\n",
     84     "record4 = TLS(record4_str, tls_session=record3.tls_session.mirror())\n",
     85     "record4.show()"
     86    ]
     87   },
     88   {
     89    "cell_type": "code",
     90    "execution_count": null,
     91    "metadata": {
     92     "collapsed": false
     93    },
     94    "outputs": [],
     95    "source": [
     96     "record5_str = open('raw_data/tls_session_compromised/05_cli.raw').read()\n",
     97     "record5 = TLS(record5_str, tls_session=record4.tls_session.mirror())\n",
     98     "record5.show()"
     99    ]
    100   }
    101  ],
    102  "metadata": {
    103   "kernelspec": {
    104    "display_name": "Python 2",
    105    "language": "python",
    106    "name": "python2"
    107   },
    108   "language_info": {
    109    "codemirror_mode": {
    110     "name": "ipython",
    111     "version": 2
    112    },
    113    "file_extension": ".py",
    114    "mimetype": "text/x-python",
    115    "name": "python",
    116    "nbconvert_exporter": "python",
    117    "pygments_lexer": "ipython2",
    118    "version": "2.7.13"
    119   }
    120  },
    121  "nbformat": 4,
    122  "nbformat_minor": 2
    123 }
    124