SlideShare a Scribd company logo
Copyright ©2016, @leomrlima
DetroitJUG
IoT Security: Cases and Methods
Leonardo Lima
@leomrlima
http://v2com.mobi
Copyright ©2016, @leomrlima
DetroitJUG About me
Leonardo Lima
•Computer engineer, server & embedded SW developer
•From São Paulo, Brasil, now in Austin, TX
•CTO at
•Spec Lead – JSR363
•V2COM’s Representative at JCP Executive Committee
[www.linkedin.com/in/leomrlima]
Copyright ©2016, @leomrlima
DetroitJUG
INTERMISSION!
THE JAVA COMMUNITY PROCESS
Copyright ©2016, @leomrlima
DetroitJUG What’s the JCP and why should I care?
It’s the way to make Java a healthy, multi-vendor
environment
What happens here impacts on your job
YOU can be part of the change you want for the platform
It’s easy for YOU to join and start: just fill a webform!
Copyright ©2016, @leomrlima
DetroitJUG But… how do I join?
1. Go to jcp.org
2. Register to use the site
(there’s a button on the left
side menu)
3. Use the ”get involved
section”
4. Remember to vote on the EC
election if you join until
tomorrow!
Copyright ©2016, @leomrlima
DetroitJUG
ASPECTS OF IOT SECURITY
Copyright ©2016, @leomrlima
DetroitJUG On connecting things
The buzz of IoT is connecting things
Does everything needs to be connected?
The implications of connectivity
Copyright ©2016, @leomrlima
DetroitJUG In a study…
Attacks on Internet of Things devices will increase rapidly due to
hypergrowth in the number of connected objects, poor security
hygiene, and the high value of data on IoT devices.
Copyright ©2016, @leomrlima
DetroitJUG
RECENT ATTACKS AND EXPOSURES
Copyright ©2016, @leomrlima
DetroitJUG Cameras
“Every camera [out of 9 models] had one hidden account that a consumer
can’t change because it’s hard coded or not easily accessible. Whether
intended for admin or support, it gives an outsider backdoor access to
the camera.”
Copyright ©2016, @leomrlima
DetroitJUG Barbies
”On the service side, ToyTalk’s server domain was susceptible to a known
SSL encryption flaw called POODLE, which could allow attackers to
steal communications and other data. A credentialing issue could also
let attackers probe for further vulnerabilities.”
Copyright ©2016, @leomrlima
DetroitJUG Cars
As the two hackers remotely toyed with the
air-conditioning, radio, and windshield
wipers, I mentally congratulated myself on
my courage under pressure. That’s when
they cut the transmission.
Immediately my accelerator stopped working.
As I frantically pressed the pedal and
watched the RPMs climb, the Jeep lost half
its speed, then slowed to a crawl. This
occurred just as I reached a long overpass,
with no shoulder to offer an escape. The
experiment had ceased to be fun.
Copyright ©2016, @leomrlima
DetroitJUG Electrical grid
He watched as [the mouse] navigated
purposefully toward buttons
controlling the circuit breakers at a
substation in the region and then
clicked on a box to open the breakers
and take the substation offline. A
dialogue window popped up on screen
asking to confirm the action, and the
operator stared dumbfounded as the
cursor glided to the box and clicked to
affirm. Somewhere in a region outside
the city he knew that thousands of
residents had just lost their lights and
heaters.
Copyright ©2016, @leomrlima
DetroitJUG Zombie IoT army!
Massive DDoS attack – 10s of millions –
in DNS infrastructure (from Dyn) last
Friday (October 21, 2016)
Mirai botnet was created exploiting the
vulnerabilities just described (default
passwords)
The code for ”recruiting” devices was
open-sourced, so anyone can take a
swing
Copyright ©2016, @leomrlima
DetroitJUG Zombie IoT army – The attack
Copyright ©2016, @leomrlima
DetroitJUG Zombie IoT army - the virus
Mirai’s attack function enables it to
launch HTTP floods and various
network (OSI layer 3-4) DDoS
attacks.
For network layer assaults, Mirai is
capable of launching GRE IP and
GRE ETH floods, as well as SYN and
ACK floods, STOMP (Simple Text
Oriented Message Protocol) floods,
DNS floods and UDP flood attacks.
Mirai uses a brute force technique for
guessing passwords
a.k.a. dictionary attacks based on
the following list
Another interesting thing about Mirai
is its “territorial” nature. The
malware holds several killer scripts
meant to eradicate other worms and
Trojans, as well as prohibiting
remote connection attempts of the
hijacked device.
Copyright ©2016, @leomrlima
DetroitJUG Zombie IoT army - the cure
1. Stop using default/generic passwords.
2. Disable all remote (WAN) access to your devices. To verify that your
device is not open to remote access, you can scan the following ports:
SSH (22), Telnet (23) and HTTP/HTTPS (80/443).
Copyright ©2016, @leomrlima
DetroitJUG IoT Security
The Industrial Internet of Things Volume G4: Security Framework
Many different aspects, like IT/OT convergence
Copyright ©2016, @leomrlima
DetroitJUG IoT Security is ”messy”…
Copyright ©2016, @leomrlima
DetroitJUG Security, Trust & Privacy
• Endpoint security
• Communication security between the endpoints
• Data distribution and secure storage
• Management and monitoring security of both the
endpoints and the communication mechanism
Copyright ©2016, @leomrlima
DetroitJUG ”Broad security”
• Trust – data is coming from known device
• Integrity – data was not tampered with since it
was sent from the device
• Uniqueness – data is not being ”reused”
• Privacy – data is not being used by unauthorized
parties
Copyright ©2016, @leomrlima
DetroitJUG Security X Easiness X Cost
• These 3 variables can’t be maximized at the same
time – if you want to maximize one or two, the third
will be minimized
• Many of the attacks mentioned before happened
because of ”wrong” maximization.
• Security aspects have to be thought since the
beginning – adding security later adds more cost and
less security
Copyright ©2016, @leomrlima
DetroitJUG
USING JAVA FOR A (MORE) SECURE IOT
Copyright ©2016, @leomrlima
DetroitJUG Java Security Guidelines
Secure Coding Guidelines for Java SE helps with the most
effective approach to minimizing vulnerabilities is to have
obviously no flaws rather than no obvious flaws
Java Coding Guidelines from CERT is also a good resource to
understand how to program more securely
There’s a page from Oracle that covers many aspects of
security, such as platform security, cryptography and secure
communications
Copyright ©2016, @leomrlima
DetroitJUG Java Cryptography Architecture
Provides Cryptography pluggable
support for many different providers
and capacities.
Supports standards like PKCS#11, TLS
and many others
Standard implementations in Java SE
VMs
https://docs.oracle.com/javase/8/docs/te
chnotes/guides/security/crypto/Crypto
Spec.html
Copyright ©2016, @leomrlima
DetroitJUG JCA Related Libraries
Oracle’s JVM already includes an implementation that can help
you get started with security
The Legion of Bouncy Castle, aka, https://www.bouncycastle.org/,
has many algorithms for JCA and related, such as X.509
certificates, OpenPGP and Lightweight APIs for TLS and DTLS
(RFC 4347)
Security hardware vendors also provide providers for JCA, so you
can leverage different levels of security with no change in code
Copyright ©2016, @leomrlima
DetroitJUG Example of software only encryption
Public/Private Key
Infrastructure +
Symmetric Shared
Secret
Fragility: your keys are
still ”hackable”, as
they’re in non-protected
memory!
Copyright ©2016, @leomrlima
DetroitJUG Secure Element
Provides a safe place to execute sensitive code
and store hardware identity and private keys
Hardware protection to prevent tampering
Many form factors
Copyright ©2016, @leomrlima
DetroitJUG Secure Element
// Create a PKCS#11 cryptographic provider which uses the Secure Element
Provider myPKCS11Provider = new
sun.security.pkcs11.SunPKCS11(PKCS11_CONFIG);
// The PIN code protecting the Security Element
char [] myPIN = {'0','0','0','0'};
// Create a KeyStore corresponding to the Secure Element
KeyStore.PasswordProtection pinProtection = new
KeyStore.PasswordProtection(myPIN);
KeyStore.Builder ksb = KeyStore.Builder.newInstance("PKCS11",
myPKCS11Provider, pinProtection);
KeyStore ks = ksb.getKeyStore();
// Add the SE as a cryptographic provider
Security.addProvider(myPKCS11Provider);
Copyright ©2016, @leomrlima
DetroitJUG Secure Element
// We sign with ECDSA
Signature ecSign = Signature.getInstance("SHA256withECDSA");
// Retrieve the signature key in keystore by it’s alias
PrivateKey privKey = (PrivateKey) ks.getKey("SignKey", myPassword);
// And we sign !
ecSign.initSign(privKey);
ecSign.update(s1.getBytes());
byte[] signature = ecSignCard.sign();
Copyright ©2016, @leomrlima
DetroitJUG JavaCard
Mini-Java for Secure Elements and Trusted Execution Environments
Led by the JavaCard forum (it’s not JCP related)
Copyright ©2016, @leomrlima
DetroitJUG Summary
• Security is an ever increasing concern
• Security has to be thought from the start of a project
• You can be as secure as you want
• Java has lot of infrastructure for secure IoT devices
Copyright ©2016, @leomrlima
DetroitJUG
Q & A
Copyright ©2016, @leomrlima
DetroitJUG
Thanks!

