Version | Linux | Windows | Mac OS X | Comments | v1.1.3 | Download | Download | Download | This is the standard version. | Compromise-0.9.2 | Download | Download | Download | Choose this if you need support for various adversary models. |
---|
Scyther uses some other components, specified below.
Note for Ubuntu users: If you are using a recent version of Ubuntu, you can simply enter 'sudo apt-get install graphviz python python-wxgtk3.0' on the command line and continue at 'Running Scyther' below.
This library is used by the Scyther tool to draw graphs. It can be downloaded from:
Name | Where to download |
---|---|
GraphViz | http://www.graphviz.org/ |
Download the latest stable release and install it.
The graphical user interface of Scyther is written in the Python language.
Name | Where to download |
---|---|
Python 3.x | http://www.python.org/download/ |
The graphical user interface of Scyther using the wxPython library to draw widgets.
The recommended way of installing this is by using
pip3 install wxpython
Start Scyther by executing the file:
scyther-gui.py
It may be that Scyther fails to run and aborts with an error that ends with a line similar to the following:
ImportError: /usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode)Running Scyther in the following way should fix the issue:
$ export VERSIONER_PYTHON_PREFER_32_BIT=yes $ ./scyther-gui.py
On Mac OS, the graphviz package by default cannot determine the right font location if fontconfig is not installed. This causes the fonts in the graphs in Scyther to be rendered wrongly. You can fix this by adding the following setting to your environment variables: (joining the string lines)
DOTFONTPATH= "/usr/X11R6/lib/X11/fonts/TrueType:/usr/X11R6/lib/X11/fonts/truetype: /usr/X11R6/lib/X11/fonts/TTF:/usr/share/fonts/TrueType: /usr/share/fonts/truetype:/usr/openwin/lib/X11/fonts/TrueType: /usr/X11R6/lib/X11/fonts/Type1"
On some systems, including MacOS, it can take extra steps to install and use wxPython. This can result in error messages such as the following:
Could not find the required [wxPython] package.
No module named 'wx'
Solution: Try to run
$ scyther-gui-venv.pyThis script, which can be found in the
gui
directory, sets up a Python virtual environment
and tries to install wxpython there using pip3, which can solve the problem.
As a first test, open the file 'ns3.spdl' in the main Scyther directory using Scyther, and select Verify->Verify Protocol. This evaluates the claims in the protocol specification file (in this case secrecy, agreement and correspondence properties, and synchronisation for each role) and shows the results. Click on the attack buttons to get a graphical representation.
Many other protocol specification files can be found in the Protocols/ subdirectory.
If you cannot get the GUI to work, or prefer command-line tools for scripting, you can use the following instructions.
Depending on your platform, the Scyther directory contains one of the following executables:
To get a list of (some) of the command-line options, run the executable with the '--help' switch, e.g.:
scyther-linux --help
To analyze the Needham-Schroeder protocol and generate a .dot file (the input language for the Graphviz tool) for the attacks, use
scyther-linux --dot-output --output=ns3-attacks.dot ns3.spdl
The resulting output file can then be rendered by graphviz, e.g.:
dot -Tpdf -O ns3-attacks.dot
This yields several PDF files ns3-attacks.dot[.N].pdf that contain the attack graphs.