SlideShare a Scribd company logo
1 of 34
Download to read offline
JavaScript End-to-End
:
1),2)
1)
2)
January 26, 2020
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 1 / 34
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 2 / 34
JavaScript End-to-End
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 3 / 34
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 4 / 34
1
1
https://www.ipa.go.jp/security/awareness/vendor/software.html
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 5 / 34
:
⇓
2
2
RFC8017 RSAES-PKCS1-v1 5
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 6 / 34
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 7 / 34
PKCS (Public Key Cryptography Standards)
PKCS
RSA Security 3
RSA Labs
#1,...#15 15 4
RSA #1
3
RSA Rivest-Shamir-Adleman
4
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 8 / 34
PKCS
IETF RFC
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 9 / 34
PKCS (1/2)
Ver.
PKCS #1 v2.2 RSA Cryptography
Specifications5
RSA
PKCS #3 v1.4 Diffie–Hellman Key
Agreement Standard
Diffie-Hellman RFC
Internet Key Exchange (IKE) (?)
PKCS #5 v2.1 Password-Based Cryp-
tography Specification6
(PBKDF1/2, PBES1/2)
PKCS #6 Extended-Certificate
Syntax Standard
X.509v1 X.509v3
PKCS #7 (?) Cryptographic Message
Syntax Standard7
S/MIME
(RFC5652) (?)
PKCS #8 (?) Private-Key Information
Syntax Specification8
(RFC5968) v1.2 (?)
PKCS #9 v2.0 Selected Object Classes
and Attribute Types9
5
https://tools.ietf.org/html/rfc8017
6
https://tools.ietf.org/html/rfc8018
7
https://tools.ietf.org/html/rfc2315
8
https://tools.ietf.org/html/rfc5208
9
https://tools.ietf.org/html/rfc2985
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 10 / 34
PKCS (2/2)
Ver.
PKCS #10 v1.7 Certification Request
Syntax Specification10
PKCS
RFC5967
PKCS #11 v2.40 Cryptographic Token In-
terface
Cryptoki (H/W
)
OASIS PKCS 11 Technical Com-
mittee
PKCS #12 v1.1 Personal Information
Exchange Syntax Stan-
dard11
IETF IESG
PKCS #15 v1.1 Cryptographic Token In-
formation Format Stan-
dard
IC ISO/IEC 7816-15
IETF RFC Republication
10
https://tools.ietf.org/html/rfc2986 + https://tools.ietf.org/html/rfc5967
11
https://tools.ietf.org/html/rfc7292
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 11 / 34
NIST FIPS SP80012
NIST FIPS/SP800
(NIST; National Institute of Standards and
Technology)
FIPS; Federal Information Processing Standards:
NIST
SP800; Special Publication:
12
: https://www.ipa.go.jp/security/publications/nist/
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 12 / 34
NIST FIPS
ANSI/ISO/IEEE
NIST FIPS
‘Rijndael’
FIPS 197; Advanced Encryption Standard
(AES)
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 13 / 34
IETF RFC
RFC (Request for Comments)
IETF (Internet Engineering Task Force)
13
( )
ITU-T ISO
Rough
13
https://www.nic.ad.jp/ja/rfc-jp/RFC-Category.html
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 14 / 34
RFC 5 :
Standards Track: Proposed Standard → Internet Standard
Informational:
RSA PKCS#1 v2.1 = RFC8017
Experimental:
Historical:
Best Current Practice:
Standard Track, Informational, Experimental PKCS
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 15 / 34
RFC
1: OpenID Connect
: JWS14
, JWE15
, JWK16
, JWT17
OpenID
Foundation RFC Standards Track
2: PKCS#1, #5, #9 RSA
Informational RFC
3: HTTPS TLS v1.318
Standards Track
RFC
14
JSON Web Signature https://tools.ietf.org/html/rfc7515
15
JSON Web Encryption https://tools.ietf.org/html/rfc7516
16
JSON Web Key https://tools.ietf.org/html/rfc7517
17
JSON Web Token https://tools.ietf.org/html/rfc7519
18
https://tools.ietf.org/html/rfc8446
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 16 / 34
ISO/IEC JTC 1
ISO19
/IEC20
JTC (Joint Technical Committee) 1
ISO IEC
27 subcommittee
(SC27)
ISO/IEC JTC 1
19
; International Organization for Standardization
20
; International Electrotechnical Commission
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 17 / 34
ISO/IEC JTC1 SC27 5 Working Group 21
WG2
WG 1 (
ISMS)
WG 2 :
WG3
WG4
WG5
21
https://www.itscj.ipsj.or.jp/hyojunka/h_sn_member/h_sn_katsudo/h_sn_
katsudo2013/sc27_2013.html
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 18 / 34
W3C (World Wide Web Consortium)
W3C
WWW Web
API HTML, XML, DOM
(Recommendation)
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 19 / 34
W3C WG (Working Group)
WebCrypto WG22
: WebCrypto API
WebAuthn WG23
: FIDO
24
22
https://www.w3.org/2012/webcrypto/ Close
23
https://www.w3.org/blog/webauthn/
24
FIDO2 WebAuthn
https://www.w3.org/2019/03/pressrelease-webauthn-rec.html.ja
FIDO2 CTAP ITU-T
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 20 / 34
ITU-T SG17
ITU-T (International Telecommunication Union Telecommunication
Standardization Sector) SG17 (Study Group 17) 25
ITU-T: ITU (International Telecom. Union; )
Study Group 17: ITU-T
25
https://www.ituaj.jp/wp-content/uploads/2016/07/2016_08-06-spotITU-T.pdf
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 21 / 34
ITU-T SG17 SDN IoT ITS
SPAM ID
FIDO
26
26
FIDO UAF 1.1 CTAP https://fidoalliance.
org/fido-alliance-specifications-now-adopted-as-itu-international-standards/
Web FIDO2 WebAuthn W3C
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 22 / 34
;
CRYPTOREC27
(2000 )
NESSIE28
EU (2000 )
27
Cryptography Research and Evaluation Committee
28
New European Schemes for Signature, Integrity, and Encryption
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 23 / 34
IETF (RFC), ISO, NIST
29
29
PKCS RSA Labs. IETF
Internet Draft
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 24 / 34
;
FIDO Alliance:
OpenID Foundation:
Ecma International: JavaScript
(ECMAScript) JS
Ecma 30
30
: Ecma ECMA-334 “C#” ISO/IEC 23270
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 25 / 34
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 26 / 34
:
DER (Distinguished Encoding Rules) : ANS.1
RSA
PEM (Privacy Enhanced Mail31
): DER Base64
SECG SEC1 : ( ) SECG
32
JWK/JWE/JWS (JSON Web Key/Encryption/Signature) :
JSON 33
JavaScript JWK
OpenSSL DER PEM
31
32
http://www.secg.org/sec1-v2.pdf
33
https://tools.ietf.org/html/rfc7517, https://tools.ietf.org/html/rfc7516,
https://tools.ietf.org/html/rfc7515
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 27 / 34
Table: 34
DER/PEM SECG SEC1 JWK/E/S
RSA 1) PKCS#1 N/A RFC7517
2)RFC528035
RSA RFC595836
, PKCS#137
N/A RFC7517
ECC RFC548038
SECG SEC1 v2 RFC7517
ECC RFC595839
, RFC591540
SECG SEC1 v2 RFC7517
(AES) N/A N/A RFC7517
RFC5280 ( ) N/A N/A 41
RSA N/A N/A RFC7516
ECDH+AES N/A N/A RFC7516
AES N/A N/A RFC7516
HMAC N/A N/A RFC7515
RSA N/A N/A RFC7515
ECDSA RFC5759 N/A RFC7515
34
35
SubjectPublicKeyInfo
36
RFC5958 PKCS#8
37
RSA
38
SubjectPublicKeyInfo
39
40
ECC
41
X.509 URI https://tools.ietf.org/html/rfc7517
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 28 / 34
WebCrypto API/Node.js
WebCrypto API:
RFC5280 ( ) RFC5958 ( )
JWK
Node.js Crypto:
RFC5280 ( ) RFC5958 ( )
PKCS#1
42
42
jscu
https://github.com/junkurihara/jscu/tree/develop/packages/js-crypto-key-utils
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 29 / 34
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 30 / 34
ECDH, ECDSA ( )
RSA (ECDH/ECDSA)
RSA:
:
43
RSA “ ”
43
e.g., 256bit P-256 P-256K
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 31 / 34
SEC2: SECG 44
ANSI X9.62: 45
NIST FIPS186-4: 46
47
NIST
FIPS 186
44
http://www.secg.org/sec2-v2.pdf
45
American National Standards Institute, “Public Key Cryptography for the Financial Services
Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA),” ANSI X9.62, November 2005.
46
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
47
https://tools.ietf.org/html/rfc8422#appendix-A
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 32 / 34
WebCrypto API/Node.js NIST
P-256: = 256bits, 128bit AES
P-384: = 384bits, 192bit AES
P-521: = 521bits, 256bit AES
Bitcoin Blockchain 48
WebCrypto API
48
SECG secp256k1 P-256K
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 33 / 34
Safe Curves: https://safecurves.cr.yp.to/
⇓
NIST
49
“
” API
Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 34 / 34

More Related Content

Similar to JavaScriptを使って学ぶEnd-to-Endセキュリティ Appendix

Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
FIDO @ LINE - #idcon vol.24
FIDO @ LINE - #idcon vol.24FIDO @ LINE - #idcon vol.24
FIDO @ LINE - #idcon vol.24Nov Matake
 
VIDEO TELE-CONFERENCE
VIDEO TELE-CONFERENCEVIDEO TELE-CONFERENCE
VIDEO TELE-CONFERENCEVideoguy
 
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4Roberto Innocenti
 
Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...
Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...
Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...IRJET Journal
 
Electrical Schematic of PowerPC GNU/Linux Notebook
Electrical Schematic of PowerPC GNU/Linux NotebookElectrical Schematic of PowerPC GNU/Linux Notebook
Electrical Schematic of PowerPC GNU/Linux NotebookRoberto Innocenti
 
JTAG Debugging with the ESP32, Visual Micro and PlatformIO
JTAG Debugging with the ESP32, Visual Micro and PlatformIOJTAG Debugging with the ESP32, Visual Micro and PlatformIO
JTAG Debugging with the ESP32, Visual Micro and PlatformIOPeter Gallagher
 
SC27 Privacy related projects update
SC27 Privacy related projects update SC27 Privacy related projects update
SC27 Privacy related projects update Yoshihiro Satoh
 
