SlideShare a Scribd company logo
1 of 17
Download to read offline
1
Sophia Drossopoulou, Imperial College London
Worked on programming language models, design and implementation, ownership types,
session types, Pony.
Proposed type state (Fickle), gradual types, Javascript type inference
Robustness by Design
Robustness goes beyond traditional concerns
1
Sophia Drossopoulou, Imperial College London
Worked on programming language models, design and implementation, ownership types,
session types, Pony.
Proposed type state (Fickle), gradual types, Javascript type inference
Robustness by Design
• closed world
• sufficient conditions for some effect
• about individual functions;
Robustness goes beyond traditional concerns
1
Traditional Specs
Sophia Drossopoulou, Imperial College London
Worked on programming language models, design and implementation, ownership types,
session types, Pony.
Proposed type state (Fickle), gradual types, Javascript type inference
Robustness by Design
• closed world
• sufficient conditions for some effect
• about individual functions;
Robustness goes beyond traditional concerns
1
Traditional Specs Robustness considerations
• open world
• necessary conditions for some effect
• about emergent behaviour
Sophia Drossopoulou, Imperial College London
Worked on programming language models, design and implementation, ownership types,
session types, Pony.
Proposed type state (Fickle), gradual types, Javascript type inference
Robustness by Design
2
Robustness goes beyond traditional concerns
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
Robustness goes beyond traditional concerns
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
Robustness goes beyond traditional concerns
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
Robustness goes beyond traditional concerns
😀
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
class SafeTwo{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeTwo(s,t){
… }
mthd set(s)
{ this.secret=s;}
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
Robustness goes beyond traditional concerns
😀
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
class SafeTwo{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeTwo(s,t){
… }
mthd set(s)
{ this.secret=s;}
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
SafeTwo ⊨ SpecA
Robustness goes beyond traditional concerns
😱
😀
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
class SafeTwo{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeTwo(s,t){
… }
mthd set(s)
{ this.secret=s;}
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
SafeTwo ⊨ SpecA
SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ]
SafeTwo ⊭ SpecB
Robustness goes beyond traditional concerns
😱
😀
😀
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
class SafeTwo{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeTwo(s,t){
… }
mthd set(s)
{ this.secret=s;}
}
class SafeThree{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeThree(s,t){
… }
mthd set(s,sOld)
{ if sOld==secret then
{ secret=s;}}
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
SafeTwo ⊨ SpecA
SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ]
SafeTwo ⊭ SpecB
SafeThree ⊭ SpecB
Robustness goes beyond traditional concerns
😱
😀
😀
😱
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
class SafeTwo{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeTwo(s,t){
… }
mthd set(s)
{ this.secret=s;}
}
class SafeThree{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeThree(s,t){
… }
mthd set(s,sOld)
{ if sOld==secret then
{ secret=s;}}
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
SafeTwo ⊨ SpecA
SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ]
SafeTwo ⊭ SpecB
SpecC: ∀sf:Safe.[ Will(Changes(sf.treasure))
⟶
∃ o:External.Access(o,sf.secret) ]
SafeThree ⊭ SpecB
Robustness goes beyond traditional concerns
😱
😀
😀
😱
2
class SafeOne{
private fld secret;
private fld treasure;
mthd take(s){
if (s==secret)
{ t=treasure;
treasure = null;
return t; } }
constr SafeOne(s,t){
secret=s; treasure = t; }
}
class SafeTwo{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeTwo(s,t){
… }
mthd set(s)
{ this.secret=s;}
}
class SafeThree{
private fld secret;
private fld treasure;
mthd take(s){
…. }
constr SafeThree(s,t){
… }
mthd set(s,sOld)
{ if sOld==secret then
{ secret=s;}}
}
SpecA:
{ true }
sf.take(s)
{ s=sf.secret -> sf.treasurepost = null
∧
s≠sf.secret -> sf.treasurepost = sf.treasurepre }
SafeOne ⊨ SpecA
SafeTwo ⊨ SpecA
SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ]
SafeTwo ⊭ SpecB
SpecC: ∀sf:Safe.[ Will(Changes(sf.treasure))
⟶
∃ o:External.Access(o,sf.secret) ]
SafeThree ⊭ SpecB
SafeTwo ⊭ SpecC
SafeThree ⊨ SpecC
Robustness goes beyond traditional concerns
😱
😀
😀
😀
😀
😱
Work so far
3
Work to do
Robustness by Design
Work so far
3
• designed specification languages
• semantics of the specification
language
• case studies from financial
cyptography and
object capabilities literature
• concepts of trust and risk
Work to do
Robustness by Design
Work so far
3
• designed specification languages
• semantics of the specification
language
• case studies from financial
cyptography and
object capabilities literature
• concepts of trust and risk
Work to do
• desk-reason about adherence to
Robustness Specs
• logic to reason adherence to
Robustness Specs
• testing for adherence to
Robustness Specs
• what if external code is executed
on untrusted machine
Robustness by Design

More Related Content

More from KTN

More from KTN (20)

Building Talent for the Future 2 – Expression of Interest Briefing
Building Talent for the Future 2 – Expression of Interest BriefingBuilding Talent for the Future 2 – Expression of Interest Briefing
Building Talent for the Future 2 – Expression of Interest Briefing
 
Connected and Autonomous Vehicles Cohort Workshop
Connected and Autonomous Vehicles Cohort WorkshopConnected and Autonomous Vehicles Cohort Workshop
Connected and Autonomous Vehicles Cohort Workshop
 
Biodiversity and Food Production: The Future of the British Landscape
Biodiversity and Food Production: The Future of the British LandscapeBiodiversity and Food Production: The Future of the British Landscape
Biodiversity and Food Production: The Future of the British Landscape
 
Engage with...Performance Projects
Engage with...Performance ProjectsEngage with...Performance Projects
Engage with...Performance Projects
 
How to Create a Good Horizon Europe Proposal Webinar
How to Create a Good Horizon Europe Proposal WebinarHow to Create a Good Horizon Europe Proposal Webinar
How to Create a Good Horizon Europe Proposal Webinar
 
Horizon Europe Tackling Diseases and Antimicrobial Resistance (AMR) Webinar a...
Horizon Europe Tackling Diseases and Antimicrobial Resistance (AMR) Webinar a...Horizon Europe Tackling Diseases and Antimicrobial Resistance (AMR) Webinar a...
Horizon Europe Tackling Diseases and Antimicrobial Resistance (AMR) Webinar a...
 
Engage with...Custom Interconnect
Engage with...Custom InterconnectEngage with...Custom Interconnect
Engage with...Custom Interconnect
 
Engage with...ZF
Engage with...ZFEngage with...ZF
Engage with...ZF
 
Engage with...FluxSys
Engage with...FluxSysEngage with...FluxSys
Engage with...FluxSys
 
Made Smarter Innovation: Sustainable Smart Factory Competition Briefing
Made Smarter Innovation: Sustainable Smart Factory Competition BriefingMade Smarter Innovation: Sustainable Smart Factory Competition Briefing
Made Smarter Innovation: Sustainable Smart Factory Competition Briefing
 
Driving the Electric Revolution – PEMD Skills Hub
Driving the Electric Revolution – PEMD Skills HubDriving the Electric Revolution – PEMD Skills Hub
Driving the Electric Revolution – PEMD Skills Hub
 
Medicines Manufacturing Challenge EDI Survey Briefing Webinar
Medicines Manufacturing Challenge EDI Survey Briefing WebinarMedicines Manufacturing Challenge EDI Survey Briefing Webinar
Medicines Manufacturing Challenge EDI Survey Briefing Webinar
 
Horizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | Pitches
Horizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | PitchesHorizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | Pitches
Horizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | Pitches
 
Horizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | Slides
Horizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | SlidesHorizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | Slides
Horizon Europe Clean Energy Webinar - Cluster 5 Destination 3 | Slides
 
Horizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | Slides
Horizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | SlidesHorizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | Slides
Horizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | Slides
 
Horizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | Pitches
Horizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | PitchesHorizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | Pitches
Horizon Europe Quantum Webinar - Cluster 4 Destinations 4 and 5 | Pitches
 
Farming Innovation Programme - Small R&D Partnership Projects - Consortia Bui...
Farming Innovation Programme - Small R&D Partnership Projects - Consortia Bui...Farming Innovation Programme - Small R&D Partnership Projects - Consortia Bui...
Farming Innovation Programme - Small R&D Partnership Projects - Consortia Bui...
 
Net Zero in Medicines Manufacturing: Measuring and Reporting Carbon Footprint
Net Zero in Medicines Manufacturing: Measuring and Reporting Carbon FootprintNet Zero in Medicines Manufacturing: Measuring and Reporting Carbon Footprint
Net Zero in Medicines Manufacturing: Measuring and Reporting Carbon Footprint
 
Horizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | Pitches
Horizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | PitchesHorizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | Pitches
Horizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | Pitches
 
Horizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | Slides
Horizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | SlidesHorizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | Slides
Horizon Europe Clean Transport Webinar - Cluster 5 Destination 5 | Slides
 

Recently uploaded

Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman MuscatAbortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion pills in Kuwait Cytotec pills in Kuwait
 
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
awasv46j
 
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
instagramfab782445
 
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
wpkuukw
 
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
wpkuukw
 
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
ehyxf
 
Resume all my skills and educations and achievement
Resume all my skills and educations and  achievement Resume all my skills and educations and  achievement
Resume all my skills and educations and achievement
210303105569
 
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
yhavx
 
Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...
Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...
Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...
drmarathore
 
ab-initio-training basics and architecture
ab-initio-training basics and architectureab-initio-training basics and architecture
ab-initio-training basics and architecture
saipriyacoool
 
一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证
一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证
一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证
eqaqen
 
Design-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora AgencyDesign-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora Agency
Isadora Agency
 
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
CristineGraceAcuyan
 
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 
Minimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptxMinimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptx
balqisyamutia
 

Recently uploaded (20)

Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman MuscatAbortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
Abortion Pills in Oman (+918133066128) Cytotec clinic buy Oman Muscat
 
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
 
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
 
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
一比一定(购)卡尔顿大学毕业证(CU毕业证)成绩单学位证
 
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
一比一定(购)滑铁卢大学毕业证(UW毕业证)成绩单学位证
 
Pondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime Pondicherry
Pondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime PondicherryPondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime Pondicherry
Pondicherry Escorts Service Girl ^ 9332606886, WhatsApp Anytime Pondicherry
 
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
 
Resume all my skills and educations and achievement
Resume all my skills and educations and  achievement Resume all my skills and educations and  achievement
Resume all my skills and educations and achievement
 
Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...
Just Call Vip call girls Kasganj Escorts ☎️8617370543 Two shot with one girl ...
 
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
一比一原版(ANU毕业证书)澳大利亚国立大学毕业证原件一模一样
 
Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...
Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...
Abortion pills in Kuwait 🚚+966505195917 but home delivery available in Kuwait...
 
ab-initio-training basics and architecture
ab-initio-training basics and architectureab-initio-training basics and architecture
ab-initio-training basics and architecture
 
一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证
一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证
一比一定(购)西悉尼大学毕业证(WSU毕业证)成绩单学位证
 
Design-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora AgencyDesign-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora Agency
 
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
Just Call Vip call girls Fatehpur Escorts ☎️8617370543 Two shot with one girl...
 
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
Q4-Trends-Networks-Module-3.pdfqquater days sheets123456789
 
Furniture & Joinery Details_Designs.pptx
Furniture & Joinery Details_Designs.pptxFurniture & Joinery Details_Designs.pptx
Furniture & Joinery Details_Designs.pptx
 
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdfJordan_Amanda_DMBS202404_PB1_2024-04.pdf
Jordan_Amanda_DMBS202404_PB1_2024-04.pdf
 
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Meerut [ 7014168258 ] Call Me For Genuine Models We...
 
Minimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptxMinimalist Orange Portfolio by Slidesgo.pptx
Minimalist Orange Portfolio by Slidesgo.pptx
 

Digital Security by Design: Robustness by Design - Sophia Drossopoulou, Imperial College London