More Related Content

PPTX
IoT Security: Cases and Methods [CON5446]
PPTX
IoT Security Imperative: Stop your Fridge from Sending you Spam
PPTX
Iot(security)
PPTX
IoT Security Training, IoT Security Awareness 2019
PPTX
Internet of Things Security
PDF
Security Fundamental for IoT Devices; Creating the Internet of Secure Things
PPTX
Iot Security
PPTX
Microsoft IoT Security @ Xpand:X:ED Meetup Sydney Feb 2016
IoT Security: Cases and Methods [CON5446]
IoT Security Imperative: Stop your Fridge from Sending you Spam
Iot(security)
IoT Security Training, IoT Security Awareness 2019
Internet of Things Security
Security Fundamental for IoT Devices; Creating the Internet of Secure Things
Iot Security
Microsoft IoT Security @ Xpand:X:ED Meetup Sydney Feb 2016

What's hot (20)

PDF
Ryan Wilson - ryanwilson.com - IoT Security
PDF
Internet of Things (IoT) Security and Privacy Recommendations by Jason Living...
PDF
IOT Security
PPTX
IoT Security Briefing FBI 07 23-2017 final
PDF
Security in the Internet of Things
PDF
IoT security fresh thinking 2017 sep 9
PPT
IoT Security by Sanjay Kumar
PPTX
Security for iot and cloud aug 25b 2017
PDF
IoT Security and Privacy Considerations
PDF
IoT Security in Action - Boston Sept 2015
PPTX
Iot security amar prusty
PDF
IoT Security, Mirai Revisited
PDF
The 5 elements of IoT security
PDF
Mark Horowitz - Stanford Engineering - Securing the Internet of Things
PPTX
IoT Security
PPT
IoT Security – Executing an Effective Security Testing Process
PPTX
IoT Security, Threats and Challenges By V.P.Prabhakaran
PPTX
Introduction to IoT Security
 