From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...
IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...
IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...IRJET Journal
 
Electrical Schematic Open Hardware PowerPC Notebook motherboard
Electrical Schematic Open Hardware PowerPC Notebook motherboard Electrical Schematic Open Hardware PowerPC Notebook motherboard
Electrical Schematic Open Hardware PowerPC Notebook motherboard Roberto Innocenti
 
Open Hardware PowerPC Notebook motherboard V.0.6 August 2020
Open Hardware PowerPC Notebook motherboard V.0.6 August 2020Open Hardware PowerPC Notebook motherboard V.0.6 August 2020
Open Hardware PowerPC Notebook motherboard V.0.6 August 2020Roberto Innocenti
 
Security and Authentication of Internet of Things (IoT) Devices
Security and Authentication of Internet of Things (IoT) DevicesSecurity and Authentication of Internet of Things (IoT) Devices
Security and Authentication of Internet of Things (IoT) DevicesSanjayKumarYadav58
 
SRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfSRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfTomoya Fujita
 
IT Solution through IoT Development
IT Solution through IoT DevelopmentIT Solution through IoT Development
IT Solution through IoT DevelopmentAndri Yadi
 
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5
 Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5 Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5Roberto Innocenti
 

Similar to JavaScriptを使って学ぶEnd-to-Endセキュリティ Appendix (20)

Vidyo conferencing via wimax vidyo blog
Vidyo conferencing via wimax vidyo blogVidyo conferencing via wimax vidyo blog
Vidyo conferencing via wimax vidyo blog
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
SFScon 2020 - Reto Schneider - Outsourcing to Open Source
SFScon 2020 - Reto Schneider - Outsourcing to Open SourceSFScon 2020 - Reto Schneider - Outsourcing to Open Source
SFScon 2020 - Reto Schneider - Outsourcing to Open Source
 
FIDO @ LINE - #idcon vol.24
FIDO @ LINE - #idcon vol.24FIDO @ LINE - #idcon vol.24
FIDO @ LINE - #idcon vol.24
 
VIDEO TELE-CONFERENCE
VIDEO TELE-CONFERENCEVIDEO TELE-CONFERENCE
VIDEO TELE-CONFERENCE
 
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.4
 
Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...
Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...
Using Natural Language Processing(NLP), Voice Recognition and Internet of Thi...
 
Electrical Schematic of PowerPC GNU/Linux Notebook
Electrical Schematic of PowerPC GNU/Linux NotebookElectrical Schematic of PowerPC GNU/Linux Notebook
Electrical Schematic of PowerPC GNU/Linux Notebook
 
JTAG Debugging with the ESP32, Visual Micro and PlatformIO
JTAG Debugging with the ESP32, Visual Micro and PlatformIOJTAG Debugging with the ESP32, Visual Micro and PlatformIO
JTAG Debugging with the ESP32, Visual Micro and PlatformIO
 
Open Data Hub - Igor Falcomatà - IoT vs Cybersecurity
Open Data Hub - Igor Falcomatà - IoT vs CybersecurityOpen Data Hub - Igor Falcomatà - IoT vs Cybersecurity
Open Data Hub - Igor Falcomatà - IoT vs Cybersecurity
 
SC27 Privacy related projects update
SC27 Privacy related projects update SC27 Privacy related projects update
SC27 Privacy related projects update
 
From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...
IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...
IRJET- Development of a Multipurpose IoT based Energy & Remote Asset Monitori...
 
Electrical Schematic Open Hardware PowerPC Notebook motherboard
Electrical Schematic Open Hardware PowerPC Notebook motherboard Electrical Schematic Open Hardware PowerPC Notebook motherboard
Electrical Schematic Open Hardware PowerPC Notebook motherboard
 
Open Hardware PowerPC Notebook motherboard V.0.6 August 2020
Open Hardware PowerPC Notebook motherboard V.0.6 August 2020Open Hardware PowerPC Notebook motherboard V.0.6 August 2020
Open Hardware PowerPC Notebook motherboard V.0.6 August 2020
 
Security and Authentication of Internet of Things (IoT) Devices
Security and Authentication of Internet of Things (IoT) DevicesSecurity and Authentication of Internet of Things (IoT) Devices
Security and Authentication of Internet of Things (IoT) Devices
 
SRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfSRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdf
 
Widgets
WidgetsWidgets
Widgets
 
IT Solution through IoT Development
IT Solution through IoT DevelopmentIT Solution through IoT Development
IT Solution through IoT Development
 
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5
 Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5 Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5
Electrical Schematic Open Hardware PowerPC Notebook motherboard v. 0.5
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