  • 1. 1 Sophia Drossopoulou, Imperial College London Worked on programming language models, design and implementation, ownership types, session types, Pony. Proposed type state (Fickle), gradual types, Javascript type inference Robustness by Design
  • 2. Robustness goes beyond traditional concerns 1 Sophia Drossopoulou, Imperial College London Worked on programming language models, design and implementation, ownership types, session types, Pony. Proposed type state (Fickle), gradual types, Javascript type inference Robustness by Design
  • 3. • closed world • sufficient conditions for some effect • about individual functions; Robustness goes beyond traditional concerns 1 Traditional Specs Sophia Drossopoulou, Imperial College London Worked on programming language models, design and implementation, ownership types, session types, Pony. Proposed type state (Fickle), gradual types, Javascript type inference Robustness by Design
  • 4. • closed world • sufficient conditions for some effect • about individual functions; Robustness goes beyond traditional concerns 1 Traditional Specs Robustness considerations • open world • necessary conditions for some effect • about emergent behaviour Sophia Drossopoulou, Imperial College London Worked on programming language models, design and implementation, ownership types, session types, Pony. Proposed type state (Fickle), gradual types, Javascript type inference Robustness by Design
  • 5. 2 Robustness goes beyond traditional concerns
  • 6. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } Robustness goes beyond traditional concerns
  • 7. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } Robustness goes beyond traditional concerns
  • 8. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA Robustness goes beyond traditional concerns 😀
  • 9. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } class SafeTwo{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeTwo(s,t){ … } mthd set(s) { this.secret=s;} } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA Robustness goes beyond traditional concerns 😀
  • 10. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } class SafeTwo{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeTwo(s,t){ … } mthd set(s) { this.secret=s;} } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA SafeTwo ⊨ SpecA Robustness goes beyond traditional concerns 😱 😀
  • 11. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } class SafeTwo{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeTwo(s,t){ … } mthd set(s) { this.secret=s;} } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA SafeTwo ⊨ SpecA SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ] SafeTwo ⊭ SpecB Robustness goes beyond traditional concerns 😱 😀 😀
  • 12. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } class SafeTwo{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeTwo(s,t){ … } mthd set(s) { this.secret=s;} } class SafeThree{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeThree(s,t){ … } mthd set(s,sOld) { if sOld==secret then { secret=s;}} } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA SafeTwo ⊨ SpecA SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ] SafeTwo ⊭ SpecB SafeThree ⊭ SpecB Robustness goes beyond traditional concerns 😱 😀 😀 😱
  • 13. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } class SafeTwo{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeTwo(s,t){ … } mthd set(s) { this.secret=s;} } class SafeThree{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeThree(s,t){ … } mthd set(s,sOld) { if sOld==secret then { secret=s;}} } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA SafeTwo ⊨ SpecA SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ] SafeTwo ⊭ SpecB SpecC: ∀sf:Safe.[ Will(Changes(sf.treasure)) ⟶ ∃ o:External.Access(o,sf.secret) ] SafeThree ⊭ SpecB Robustness goes beyond traditional concerns 😱 😀 😀 😱
  • 14. 2 class SafeOne{ private fld secret; private fld treasure; mthd take(s){ if (s==secret) { t=treasure; treasure = null; return t; } } constr SafeOne(s,t){ secret=s; treasure = t; } } class SafeTwo{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeTwo(s,t){ … } mthd set(s) { this.secret=s;} } class SafeThree{ private fld secret; private fld treasure; mthd take(s){ …. } constr SafeThree(s,t){ … } mthd set(s,sOld) { if sOld==secret then { secret=s;}} } SpecA: { true } sf.take(s) { s=sf.secret -> sf.treasurepost = null ∧ s≠sf.secret -> sf.treasurepost = sf.treasurepre } SafeOne ⊨ SpecA SafeTwo ⊨ SpecA SpecB: ∀sf:Safe.[ sf.secretpre = sf.secretpost ] SafeTwo ⊭ SpecB SpecC: ∀sf:Safe.[ Will(Changes(sf.treasure)) ⟶ ∃ o:External.Access(o,sf.secret) ] SafeThree ⊭ SpecB SafeTwo ⊭ SpecC SafeThree ⊨ SpecC Robustness goes beyond traditional concerns 😱 😀 😀 😀 😀 😱
  • 15. Work so far 3 Work to do Robustness by Design
  • 16. Work so far 3 • designed specification languages • semantics of the specification language • case studies from financial cyptography and object capabilities literature • concepts of trust and risk Work to do Robustness by Design
  • 17. Work so far 3 • designed specification languages • semantics of the specification language • case studies from financial cyptography and object capabilities literature • concepts of trust and risk Work to do • desk-reason about adherence to Robustness Specs • logic to reason adherence to Robustness Specs • testing for adherence to Robustness Specs • what if external code is executed on untrusted machine Robustness by Design