PPTX
Practical IoT Security in the Enterprise
PDF
Internet of Things Security Patterns
Ryan Wilson - ryanwilson.com - IoT Security
Internet of Things (IoT) Security and Privacy Recommendations by Jason Living...
IOT Security
IoT Security Briefing FBI 07 23-2017 final
Security in the Internet of Things
IoT security fresh thinking 2017 sep 9
IoT Security by Sanjay Kumar
Security for iot and cloud aug 25b 2017
IoT Security and Privacy Considerations
IoT Security in Action - Boston Sept 2015
Iot security amar prusty
IoT Security, Mirai Revisited
The 5 elements of IoT security
Mark Horowitz - Stanford Engineering - Securing the Internet of Things
IoT Security
IoT Security – Executing an Effective Security Testing Process
IoT Security, Threats and Challenges By V.P.Prabhakaran
Introduction to IoT Security
 
Practical IoT Security in the Enterprise
Internet of Things Security Patterns
Ad

Viewers also liked (20)

PPTX
M2M, Sensor Web, Observations and Measurements
PPTX
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
DOCX
PPTX
Eclipse Science F2F 2016 - JSR 363
PPTX
JSR 363 - The Answer to Life Science and the Internet of Everything
PDF
Developing a Future-Proof IoT Roadmap for Connected Devices and Data
PPTX
Successful Industrial IoT patterns
PPTX
Using Java and Standards for Fast IoT Development [CON5513]
PDF
IoT Cloud2Cloud Connector
PPTX
5 Ways To Fight A DDoS Attack
PPTX
Cloud Computing – Opportunities, Definitions, Options, and Risks (Part-1)
PPTX
The Cloud: Privacy and Forensics
PDF
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
PPTX
IoT DDoS Attacks: the stakes have changed
PDF
IT Service Level Agreement
PPTX
Internet of Things Service Level Agreements: Market Outlook and Forecast for ...
PPSX
The security of SAAS and private cloud
PPT
Cloud Computing Security Challenges
PPTX
Cloud computing security & forensics (manu)
PDF
Trying to bottle the cloud forensic challenges with cloud computing
M2M, Sensor Web, Observations and Measurements
The First IoT JSR: Units of Measurement JSR-363 [BOF5981]
Eclipse Science F2F 2016 - JSR 363
JSR 363 - The Answer to Life Science and the Internet of Everything
Developing a Future-Proof IoT Roadmap for Connected Devices and Data
Successful Industrial IoT patterns
Using Java and Standards for Fast IoT Development [CON5513]
IoT Cloud2Cloud Connector
5 Ways To Fight A DDoS Attack
Cloud Computing – Opportunities, Definitions, Options, and Risks (Part-1)
The Cloud: Privacy and Forensics
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
IoT DDoS Attacks: the stakes have changed
IT Service Level Agreement
Internet of Things Service Level Agreements: Market Outlook and Forecast for ...
The security of SAAS and private cloud
Cloud Computing Security Challenges
Cloud computing security & forensics (manu)
Trying to bottle the cloud forensic challenges with cloud computing
Ad

Similar to IoT Security: Cases and Methods (20)

PPTX
Securing Internet of Things
PPTX
Securing Underprotected APIs - Deja vu Security
PDF
Secureview 3
PDF
Track 5 session 1 - st dev con 2016 - need for security for iot
PPTX
IoTNEXT 2016 - SafeNation Track
PPTX
2017 March ISACA Security Challenges with the Internet of Things - Eric Vande...
PDF
Security challenges for IoT
PPTX
Product security by Blockchain, AI and Security Certs
PDF
CSI - Poor Mans Guide To Espionage Gear
PPTX
Safety vs Security: How to Create Insecure Safety-Critical System
PPT
Firewalls (Distributed computing)
PPTX
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
PPTX
Hugo Fiennes - Security and the IoT - Electric Imp
PDF
Security testing in critical systems
PPT
network security for mobile and others types
PDF
CSW2017 Yuhao song+Huimingliu cyber_wmd_vulnerable_IoT
PPTX
Safe and secure autonomous systems
PPTX
How to create a secure IoT device
PPT
PDF
IoT_and_the_Impact_on_Security_Brian_Knopf_ISSA-OC_July-2014
Securing Internet of Things
Securing Underprotected APIs - Deja vu Security
Secureview 3
Track 5 session 1 - st dev con 2016 - need for security for iot
IoTNEXT 2016 - SafeNation Track
2017 March ISACA Security Challenges with the Internet of Things - Eric Vande...
Security challenges for IoT
Product security by Blockchain, AI and Security Certs
CSI - Poor Mans Guide To Espionage Gear
Safety vs Security: How to Create Insecure Safety-Critical System
Firewalls (Distributed computing)
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
Hugo Fiennes - Security and the IoT - Electric Imp
Security testing in critical systems
network security for mobile and others types
CSW2017 Yuhao song+Huimingliu cyber_wmd_vulnerable_IoT
Safe and secure autonomous systems
How to create a secure IoT device
IoT_and_the_Impact_on_Security_Brian_Knopf_ISSA-OC_July-2014

More from Leonardo De Moura Rocha Lima (10)

