Skip to content
Snippets Groups Projects
Commit d2224970 authored by mwh1g17's avatar mwh1g17
Browse files

Updated Scytherbox to reflect the most recent version

 + Fixed Permissions bug
 + Attached example protocols
 - removed redundant files
parent 0fe3ca15
No related branches found
No related tags found
No related merge requests found
Please ensure that you have installed Vagrant and have a virtual machine hypervisor installed on your host machine.
Virtualbox is the reccomended hypervisor for this software
Scytherbox Installation instructions:
1. Create a new folder on your host machine
2. Copy and paste or extract the contents of this folder into the newly created folder
3. Open Powershell or your text terminal of choice and navigate to the newly created folder.
4. type 'vagrant up' inside the folder.
5. Allow time for Vagrant to download the base box and apply the provisioners to the box, this may take several minutes.
...@@ -65,9 +65,10 @@ Vagrant.configure("2") do |config| ...@@ -65,9 +65,10 @@ Vagrant.configure("2") do |config|
# Enable provisioning with a shell script. Additional provisioners such as # Enable provisioning with a shell script. Additional provisioners such as
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
# documentation for more information about their specific syntax and use. # documentation for more information about their specific syntax and use.
config.vm.provision "file", source: "files", destination: "/home/vagrant/Desktop"
config.vm.provision "shell", path: "scyther.sh" config.vm.provision "shell", path: "scyther.sh"
config.vm.provision "file", source: "files", destination: "/home/vagrant/Desktop"
config.vm.synced_folder "shared", "/home/vagrant/Desktop/SyncedFiles" config.vm.synced_folder "shared", "/home/vagrant/Desktop/SyncedFiles"
config.vm.provision "shell", path: "scytherpermissions.sh"
# apt-get update # apt-get update
# apt-get install -y apache2 # apt-get install -y apache2
# SHELL # SHELL
......
To run Scyther, the scyther-gui.py file is recomeded, this can be launched through terminal by typing: To run Scyther, the scyther-gui.py file is recomeded, this can be launched through terminal by typing:
./scyther/scyther-gui.py ./Desktop/scyther/scyther-gui.py
From here, protocols can be loaded using the file -> open menu or crtl+o. By going Desktop->SyncedFiles->GitLink From here, protocols can be loaded using the file -> open menu or crtl+o. By going Desktop->SyncedFiles->GitLink
Any protocols in your configured git repo can be opened. Any protocols in your configured git repo can be opened.
......
sudo apt-get update sudo apt-get update
sudo apt-get -y install graphviz python python-wxgtk3.0 sudo apt-get -y install graphviz python python-wxgtk3.0
chmod +x /home/vagrant/Desktop/scyther/scyther/scyther-gui.py
chmod 777 -R /home/vagrant/Desktop chmod 777 -R /home/vagrant/Desktop
\ No newline at end of file
chmod +x /home/vagrant/Desktop/scyther/scyther-gui.py
\ No newline at end of file
hashfunction hashed;
usertype Message;
protocol KeyExchange(Monitor,CloudServer)
{
role Monitor
{
fresh MonitorValue : Nonce;
fresh Confirm: Message;
var CloudServerValue : Nonce;
send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
CloudServer}pk(Monitor));
send_3(Monitor,CloudServer, hashed(CloudServerValue, Confirm));
claim_Monitor1(Monitor,Niagree);
claim_Monitor2(Monitor,Nisynch);
claim_Monitor3(Monitor, Secret, MonitorValue);
claim_Monitor4(Monitor, Secret, CloudServerValue);
}
role CloudServer
{
var MonitorValue: Nonce;
var Confirm: Message;
fresh CloudServerValue: Nonce;
recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
CloudServer}pk(Monitor));
recv_3(Monitor,CloudServer, hashed(CloudServerValue, Confirm));
claim_CloudServer1(CloudServer,Niagree);
claim_CloudServer2(CloudServer,Nisynch);
claim_CloudServer3(CloudServer, Secret, MonitorValue);
claim_CloudServer4(CloudServer, Secret, CloudServerValue);
}
}
\ No newline at end of file
protocol smartExchange(Meter,Monitor)
{
role Meter {
fresh Message: Nonce;
var Confirm;
send_1(Meter,Monitor,{Message}k(k));
recv_2(Monitor,Meter,{Confirm}k(k));
claim_Meter1(Meter, Secret, (k));
claim_Meter2(Meter, Secret, Message);
}
role Monitor {
var Message;
fresh Confirm: Nonce;
recv_1(Meter,Monitor,{Message}k(k));
send_2(Monitor,Meter,{Confirm}k(k));
claim_Monitor1(Monitor, Secret, (k));
claim_Monitor2(Monitor, Secret, Message);
}
}
\ No newline at end of file
hashfunction hashed;
hashfunction sharedkey;
usertype Message;
usertype SessionKey;
protocol MutualAuthentication(Monitor,CloudServer)
{
role Monitor {
fresh MonitorValue : Nonce;
var CloudServerValue : Nonce;
fresh MonitorInformation : Message;
var CloudServerInformation: Message;
fresh sharedkey: SessionKey;
send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
CloudServer}pk(Monitor));
send_3(Monitor,CloudServer,{CloudServerValue, MonitorInformation} sharedkey );
recv_4(CloudServer,Monitor,{MonitorValue,CloudServerInformation} sharedkey);
claim_Monitor1(Monitor,Niagree);
claim_Monitor2(Monitor,Nisynch);
claim_Monitor3(Monitor, Secret, CloudServerInformation);
claim_Monitor4(Monitor,Alive);
}
role CloudServer {
var MonitorValue: Nonce;
fresh CloudServerValue: Nonce;
fresh CloudServerInformation: Message;
var MonitorInformation: Message;
var sharedkey: SessionKey;
recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
CloudServer}pk(Monitor));
recv_3(Monitor,CloudServer, {CloudServerValue, MonitorInformation} sharedkey );
send_4(CloudServer,Monitor,{MonitorValue,CloudServerInformation} sharedkey);
claim_CloudServer1(CloudServer,Niagree);
claim_CloudServer2(CloudServer,Nisynch);
claim_CloudServer3(CloudServer, Secret, MonitorInformation);
claim_CloudServer4(CloudServer,Alive);
}
}
\ No newline at end of file
hashfunction hashed;
hashfunction sharedkey;
usertype Message;
usertype SessionKey;
protocol SessionKeys(Monitor,CloudServer) {
role Monitor {
fresh MonitorValue : Nonce;
var CloudServerValue : Nonce;
fresh info : Message;
var info: Message;
fresh sharedkey: SessionKey;
send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
CloudServer}pk(Monitor));
send_3(Monitor,CloudServer, {info} sharedkey);
claim_Monitor1(Monitor,Alive);
claim_Monitor2(Monitor,Secret, info);
}
role CloudServer {
var MonitorValue: Nonce;
fresh CloudServerValue: Nonce;
var info: Message;
fresh info: Message;
fresh sharedkey: SessionKey;
recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer));
send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),
CloudServer}pk(Monitor));
recv_3(Monitor,CloudServer, {info} sharedkey);
claim_CloudServer1(CloudServer,Niagree);
claim_CloudServer2(CloudServer,Nisynch);
claim_CloudServer3(CloudServer,Alive);
claim_CloudServer4(CloudServer,Secret, info);
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment