SlideShare a Scribd company logo
A294
Node.js – FIPS 140-2 support in
Node.js
Michael Dawson, IBM Runtime Technologies
© 2016 IBM Corporation 2
About Michael Dawson
Senior Software Developer @ IBM
IBM Runtime Technologies Node.js Technical Lead
Node.js collaborator and CTC member
Active in LTS, build, benchmarking , api
and post-mortem working groups
Contact me:
michael_dawson@ca.ibm.com
Twitter: @mhdawson1
https://www.linkedin.com/in/michael-dawson-6051282
© 2016 IBM Corporation 3
Agenda
• Node.js quick intro
• FIPS 140-2 intro
• OpenSSL integration
• Community History
• Command Line Options
• Gotchas – What to look out for
• Bluemix Example
• Express Example
© 2016 IBM Corporation 4
Node.js – Quick Intro
© 2016 IBM Corporation 5
Node.js – Quick Intro
• JavaScript != Java
• Node.js = Server-side JavaScript
• Event-oriented
• Non-blocking
• Asynchronous
• Uses OpenSSL as cryptographic library
http://www.modulecounts.com/
© 2016 IBM Corporation
• There is a module for that
• 300K modules
• #1 on module counts
• #1 on Github (#projects)
• #1 on StackOverflow(2015)
Node.js – Quick Intro
6
© 2016 IBM Corporation
• Most used runtime in
Bluemix
TM
Node.js – Quick Intro
7
© 2016 IBM Corporation
V8 – Javascript
Engine
V8
JavaScript Engine Libuv
Other
Dependencies
ICU
Cares
Zlib
http_parser
…
Node Binding Layer
Operating System
Node Libraries
Modules (npm or local) + Application
OpenSSL
Node.js – Quick Intro
8
© 2016 IBM Corporation
9
Node.js – crypto APIs
https://nodejs.org/api/crypto.html
• Certificate
• Cipher
• Decipher
• DiffieHellman
• ECDH
• Hash
• HMAC
• Sign
• Verify
© 2016 IBM Corporation
10
Node.js – HTTPS
https://nodejs.org/api/https.html
• HTTPS
© 2016 IBM Corporation 11
Node.js – HTTPS Example
© 2016 IBM Corporation 12
FIPS Intro
© 2016 IBM Corporation 13
FIPS Intro – Why
• Cryptography is an important Tool
• Provides a way to evaluate modules
• May be contract requirements !
© 2016 IBM Corporation 14
• Federal Information Processing Standard (FIPS) –
Publication 140-2
Security Requirements for Cryptographic Modules
• US government security standard
• Co-developed with Canadian Communications
Security Establishment (CSE)
• Independent labs do evaluation
http://csrc.nist.gov/groups/STM/cmvp/standards.html
FIPS Intro
© 2016 IBM Corporation 15
1. Cryptographic Module Specification
2. Cryptographic Module Ports and Interfaces
3. Roles, Services, and Authentication
4. Finite State Model
5. Physical Security
6. Operational Environment
7. Cryptographic Key Management
8. Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC)
9. Self Tests
10.Design Assurance
11.Mitigation of Other Attack
FIPS Intro – Evaluation Areas
© 2016 IBM Corporation 16
FIPS Intro - Levels
• 4 Levels
• Level 1
• 1+ approved algorithms
• Level 2
• Tamper evidence
• Level 3
• Zeroization
• Level 4
• Response to all tamper attempts
Software Generally limited
To Level 1 !
© 2016 IBM Corporation 17
FIPS Intro
• Approved Security Functions
http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf
• AES, Triple-DES
• DSS, DSA, RSA and ECDSA
• SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-
512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128,
SHAKE256
No MD5 !
© 2016 IBM Corporation
18
Node.js – HTTPS
https://nodejs.org/api/https.html
• HTTPS
• Additional constraints
may apply – ex:
• https://wiki.openssl.
org/index.php/FIPS_
mode_and_TLS
• --tls-cipher-list
© 2016 IBM Corporation 19
FIPS Intro – Europe ?
• Common Criteria
• EAL 1 through 7
• Different profiles
• FIPS still used/potentially accepted
• Higher availability
• Recommendations for TSPs -
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0ahUKEwjm-
oqC0bXPAhUJ4SYKHf3wDV4QFghGMAY&url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.enisa.europa.eu%2Fpublications%2F
tsp1-framework%2Fat_download%2FfullReport&usg=AFQjCNGe0RewmuzZL4AWyDmy00o-
T0TLfA&sig2=EPdoyDyU6rA93SIBuuDEmw&cad=rja
OpenSSL Integration
© 2016 IBM Corporation 20
OpenSSL Integration
© 2016 IBM Corporation
• Node.js Leverages
OpenSSL certifications
• FIPs on for Linux so far
• https://www.openssl.org/
21
© 2016 IBM Corporation 22
OpenSSL Integration - Certifcation
• http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-
all.htm#1747
© 2016 IBM Corporation 23
OpenSSL Integration – Security Guide
• Security Policy (36 pages)
• https://www.openssl.org/docs/fips/SecurityPolicy-2.0.9.pdf
• User Guide (221 pages)
• https://www.openssl.org/docs/fips/UserGuide-2.0.pdf
• Trusted Path Requirement
• User Affirmation
© 2016 IBM Corporation 24
OpenSSL Integration
fipscanister.o
OpenSSL/
libcrypto.a
$(OPENSSLDIR)/fips/fipsld –o ….
If (FIPS_mode_set(1)) {
…
} else {
// indicate error
}
© 2016 IBM Corporation 25
Building
• https://github.com/n
odejs/node/blob/ma
ster/BUILDING.md
• Must follow to the
letter
© 2016 IBM Corporation 26
OpenSSL Integration – Application
• Just using FIPS capable Node.js is not enough
• You have to use correctly (ex TLS example)
• Demonstrate to ‘customer’ you did the right thing
• It is, however, an enabler
© 2016 IBM Corporation 27
Community History
© 2016 IBM Corporation 28
Community History
• May 2015 – discussion starts
• https://github.com/nodejs/node-v0.x-archive/issues/25463
• Jun 2015 – PR 1890
© 2016 IBM Corporation 29
Community History
• Nov 2015 – Issue 3760
• PRs 3752, 3753, 3754,
3755, 3756, 3757, 3758,3759
• Added to community CI
© 2016 IBM Corporation 30
Community History
• Dec 2015 – NPM cleanup
• Feb 2016 – Command Line Improvement
© 2016 IBM Corporation 31
API and runtime options (v6.x)
© 2016 IBM Corporation 32
API and runtime options (v6.x)
• Command Line:
• --enable-fips
• --force-fips
• API
• -crypto.fips
• OpenSSL Config file
[ evp_sect ]
# Set to "yes" to enter FIPS mode if supported
fips_mode = yes
© 2016 IBM Corporation 33
API and runtime options (v6.x)
• Force prevents
change
© 2016 IBM Corporation 34
API and runtime options (v6.x)
• You need to be
state aware
• Error if already
enabled
© 2016 IBM Corporation 35
Validating you have right version
© 2016 IBM Corporation
36
Gotchas
© 2016 IBM Corporation
37
Gotchas
• Existing code may no longer run
© 2016 IBM Corporation
OPENSSL_FIPS=1 openssl req -x509 -newkey rsa:2048 -keyout httpd.key.pem -
out httpd.crt.pem -days XXX
• Certificates and keys
• Generation
• Only use FIPs algorithms
• Generate with FIPs module
© 2016 IBM Corporation
38
Gotchas
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
Bluemix Example
© 2016 IBM Corporation
39
cf set-env
FIPS_MODE true
Try it on
out on
Bluemix
A294  fips support in node
A294  fips support in node
A294  fips support in node
Express Example
© 2016 IBM Corporation
44
Express Example
© 2016 IBM Corporation
45
Express Example
© 2016 IBM Corporation
46
© 2016 IBM Corporation 47
Summary
• Node.js quick intro
• FIPS 140-2 intro
• OpenSSL integration
• Community History
• Command Line Options
• Gotchas – What to look out for
• Bluemix Example
• Express Example
Michael Dawson
Thank you very much.
IBM
Runtime Technologies
michael_dawson@ca.ibm.com
© 2016 IBM Corporation 48
© 2016 IBM Corporation 49
Your feedback is valuable
Please complete your session or lab evaluation!
Session number [A294]
Provide your evaluations by:
Evaluation forms:
Fill out a form at the end of each session
Paper forms are located in each of the
session or lab rooms
Complete the session survey on Event
Connect Portal:
https://portal.ibmeventconnect.com/ma
drid2016
Select Sessions, then Session Finder, and
complete the survey
- Or -
IBMTA16
Twitter
@IBMCloud | @IBMWebSphere
LinkedIn
IBM Cloud
YouTube
IBM Cloud | IBM WebSphere
Facebook
IBM Cloud
ibmcloud
Facebook Event Page
IBM Techical Academy 2016
websphere
Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission
from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial
publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED
"AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS
INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and
services are warranted according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers
have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in
which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and
discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their
specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and
interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such
laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not
tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products.
Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the
ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual
property right.
• IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™,
FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand,
ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®,
PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®,
StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International
Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current
list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
• Node.js is an official trademark of Joyent. IBM SDK for Node.js is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
• Java, JavaScript and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.
• npm is a trademark of npm, Inc.

More Related Content

PDF
ThreadFix 2.4: Maximizing the Impact of Your Application Security Resources
Denim Group
 
PPTX
Fortify On Demand and ShadowLabs
jasonhaddix
 
PDF
Monitoring Attack Surface to Secure DevOps Pipelines
Denim Group
 
PPTX
Bluemix Local – Relay Options and Challenges
Eduardo Patrocinio
 
PDF
Software Security for Project Managers: What Do You Need To Know?
Denim Group
 
PDF
What Permissions Does Your Database User REALLY Need?
Denim Group
 
PPTX
How iOS and Android Handle Security Webinar
Denim Group
 
PDF
The Magic of Symbiotic Security
Denim Group
 
ThreadFix 2.4: Maximizing the Impact of Your Application Security Resources
Denim Group
 
Fortify On Demand and ShadowLabs
jasonhaddix
 
Monitoring Attack Surface to Secure DevOps Pipelines
Denim Group
 
Bluemix Local – Relay Options and Challenges
Eduardo Patrocinio
 
Software Security for Project Managers: What Do You Need To Know?
Denim Group
 
What Permissions Does Your Database User REALLY Need?
Denim Group
 
How iOS and Android Handle Security Webinar
Denim Group
 
The Magic of Symbiotic Security
Denim Group
 

What's hot (20)

PDF
Vulnerability Management In An Application Security World
Denim Group
 
PDF
Zimbra versus exchange 2010 presentation
solarisyourep
 
PDF
Smart Phones Dumb Apps
Denim Group
 
PDF
ThreadFix 2.1 and Your Application Security Program
Denim Group
 
PDF
VMworld Europe 2014: Preview the Latest Release from AirWatch
VMworld
 
PPTX
VA_InterConnect2017
Canturk Isci
 
PPTX
CGM versus SVG
Larson Software Technology
 
PPTX
Building a Mobile Security Program
Denim Group
 
PPTX
DEVNET-1121 Customizing Cisco Video Access for Guests
Cisco DevNet
 
PDF
Top Strategies to Capture Security Intelligence for Applications
Denim Group
 
PDF
Vulnerability Management In An Application Security World: AppSecDC
Denim Group
 
PDF
Deploy, Monitor and Manage in Style with WebSphere Liberty Admin Center
WASdev Community
 
PDF
Do You Have a Scanner or Do You Have a Scanning Program? (AppSecEU 2013)
Denim Group
 
PDF
News from hursley jens diedrichsen - may 2014
Jens Diedrichsen
 
PDF
ThreadFix 2.2 Preview Webinar with Dan Cornell
Denim Group
 
PDF
Benchmarking Web Application Scanners for YOUR Organization
Denim Group
 
PPTX
BIG-IP Data Center Firewall Solution
F5 Networks
 
PDF
Building Your Application Security Data Hub - OWASP AppSecUSA
Denim Group
 
PDF
Managing Your Application Security Program with the ThreadFix Ecosystem
Denim Group
 
PDF
Running a Software Security Program with Open Source Tools (Course)
Denim Group
 
Vulnerability Management In An Application Security World
Denim Group
 
Zimbra versus exchange 2010 presentation
solarisyourep
 
Smart Phones Dumb Apps
Denim Group
 
ThreadFix 2.1 and Your Application Security Program
Denim Group
 
VMworld Europe 2014: Preview the Latest Release from AirWatch
VMworld
 
VA_InterConnect2017
Canturk Isci
 
Building a Mobile Security Program
Denim Group
 
DEVNET-1121 Customizing Cisco Video Access for Guests
Cisco DevNet
 
Top Strategies to Capture Security Intelligence for Applications
Denim Group
 
Vulnerability Management In An Application Security World: AppSecDC
Denim Group
 
Deploy, Monitor and Manage in Style with WebSphere Liberty Admin Center
WASdev Community
 
Do You Have a Scanner or Do You Have a Scanning Program? (AppSecEU 2013)
Denim Group
 
News from hursley jens diedrichsen - may 2014
Jens Diedrichsen
 
ThreadFix 2.2 Preview Webinar with Dan Cornell
Denim Group
 
Benchmarking Web Application Scanners for YOUR Organization
Denim Group
 
BIG-IP Data Center Firewall Solution
F5 Networks
 
Building Your Application Security Data Hub - OWASP AppSecUSA
Denim Group
 
Managing Your Application Security Program with the ThreadFix Ecosystem
Denim Group
 
Running a Software Security Program with Open Source Tools (Course)
Denim Group
 
Ad

Viewers also liked (20)

PDF
Encoder For Windmill 02
Xinhua LI
 
PDF
Ali Gambarchayev
Rustam Islamov
 
PDF
Mila - DHET EXAM CENTRE LETTER
Mawande Jozana
 
PDF
Desenvolvimento Mobile Web e PHP no Sinform2010
Bruno Fernandes "PorKaria"
 
PDF
Educação inclusiva 2
Raimundo Junior
 
PDF
Certificate_Anna Pogrebniak_signed
Anna Pogrebniak
 
PDF
Gina depaul nomination
Gina Santucci
 
PDF
Wall Elevation A1
Rashmi Agrawal
 
PDF
Trisakti certificate
Haris Johanes
 
PDF
Mantenimiento preventivo de teclado
Guisella Barajas
 
PDF
Curso curicular 4 ano - Knowledge translation
David Rodrigues
 
DOCX
Digitron1
jjoovvaann
 
PDF
Animal Hospital Elevation
Jon Fitzgerald
 
PDF
BSI- Design Controls Cert
Laura Boyd
 
PDF
Incendios forestales pc
Mine Arellano Gutierrez
 
DOC
Http
Fatimah Ali
 
ODP
PHP no mundo Mobile
Bruno Fernandes "PorKaria"
 
PPS
Introdução ao Spider CPM (5)
Peter Mello
 
PDF
230712 cm incendi empordà
Creu Roja a Catalunya
 
Encoder For Windmill 02
Xinhua LI
 
Ali Gambarchayev
Rustam Islamov
 
Mila - DHET EXAM CENTRE LETTER
Mawande Jozana
 
Desenvolvimento Mobile Web e PHP no Sinform2010
Bruno Fernandes "PorKaria"
 
Educação inclusiva 2
Raimundo Junior
 
Certificate_Anna Pogrebniak_signed
Anna Pogrebniak
 
Gina depaul nomination
Gina Santucci
 
Wall Elevation A1
Rashmi Agrawal
 
Trisakti certificate
Haris Johanes
 
Mantenimiento preventivo de teclado
Guisella Barajas
 
Curso curicular 4 ano - Knowledge translation
David Rodrigues
 
Digitron1
jjoovvaann
 
Animal Hospital Elevation
Jon Fitzgerald
 
BSI- Design Controls Cert
Laura Boyd
 
Incendios forestales pc
Mine Arellano Gutierrez
 
PHP no mundo Mobile
Bruno Fernandes "PorKaria"
 
Introdução ao Spider CPM (5)
Peter Mello
 
230712 cm incendi empordà
Creu Roja a Catalunya
 
Ad

Similar to A294 fips support in node (20)

PDF
Cascon intro
Michael Dawson
 
PDF
A301 ctu madrid2016-monitoring
Michael Dawson
 
PPT
HIA 1015 Speed the Development of Robust Integrations with IBM Integration Bu...
Karen Broughton-Mabbitt
 
PDF
The Future of DevOps and UrbanCode
IBM UrbanCode Products
 
PDF
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM France Lab
 
PDF
DevOps adoption in the enterprise
Sanjeev Sharma
 
PDF
How to Balance System Speed and Risk for Multi-Platform Innovation
Claudia Ring
 
PPTX
Bluemix Overview & Demo
IBM
 
PPTX
AWS DevDay Cologne - CI/CD for modern applications
Cobus Bernard
 
PDF
IBM WebSphere Liberty and Docker Deep Dive
David Currie
 
PPTX
Track A-3: Drive Innovation & Reduce Costs with Managed Services
scoopnewsgroup
 
PDF
A295 nodejs-knowledge-accelerator
Michael Dawson
 
