{ "info": { "author": "Erwin Janssen", "author_email": "erwinjanssen@outlook.com", "bugtrack_url": null, "classifiers": [], "description": "# TLSprint\n\nFingerprint TLS implementations using state machines inferred by\n[StateLearner](https://github.com/jderuiter/statelearner/). StateLearner can\nlearn state machines for (in this case TLS) implementations using a black-box\napproach. Different implementations can have a different state machine, which\nmakes it possible to differentiate them. By combining these state machines into\na single tree, and then probing a live implementation, `tlsprint` makes it\npossible to fingerprint the TLS implementation running on the target.\n\n## Installation\n\nInstall the latest release from PyPi:\n\n```shell\npip install tlsprint\n```\n\n## Learn\n\n**Note**: This step is optional, a `model.p` is included in the distribution,\nwhich contains a model created using 27 unique state machines, representing 283\ndifferent TLS implementations. For the full list of implementations, check the\n`models` directory in the repository.\n\nAfter state machines are inferred using StateLearner, run\n\n```shell\ntlsprint learn model.p\n```\n\nto merge all models together into a single\ntree. This tree is returned as a pickled `networkx` graph, and is required for\nthe `identify` step.\n\n## Identify\n\nWhen using the default model, identifying the TLS implementation on a target\ncan be done be running\n\n```shell\ntlsprint identify \n```\n\nThis defaults to port 443, a custom port can be specified by adding\n`--target-port `.\n\nThe command returns a list of possible implementations. All these\nimplementations share the same model, meaning `tlsprint` cannot further specify\nthe exact implementation.\n\nPassing `--graph-dir ` to the `identify` command, will write DOT files\nfor all intermediate versions of the model tree. This can be insightful to\nunderstand what `tlsprint` is doing.\n\nIf you learned a custom model using the `learn` command, you can override the\ndefault model using `--model `.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ErwinJanssen/tlsprint", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "tlsprint", "package_url": "https://pypi.org/project/tlsprint/", "platform": "", "project_url": "https://pypi.org/project/tlsprint/", "project_urls": { "Homepage": "https://github.com/ErwinJanssen/tlsprint" }, "release_url": "https://pypi.org/project/tlsprint/0.1.0/", "requires_dist": [ "click", "networkx", "pydot" ], "requires_python": "", "summary": "Fingerprint TLS implementations", "version": "0.1.0" }, "last_serial": 4674616, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1cc1cd77fe237546da93ef3d799210f8", "sha256": "0840f109d03ca94b53b67362a8f3222e2d54d2d4d3eace552dd88c738321cebe" }, "downloads": -1, "filename": "tlsprint-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1cc1cd77fe237546da93ef3d799210f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11823036, "upload_time": "2019-01-08T23:13:52", "url": "https://files.pythonhosted.org/packages/b0/39/0d25cc88718c4cbaf6b00fc074e8d607241b30bafe72c9b025c69d0e6a5d/tlsprint-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae8401431ac4d22725e0260e03204e54", "sha256": "24840c7dbb0de04008202783259a16d4c76d5ded01b6bb576a17ba9dc56051ba" }, "downloads": -1, "filename": "tlsprint-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ae8401431ac4d22725e0260e03204e54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11834010, "upload_time": "2019-01-08T23:14:06", "url": "https://files.pythonhosted.org/packages/3c/20/42b2e03163f3c7ea0ccd895e74f745859242a5f73f9a5745fd8752d81565/tlsprint-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1cc1cd77fe237546da93ef3d799210f8", "sha256": "0840f109d03ca94b53b67362a8f3222e2d54d2d4d3eace552dd88c738321cebe" }, "downloads": -1, "filename": "tlsprint-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1cc1cd77fe237546da93ef3d799210f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11823036, "upload_time": "2019-01-08T23:13:52", "url": "https://files.pythonhosted.org/packages/b0/39/0d25cc88718c4cbaf6b00fc074e8d607241b30bafe72c9b025c69d0e6a5d/tlsprint-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae8401431ac4d22725e0260e03204e54", "sha256": "24840c7dbb0de04008202783259a16d4c76d5ded01b6bb576a17ba9dc56051ba" }, "downloads": -1, "filename": "tlsprint-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ae8401431ac4d22725e0260e03204e54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11834010, "upload_time": "2019-01-08T23:14:06", "url": "https://files.pythonhosted.org/packages/3c/20/42b2e03163f3c7ea0ccd895e74f745859242a5f73f9a5745fd8752d81565/tlsprint-0.1.0.tar.gz" } ] }