PPTX
Top 9 mistakes to avoid when developing with NoSQL
PDF
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
PDF
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
PDF
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
PPTX
Collections.compare(JDK, Eclipse, Guava, Apache...);
PPTX
JSR363 - Devoxx US
PPTX
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
PPTX
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
PDF
A internet das coisas e o futuro - Java ME 8 e adiante!
Top 9 mistakes to avoid when developing with NoSQL
JavaOne 2017 - JNoSQL: The Definitive Solution for Java and NoSQL Database [C...
JavaOne 2017 - Collections.compare:JDK, Eclipse, Guava, Apache... [CON1754]
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
Collections.compare(JDK, Eclipse, Guava, Apache...);
JSR363 - Devoxx US
Secure IoT with Blockchain: Fad or Reality? [BOF5490]
Building a Reliable Remote Communication Device with Java ME8 [CON2285]
A internet das coisas e o futuro - Java ME 8 e adiante!

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
MYSQL Presentation for SQL database connectivity
Review of recent advances in non-invasive hemoglobin estimation
Spectral efficient network and resource selection model in 5G networks
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Electronic commerce courselecture one. Pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
Unlocking AI with Model Context Protocol (MCP)
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
MYSQL Presentation for SQL database connectivity

IoT Security: Cases and Methods

  • 1. Copyright ©2016, @leomrlima DetroitJUG IoT Security: Cases and Methods Leonardo Lima @leomrlima http://v2com.mobi
  • 2. Copyright ©2016, @leomrlima DetroitJUG About me Leonardo Lima •Computer engineer, server & embedded SW developer •From São Paulo, Brasil, now in Austin, TX •CTO at •Spec Lead – JSR363 •V2COM’s Representative at JCP Executive Committee [www.linkedin.com/in/leomrlima]
  • 4. Copyright ©2016, @leomrlima DetroitJUG What’s the JCP and why should I care? It’s the way to make Java a healthy, multi-vendor environment What happens here impacts on your job YOU can be part of the change you want for the platform It’s easy for YOU to join and start: just fill a webform!
  • 5. Copyright ©2016, @leomrlima DetroitJUG But… how do I join? 1. Go to jcp.org 2. Register to use the site (there’s a button on the left side menu) 3. Use the ”get involved section” 4. Remember to vote on the EC election if you join until tomorrow!
  • 7. Copyright ©2016, @leomrlima DetroitJUG On connecting things The buzz of IoT is connecting things Does everything needs to be connected? The implications of connectivity
  • 8. Copyright ©2016, @leomrlima DetroitJUG In a study… Attacks on Internet of Things devices will increase rapidly due to hypergrowth in the number of connected objects, poor security hygiene, and the high value of data on IoT devices.
  • 10. Copyright ©2016, @leomrlima DetroitJUG Cameras “Every camera [out of 9 models] had one hidden account that a consumer can’t change because it’s hard coded or not easily accessible. Whether intended for admin or support, it gives an outsider backdoor access to the camera.”
  • 11. Copyright ©2016, @leomrlima DetroitJUG Barbies ”On the service side, ToyTalk’s server domain was susceptible to a known SSL encryption flaw called POODLE, which could allow attackers to steal communications and other data. A credentialing issue could also let attackers probe for further vulnerabilities.”
  • 12. Copyright ©2016, @leomrlima DetroitJUG Cars As the two hackers remotely toyed with the air-conditioning, radio, and windshield wipers, I mentally congratulated myself on my courage under pressure. That’s when they cut the transmission. Immediately my accelerator stopped working. As I frantically pressed the pedal and watched the RPMs climb, the Jeep lost half its speed, then slowed to a crawl. This occurred just as I reached a long overpass, with no shoulder to offer an escape. The experiment had ceased to be fun.
  • 13. Copyright ©2016, @leomrlima DetroitJUG Electrical grid He watched as [the mouse] navigated purposefully toward buttons controlling the circuit breakers at a substation in the region and then clicked on a box to open the breakers and take the substation offline. A dialogue window popped up on screen asking to confirm the action, and the operator stared dumbfounded as the cursor glided to the box and clicked to affirm. Somewhere in a region outside the city he knew that thousands of residents had just lost their lights and heaters.
  • 14. Copyright ©2016, @leomrlima DetroitJUG Zombie IoT army! Massive DDoS attack – 10s of millions – in DNS infrastructure (from Dyn) last Friday (October 21, 2016) Mirai botnet was created exploiting the vulnerabilities just described (default passwords) The code for ”recruiting” devices was open-sourced, so anyone can take a swing
  • 15. Copyright ©2016, @leomrlima DetroitJUG Zombie IoT army – The attack
  • 16. Copyright ©2016, @leomrlima DetroitJUG Zombie IoT army - the virus Mirai’s attack function enables it to launch HTTP floods and various network (OSI layer 3-4) DDoS attacks. For network layer assaults, Mirai is capable of launching GRE IP and GRE ETH floods, as well as SYN and ACK floods, STOMP (Simple Text Oriented Message Protocol) floods, DNS floods and UDP flood attacks. Mirai uses a brute force technique for guessing passwords a.k.a. dictionary attacks based on the following list Another interesting thing about Mirai is its “territorial” nature. The malware holds several killer scripts meant to eradicate other worms and Trojans, as well as prohibiting remote connection attempts of the hijacked device.
  • 17. Copyright ©2016, @leomrlima DetroitJUG Zombie IoT army - the cure 1. Stop using default/generic passwords. 2. Disable all remote (WAN) access to your devices. To verify that your device is not open to remote access, you can scan the following ports: SSH (22), Telnet (23) and HTTP/HTTPS (80/443).
  • 18. Copyright ©2016, @leomrlima DetroitJUG IoT Security The Industrial Internet of Things Volume G4: Security Framework Many different aspects, like IT/OT convergence
  • 19. Copyright ©2016, @leomrlima DetroitJUG IoT Security is ”messy”…
  • 20. Copyright ©2016, @leomrlima DetroitJUG Security, Trust & Privacy • Endpoint security • Communication security between the endpoints • Data distribution and secure storage • Management and monitoring security of both the endpoints and the communication mechanism
  • 21. Copyright ©2016, @leomrlima DetroitJUG ”Broad security” • Trust – data is coming from known device • Integrity – data was not tampered with since it was sent from the device • Uniqueness – data is not being ”reused” • Privacy – data is not being used by unauthorized parties
  • 22. Copyright ©2016, @leomrlima DetroitJUG Security X Easiness X Cost • These 3 variables can’t be maximized at the same time – if you want to maximize one or two, the third will be minimized • Many of the attacks mentioned before happened because of ”wrong” maximization. • Security aspects have to be thought since the beginning – adding security later adds more cost and less security
  • 23. Copyright ©2016, @leomrlima DetroitJUG USING JAVA FOR A (MORE) SECURE IOT
  • 24. Copyright ©2016, @leomrlima DetroitJUG Java Security Guidelines Secure Coding Guidelines for Java SE helps with the most effective approach to minimizing vulnerabilities is to have obviously no flaws rather than no obvious flaws Java Coding Guidelines from CERT is also a good resource to understand how to program more securely There’s a page from Oracle that covers many aspects of security, such as platform security, cryptography and secure communications
  • 25. Copyright ©2016, @leomrlima DetroitJUG Java Cryptography Architecture Provides Cryptography pluggable support for many different providers and capacities. Supports standards like PKCS#11, TLS and many others Standard implementations in Java SE VMs https://docs.oracle.com/javase/8/docs/te chnotes/guides/security/crypto/Crypto Spec.html
  • 26. Copyright ©2016, @leomrlima DetroitJUG JCA Related Libraries Oracle’s JVM already includes an implementation that can help you get started with security The Legion of Bouncy Castle, aka, https://www.bouncycastle.org/, has many algorithms for JCA and related, such as X.509 certificates, OpenPGP and Lightweight APIs for TLS and DTLS (RFC 4347) Security hardware vendors also provide providers for JCA, so you can leverage different levels of security with no change in code
  • 27. Copyright ©2016, @leomrlima DetroitJUG Example of software only encryption Public/Private Key Infrastructure + Symmetric Shared Secret Fragility: your keys are still ”hackable”, as they’re in non-protected memory!
  • 28. Copyright ©2016, @leomrlima DetroitJUG Secure Element Provides a safe place to execute sensitive code and store hardware identity and private keys Hardware protection to prevent tampering Many form factors
  • 29. Copyright ©2016, @leomrlima DetroitJUG Secure Element // Create a PKCS#11 cryptographic provider which uses the Secure Element Provider myPKCS11Provider = new sun.security.pkcs11.SunPKCS11(PKCS11_CONFIG); // The PIN code protecting the Security Element char [] myPIN = {'0','0','0','0'}; // Create a KeyStore corresponding to the Secure Element KeyStore.PasswordProtection pinProtection = new KeyStore.PasswordProtection(myPIN); KeyStore.Builder ksb = KeyStore.Builder.newInstance("PKCS11", myPKCS11Provider, pinProtection); KeyStore ks = ksb.getKeyStore(); // Add the SE as a cryptographic provider Security.addProvider(myPKCS11Provider);
  • 30. Copyright ©2016, @leomrlima DetroitJUG Secure Element // We sign with ECDSA Signature ecSign = Signature.getInstance("SHA256withECDSA"); // Retrieve the signature key in keystore by it’s alias PrivateKey privKey = (PrivateKey) ks.getKey("SignKey", myPassword); // And we sign ! ecSign.initSign(privKey); ecSign.update(s1.getBytes()); byte[] signature = ecSignCard.sign();
  • 31. Copyright ©2016, @leomrlima DetroitJUG JavaCard Mini-Java for Secure Elements and Trusted Execution Environments Led by the JavaCard forum (it’s not JCP related)
  • 32. Copyright ©2016, @leomrlima DetroitJUG Summary • Security is an ever increasing concern • Security has to be thought from the start of a project • You can be as secure as you want • Java has lot of infrastructure for secure IoT devices

Editor's Notes

  • #2: In developing for IoT, security is not often the highest priority: APIs exposed without care and devices deployed with default passwords become gateways to your network and your data. Many best practices can be used to thwart attacks on your devices, but they have to be thought through from the first architectural design. This session covers many recent IoT attacks, their consequences, and how they could have been prevented. It also explores the many security levels one device can have, from totally exposed to completely secured against physical tampering and identity theft.
  • #8: - Where is the value? - Security and privacy are great implications of connectivity
  • #9: http://www.mcafee.com/us/security-awareness/articles/mcafee-labs-threats-predictions-2015.aspx
  • #10: https://www.wired.com/2015/12/2015-the-year-the-internet-of-things-got-hacked/
  • #11: http://fusion.net/story/192189/internet-connected-baby-monitors-trivial-to-hack/
  • #12: http://www.pcworld.com/article/3012220/security/internet-connected-hello-barbie-doll-can-be-hacked.html
  • #13: https://www.wired.com/2015/07/hackers-remotely-kill-jeep-highway/#slide-2
  • #14: https://www.wired.com/2016/03/inside-cunning-unprecedented-hack-ukraines-power-grid/
  • #15: DDoS data: http://www.dailydot.com/layer8/ddos-mirai-iot-botnet-broken-internet/ Source code release: https://krebsonsecurity.com/2016/10/source-code-for-iot-botnet-mirai-released/
  • #16: Image from http://i.imgur.com/DIvzSFq.png
  • #17: https://www.incapsula.com/blog/malware-analysis-mirai-ddos-botnet.html
  • #18: https://www.incapsula.com/blog/malware-analysis-mirai-ddos-botnet.html
  • #19: http://www.iiconsortium.org/IISF.htm
  • #20: There are many different aspects to consider!
  • #21: Aspects to consider
  • #23: Aspects to consider: there’s no winning it all!!
  • #24: There are many different Java technologies, like JAAS, that are for the server-side of IoT. I considered the embedded side development here.
  • #25: http://www.oracle.com/technetwork/java/seccodeguide-139067.html https://www.securecoding.cert.org/confluence/display/java/Java+Coding+Guidelines http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html
  • #26: https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html
  • #32: http://www.oracle.com/technetwork/java/embedded/javacard/overview/index.html https://javacardforum.com/