PDF
Bluemix cfmeetup
Lawrence Crowther
 
PDF
Optimize your CI/CD with GitLab and AWS
DevOps.com
 
PDF
UrbanCode Deploy DevOps Best Practices
Michael Elder
 
PDF
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
Sanjeev Sharma
 
PPTX
IBM Connections Cloud Application Development Strategy
Luis Benitez
 
PDF
Service Testing & Virtualization in an Enterprise Environments
DevOps for Enterprise Systems
 
PDF
Hia 1689-techinical introduction-to_iib
Andrew Coleman
 
PPTX
IBM i at the eart of cognitive solutions
David Spurway
 
Cascon intro
Michael Dawson
 
A301 ctu madrid2016-monitoring
Michael Dawson
 
HIA 1015 Speed the Development of Robust Integrations with IBM Integration Bu...
Karen Broughton-Mabbitt
 
The Future of DevOps and UrbanCode
IBM UrbanCode Products
 
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM France Lab
 
DevOps adoption in the enterprise
Sanjeev Sharma
 
How to Balance System Speed and Risk for Multi-Platform Innovation
Claudia Ring
 
Bluemix Overview & Demo
IBM
 
AWS DevDay Cologne - CI/CD for modern applications
Cobus Bernard
 
IBM WebSphere Liberty and Docker Deep Dive
David Currie
 
Track A-3: Drive Innovation & Reduce Costs with Managed Services
scoopnewsgroup
 
A295 nodejs-knowledge-accelerator
Michael Dawson
 
Bluemix cfmeetup
Lawrence Crowther
 
Optimize your CI/CD with GitLab and AWS
DevOps.com
 
UrbanCode Deploy DevOps Best Practices
Michael Elder
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
Sanjeev Sharma
 
IBM Connections Cloud Application Development Strategy
Luis Benitez
 
Service Testing & Virtualization in an Enterprise Environments
DevOps for Enterprise Systems
 
Hia 1689-techinical introduction-to_iib
Andrew Coleman
 
IBM i at the eart of cognitive solutions
David Spurway
 

More from Michael Dawson (15)

PDF
Index 2018 talk to your code
Michael Dawson
 
PDF
Index 2018 node.js what's next
Michael Dawson
 
PPTX
N api - node interactive 2017
Michael Dawson
 
PDF
N api-node summit-2017-final
Michael Dawson
 
PDF
Accelerate your digital transformation
Michael Dawson
 
PDF
Ask us anything v9
Michael Dawson
 
PDF
Node.js Community Benchmarking WG update
Michael Dawson
 
PDF
Post mortem talk - Node Interactive EU
Michael Dawson
 
PDF
Update from-build-workgroup
Michael Dawson
 
PDF
Node fips
Michael Dawson
 
PDF
Micro app-framework - NodeLive Boston
Michael Dawson
 
PDF
Node liveboston welcome
Michael Dawson
 
PDF
Micro app-framework
Michael Dawson
 
PDF
Node home automation with Node.js and MQTT
Michael Dawson
 
PDF
Java one 2015 - v1
Michael Dawson
 
Index 2018 talk to your code
Michael Dawson
 
Index 2018 node.js what's next
Michael Dawson
 
N api - node interactive 2017
Michael Dawson
 
N api-node summit-2017-final
Michael Dawson
 
Accelerate your digital transformation
Michael Dawson
 
Ask us anything v9
Michael Dawson
 
Node.js Community Benchmarking WG update
Michael Dawson
 
Post mortem talk - Node Interactive EU
Michael Dawson
 
Update from-build-workgroup
Michael Dawson
 
Node fips
Michael Dawson
 
Micro app-framework - NodeLive Boston
Michael Dawson
 
Node liveboston welcome
Michael Dawson
 
Micro app-framework
Michael Dawson
 
Node home automation with Node.js and MQTT
Michael Dawson
 
Java one 2015 - v1
Michael Dawson
 

Recently uploaded (20)

PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Software Development Methodologies in 2025
KodekX
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 