JavaScriptを使って学ぶEnd-to-Endセキュリティ Appendix

  • 1. JavaScript End-to-End : 1),2) 1) 2) January 26, 2020 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 1 / 34
  • 2. Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 2 / 34
  • 3. JavaScript End-to-End Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 3 / 34
  • 4. Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 4 / 34
  • 5. 1 1 https://www.ipa.go.jp/security/awareness/vendor/software.html Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 5 / 34
  • 6. : ⇓ 2 2 RFC8017 RSAES-PKCS1-v1 5 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 6 / 34
  • 7. Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 7 / 34
  • 8. PKCS (Public Key Cryptography Standards) PKCS RSA Security 3 RSA Labs #1,...#15 15 4 RSA #1 3 RSA Rivest-Shamir-Adleman 4 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 8 / 34
  • 9. PKCS IETF RFC Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 9 / 34
  • 10. PKCS (1/2) Ver. PKCS #1 v2.2 RSA Cryptography Specifications5 RSA PKCS #3 v1.4 Diffie–Hellman Key Agreement Standard Diffie-Hellman RFC Internet Key Exchange (IKE) (?) PKCS #5 v2.1 Password-Based Cryp- tography Specification6 (PBKDF1/2, PBES1/2) PKCS #6 Extended-Certificate Syntax Standard X.509v1 X.509v3 PKCS #7 (?) Cryptographic Message Syntax Standard7 S/MIME (RFC5652) (?) PKCS #8 (?) Private-Key Information Syntax Specification8 (RFC5968) v1.2 (?) PKCS #9 v2.0 Selected Object Classes and Attribute Types9 5 https://tools.ietf.org/html/rfc8017 6 https://tools.ietf.org/html/rfc8018 7 https://tools.ietf.org/html/rfc2315 8 https://tools.ietf.org/html/rfc5208 9 https://tools.ietf.org/html/rfc2985 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 10 / 34
  • 11. PKCS (2/2) Ver. PKCS #10 v1.7 Certification Request Syntax Specification10 PKCS RFC5967 PKCS #11 v2.40 Cryptographic Token In- terface Cryptoki (H/W ) OASIS PKCS 11 Technical Com- mittee PKCS #12 v1.1 Personal Information Exchange Syntax Stan- dard11 IETF IESG PKCS #15 v1.1 Cryptographic Token In- formation Format Stan- dard IC ISO/IEC 7816-15 IETF RFC Republication 10 https://tools.ietf.org/html/rfc2986 + https://tools.ietf.org/html/rfc5967 11 https://tools.ietf.org/html/rfc7292 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 11 / 34
  • 12. NIST FIPS SP80012 NIST FIPS/SP800 (NIST; National Institute of Standards and Technology) FIPS; Federal Information Processing Standards: NIST SP800; Special Publication: 12 : https://www.ipa.go.jp/security/publications/nist/ Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 12 / 34
  • 13. NIST FIPS ANSI/ISO/IEEE NIST FIPS ‘Rijndael’ FIPS 197; Advanced Encryption Standard (AES) Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 13 / 34
  • 14. IETF RFC RFC (Request for Comments) IETF (Internet Engineering Task Force) 13 ( ) ITU-T ISO Rough 13 https://www.nic.ad.jp/ja/rfc-jp/RFC-Category.html Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 14 / 34
  • 15. RFC 5 : Standards Track: Proposed Standard → Internet Standard Informational: RSA PKCS#1 v2.1 = RFC8017 Experimental: Historical: Best Current Practice: Standard Track, Informational, Experimental PKCS Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 15 / 34
  • 16. RFC 1: OpenID Connect : JWS14 , JWE15 , JWK16 , JWT17 OpenID Foundation RFC Standards Track 2: PKCS#1, #5, #9 RSA Informational RFC 3: HTTPS TLS v1.318 Standards Track RFC 14 JSON Web Signature https://tools.ietf.org/html/rfc7515 15 JSON Web Encryption https://tools.ietf.org/html/rfc7516 16 JSON Web Key https://tools.ietf.org/html/rfc7517 17 JSON Web Token https://tools.ietf.org/html/rfc7519 18 https://tools.ietf.org/html/rfc8446 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 16 / 34
  • 17. ISO/IEC JTC 1 ISO19 /IEC20 JTC (Joint Technical Committee) 1 ISO IEC 27 subcommittee (SC27) ISO/IEC JTC 1 19 ; International Organization for Standardization 20 ; International Electrotechnical Commission Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 17 / 34
  • 18. ISO/IEC JTC1 SC27 5 Working Group 21 WG2 WG 1 ( ISMS) WG 2 : WG3 WG4 WG5 21 https://www.itscj.ipsj.or.jp/hyojunka/h_sn_member/h_sn_katsudo/h_sn_ katsudo2013/sc27_2013.html Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 18 / 34
  • 19. W3C (World Wide Web Consortium) W3C WWW Web API HTML, XML, DOM (Recommendation) Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 19 / 34
  • 20. W3C WG (Working Group) WebCrypto WG22 : WebCrypto API WebAuthn WG23 : FIDO 24 22 https://www.w3.org/2012/webcrypto/ Close 23 https://www.w3.org/blog/webauthn/ 24 FIDO2 WebAuthn https://www.w3.org/2019/03/pressrelease-webauthn-rec.html.ja FIDO2 CTAP ITU-T Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 20 / 34
  • 21. ITU-T SG17 ITU-T (International Telecommunication Union Telecommunication Standardization Sector) SG17 (Study Group 17) 25 ITU-T: ITU (International Telecom. Union; ) Study Group 17: ITU-T 25 https://www.ituaj.jp/wp-content/uploads/2016/07/2016_08-06-spotITU-T.pdf Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 21 / 34
  • 22. ITU-T SG17 SDN IoT ITS SPAM ID FIDO 26 26 FIDO UAF 1.1 CTAP https://fidoalliance. org/fido-alliance-specifications-now-adopted-as-itu-international-standards/ Web FIDO2 WebAuthn W3C Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 22 / 34
  • 23. ; CRYPTOREC27 (2000 ) NESSIE28 EU (2000 ) 27 Cryptography Research and Evaluation Committee 28 New European Schemes for Signature, Integrity, and Encryption Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 23 / 34
  • 24. IETF (RFC), ISO, NIST 29 29 PKCS RSA Labs. IETF Internet Draft Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 24 / 34
  • 25. ; FIDO Alliance: OpenID Foundation: Ecma International: JavaScript (ECMAScript) JS Ecma 30 30 : Ecma ECMA-334 “C#” ISO/IEC 23270 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 25 / 34
  • 26. Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 26 / 34
  • 27. : DER (Distinguished Encoding Rules) : ANS.1 RSA PEM (Privacy Enhanced Mail31 ): DER Base64 SECG SEC1 : ( ) SECG 32 JWK/JWE/JWS (JSON Web Key/Encryption/Signature) : JSON 33 JavaScript JWK OpenSSL DER PEM 31 32 http://www.secg.org/sec1-v2.pdf 33 https://tools.ietf.org/html/rfc7517, https://tools.ietf.org/html/rfc7516, https://tools.ietf.org/html/rfc7515 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 27 / 34
  • 28. Table: 34 DER/PEM SECG SEC1 JWK/E/S RSA 1) PKCS#1 N/A RFC7517 2)RFC528035 RSA RFC595836 , PKCS#137 N/A RFC7517 ECC RFC548038 SECG SEC1 v2 RFC7517 ECC RFC595839 , RFC591540 SECG SEC1 v2 RFC7517 (AES) N/A N/A RFC7517 RFC5280 ( ) N/A N/A 41 RSA N/A N/A RFC7516 ECDH+AES N/A N/A RFC7516 AES N/A N/A RFC7516 HMAC N/A N/A RFC7515 RSA N/A N/A RFC7515 ECDSA RFC5759 N/A RFC7515 34 35 SubjectPublicKeyInfo 36 RFC5958 PKCS#8 37 RSA 38 SubjectPublicKeyInfo 39 40 ECC 41 X.509 URI https://tools.ietf.org/html/rfc7517 Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 28 / 34
  • 29. WebCrypto API/Node.js WebCrypto API: RFC5280 ( ) RFC5958 ( ) JWK Node.js Crypto: RFC5280 ( ) RFC5958 ( ) PKCS#1 42 42 jscu https://github.com/junkurihara/jscu/tree/develop/packages/js-crypto-key-utils Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 29 / 34
  • 30. Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 30 / 34
  • 31. ECDH, ECDSA ( ) RSA (ECDH/ECDSA) RSA: : 43 RSA “ ” 43 e.g., 256bit P-256 P-256K Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 31 / 34
  • 32. SEC2: SECG 44 ANSI X9.62: 45 NIST FIPS186-4: 46 47 NIST FIPS 186 44 http://www.secg.org/sec2-v2.pdf 45 American National Standards Institute, “Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA),” ANSI X9.62, November 2005. 46 https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf 47 https://tools.ietf.org/html/rfc8422#appendix-A Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 32 / 34
  • 33. WebCrypto API/Node.js NIST P-256: = 256bits, 128bit AES P-384: = 384bits, 192bit AES P-521: = 521bits, 256bit AES Bitcoin Blockchain 48 WebCrypto API 48 SECG secp256k1 P-256K Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 33 / 34
  • 34. Safe Curves: https://safecurves.cr.yp.to/ ⇓ NIST 49 “ ” API Jun Kurihara (Zettant Inc./U-Hyogo) E2E Security with JS Appendix January 26, 2020 34 / 34