A294 fips support in node

  • 1. A294 Node.js – FIPS 140-2 support in Node.js Michael Dawson, IBM Runtime Technologies
  • 2. © 2016 IBM Corporation 2 About Michael Dawson Senior Software Developer @ IBM IBM Runtime Technologies Node.js Technical Lead Node.js collaborator and CTC member Active in LTS, build, benchmarking , api and post-mortem working groups Contact me: [email protected] Twitter: @mhdawson1 https://www.linkedin.com/in/michael-dawson-6051282
  • 3. © 2016 IBM Corporation 3 Agenda • Node.js quick intro • FIPS 140-2 intro • OpenSSL integration • Community History • Command Line Options • Gotchas – What to look out for • Bluemix Example • Express Example
  • 4. © 2016 IBM Corporation 4 Node.js – Quick Intro
  • 5. © 2016 IBM Corporation 5 Node.js – Quick Intro • JavaScript != Java • Node.js = Server-side JavaScript • Event-oriented • Non-blocking • Asynchronous • Uses OpenSSL as cryptographic library
  • 6. http://www.modulecounts.com/ © 2016 IBM Corporation • There is a module for that • 300K modules • #1 on module counts • #1 on Github (#projects) • #1 on StackOverflow(2015) Node.js – Quick Intro 6
  • 7. © 2016 IBM Corporation • Most used runtime in Bluemix TM Node.js – Quick Intro 7
  • 8. © 2016 IBM Corporation V8 – Javascript Engine V8 JavaScript Engine Libuv Other Dependencies ICU Cares Zlib http_parser … Node Binding Layer Operating System Node Libraries Modules (npm or local) + Application OpenSSL Node.js – Quick Intro 8
  • 9. © 2016 IBM Corporation 9 Node.js – crypto APIs https://nodejs.org/api/crypto.html • Certificate • Cipher • Decipher • DiffieHellman • ECDH • Hash • HMAC • Sign • Verify
  • 10. © 2016 IBM Corporation 10 Node.js – HTTPS https://nodejs.org/api/https.html • HTTPS
  • 11. © 2016 IBM Corporation 11 Node.js – HTTPS Example
  • 12. © 2016 IBM Corporation 12 FIPS Intro
  • 13. © 2016 IBM Corporation 13 FIPS Intro – Why • Cryptography is an important Tool • Provides a way to evaluate modules • May be contract requirements !
  • 14. © 2016 IBM Corporation 14 • Federal Information Processing Standard (FIPS) – Publication 140-2 Security Requirements for Cryptographic Modules • US government security standard • Co-developed with Canadian Communications Security Establishment (CSE) • Independent labs do evaluation http://csrc.nist.gov/groups/STM/cmvp/standards.html FIPS Intro
  • 15. © 2016 IBM Corporation 15 1. Cryptographic Module Specification 2. Cryptographic Module Ports and Interfaces 3. Roles, Services, and Authentication 4. Finite State Model 5. Physical Security 6. Operational Environment 7. Cryptographic Key Management 8. Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC) 9. Self Tests 10.Design Assurance 11.Mitigation of Other Attack FIPS Intro – Evaluation Areas
  • 16. © 2016 IBM Corporation 16 FIPS Intro - Levels • 4 Levels • Level 1 • 1+ approved algorithms • Level 2 • Tamper evidence • Level 3 • Zeroization • Level 4 • Response to all tamper attempts Software Generally limited To Level 1 !
  • 17. © 2016 IBM Corporation 17 FIPS Intro • Approved Security Functions http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf • AES, Triple-DES • DSS, DSA, RSA and ECDSA • SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA- 512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256 No MD5 !
  • 18. © 2016 IBM Corporation 18 Node.js – HTTPS https://nodejs.org/api/https.html • HTTPS • Additional constraints may apply – ex: • https://wiki.openssl. org/index.php/FIPS_ mode_and_TLS • --tls-cipher-list
  • 19. © 2016 IBM Corporation 19 FIPS Intro – Europe ? • Common Criteria • EAL 1 through 7 • Different profiles • FIPS still used/potentially accepted • Higher availability • Recommendations for TSPs - https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&ved=0ahUKEwjm- oqC0bXPAhUJ4SYKHf3wDV4QFghGMAY&url=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fwww.enisa.europa.eu%2Fpublications%2F tsp1-framework%2Fat_download%2FfullReport&usg=AFQjCNGe0RewmuzZL4AWyDmy00o- T0TLfA&sig2=EPdoyDyU6rA93SIBuuDEmw&cad=rja
  • 20. OpenSSL Integration © 2016 IBM Corporation 20
  • 21. OpenSSL Integration © 2016 IBM Corporation • Node.js Leverages OpenSSL certifications • FIPs on for Linux so far • https://www.openssl.org/ 21
  • 22. © 2016 IBM Corporation 22 OpenSSL Integration - Certifcation • http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val- all.htm#1747
  • 23. © 2016 IBM Corporation 23 OpenSSL Integration – Security Guide • Security Policy (36 pages) • https://www.openssl.org/docs/fips/SecurityPolicy-2.0.9.pdf • User Guide (221 pages) • https://www.openssl.org/docs/fips/UserGuide-2.0.pdf • Trusted Path Requirement • User Affirmation
  • 24. © 2016 IBM Corporation 24 OpenSSL Integration fipscanister.o OpenSSL/ libcrypto.a $(OPENSSLDIR)/fips/fipsld –o …. If (FIPS_mode_set(1)) { … } else { // indicate error }
  • 25. © 2016 IBM Corporation 25 Building • https://github.com/n odejs/node/blob/ma ster/BUILDING.md • Must follow to the letter
  • 26. © 2016 IBM Corporation 26 OpenSSL Integration – Application • Just using FIPS capable Node.js is not enough • You have to use correctly (ex TLS example) • Demonstrate to ‘customer’ you did the right thing • It is, however, an enabler
  • 27. © 2016 IBM Corporation 27 Community History
  • 28. © 2016 IBM Corporation 28 Community History • May 2015 – discussion starts • https://github.com/nodejs/node-v0.x-archive/issues/25463 • Jun 2015 – PR 1890
  • 29. © 2016 IBM Corporation 29 Community History • Nov 2015 – Issue 3760 • PRs 3752, 3753, 3754, 3755, 3756, 3757, 3758,3759 • Added to community CI
  • 30. © 2016 IBM Corporation 30 Community History • Dec 2015 – NPM cleanup • Feb 2016 – Command Line Improvement
  • 31. © 2016 IBM Corporation 31 API and runtime options (v6.x)
  • 32. © 2016 IBM Corporation 32 API and runtime options (v6.x) • Command Line: • --enable-fips • --force-fips • API • -crypto.fips • OpenSSL Config file [ evp_sect ] # Set to "yes" to enter FIPS mode if supported fips_mode = yes
  • 33. © 2016 IBM Corporation 33 API and runtime options (v6.x) • Force prevents change
  • 34. © 2016 IBM Corporation 34 API and runtime options (v6.x) • You need to be state aware • Error if already enabled
  • 35. © 2016 IBM Corporation 35 Validating you have right version
  • 36. © 2016 IBM Corporation 36 Gotchas
  • 37. © 2016 IBM Corporation 37 Gotchas • Existing code may no longer run © 2016 IBM Corporation
  • 38. OPENSSL_FIPS=1 openssl req -x509 -newkey rsa:2048 -keyout httpd.key.pem - out httpd.crt.pem -days XXX • Certificates and keys • Generation • Only use FIPs algorithms • Generate with FIPs module © 2016 IBM Corporation 38 Gotchas const options = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem') };
  • 39. Bluemix Example © 2016 IBM Corporation 39
  • 40. cf set-env FIPS_MODE true Try it on out on Bluemix
  • 44. Express Example © 2016 IBM Corporation 44
  • 45. Express Example © 2016 IBM Corporation 45
  • 46. Express Example © 2016 IBM Corporation 46
  • 47. © 2016 IBM Corporation 47 Summary • Node.js quick intro • FIPS 140-2 intro • OpenSSL integration • Community History • Command Line Options • Gotchas – What to look out for • Bluemix Example • Express Example
  • 48. Michael Dawson Thank you very much. IBM Runtime Technologies [email protected] © 2016 IBM Corporation 48
  • 49. © 2016 IBM Corporation 49 Your feedback is valuable Please complete your session or lab evaluation! Session number [A294] Provide your evaluations by: Evaluation forms: Fill out a form at the end of each session Paper forms are located in each of the session or lab rooms Complete the session survey on Event Connect Portal: https://portal.ibmeventconnect.com/ma drid2016 Select Sessions, then Session Finder, and complete the survey - Or -
  • 50. IBMTA16 Twitter @IBMCloud | @IBMWebSphere LinkedIn IBM Cloud YouTube IBM Cloud | IBM WebSphere Facebook IBM Cloud ibmcloud Facebook Event Page IBM Techical Academy 2016 websphere
  • 51. Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
  • 52. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. • IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml. • Node.js is an official trademark of Joyent. IBM SDK for Node.js is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. • Java, JavaScript and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. • npm is a trademark of npm, Inc.