SlideShare a Scribd company logo
1 of 27
Download to read offline
IBM Research / IBM Linux Technology Center
4th PKI R&D Workshop, NIST, Gaithersburg MD 2005 © 2005 IBM Corporation
Design and Implementation of LDAP Component Matching
for Flexible and Secure Certificate Access in PKI
Sang Seok Lim Jong Hyuk Choi Kurt Zeilenga
IBM Research IBM Research IBM Linux Technology Center
slim@us.ibm.com jongchoi@us.ibm.com zeilenga@us.ibm.com
4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th
2005
Outline
 
Introduction
 
LDAP-PKI Interoperability Limitation
 
Interoperability Enabling Technologies
– Component Matching
– ASN.1 Awareness
– Generic String Encoding Rule (GSER)
 
OpenLDAP Implementation
– ASN.1 Generation of ASN.1 Decoders / Matching Rules
– Component Matching Architecture and Data Structures
– Component Matching Optimizations
 
Performance Evaluation
 
Summary
4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th
2005
OpenLDAP Component Matching: Overview
4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th
2005
Usage of LDAP in PKI
 
Certificate access protocols in PKI
– LDAP, HTTP, FTP, etc.
 
LDAP: a predominant way of implementing a PKI
repository
– X.509 was originally specified in the X.500 context
– LDAP is predominantly used directory protocol for the
Internet
• Various protocol operations: search, modify, update, etc
• Authentication: Simple Authentication Security Layer (SASL)
• LDAP Control
• Access control
 
LDAP has X.500 DAP simplified by mainly
– String-based encoding
• Incapable of preserving structural information
• DAP uses ASN.1 encodings (BER/DER)
– Direct TCP/IP mapping
– Simple-protocol encoding
4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th
2005
Certificate Access using LDAP
4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th
2005
Certificate Structure and Encodings (bits-on-the-line)
The structural information of ASN.1 types
specification is preserved in the encodings
DER: Distinguished Encoding Rules
4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th
2005
LDAP Client Side Requirement
 
¡¢
£
¤¦¥
§¨
©



¥
¨
 
¡¢
£
¤¥
§¨
©



¥
¨



¥
©¥
¨


©
§

¥


!¥
!
#$
¥
©


!
%
©

'
)(

01
2
(
©

3
¤
4
§

5¥
6
3
!
§
7¥

!
%
98
¨
¥
@


§



4
AB
CED
FB
GH
GI
P
QR
H
FB
GS
TUV
WXY
`a
Y
bc
TUV
WXY
bde
f
b
Y
g
hip
qsr
t
p
hi
qsu
vw
x
y
€
hi
p
qs
tu
‚
xi
h
q
p
p
x
hi
gu
v
qƒ
q
‚s„
…
t†
‡r
ˆ
t‰
r
†
‘’
“‰
…†
”
•
p
x
€–
h
…
‚
—
x
€
v
q
…
˜
h„
‘
t
™r
q
p
p
x
hi
”
t
qsd
x
h
‘ƒ
h
t
‚q
™q
hi
p
x
€–
h
…
‚
”
t
qd
x
h
‘ƒ
h
t
‚q
™q
hi
he
‚
h
t
p
qsr
t
p
tr
t
i
hf
xƒ
u
‚qr
t
tr
thg
i
hf
xƒ
u
‚qr
t
i
jk
l
mnk
l
o
p
qpr
s
ok
t
o
o
lpu
i
ok
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
LDAP Client Side Requirement
 
¡¢
£
¤¦¥
§¨
©



¥
¨
 
¡¢
£
¤¥
§¨
©



¥
¨



¥
©¥
¨


©
§

¥


!¥
!
#$
¥
©


!
%
©

'
)(

01
2
(
©

3
¤
4
§

5¥
6
3
!
§
7¥

!
%
98
¨
¥
@


§



4
AB
CED
FB
GH
GI
P
QR
H
FB
GS
TUV
WXY
`a
Y
bc
TUV
WXY
bde
f
b
Y
g
hip
qsr
t
p
hi
qsu
vw
x
y
€
hi
p
qs
tu
‚
xi
h
q
p
p
x
hi
gu
v
qƒ
q
‚s„
…
t†
‡r
ˆ
t‰
r
†
‘’
“‰
…†
”
•
p
x
€–
h
…
‚
—
x
€
v
q
…
˜
h„
‘
t
™r
q
p
p
x
hi
”
t
qsd
x
h
‘ƒ
h
t
‚q
™q
hi
p
x
€–
h
…
‚
”
t
qd
x
h
‘ƒ
h
t
‚q
™q
hi
he
‚
h
t
p
qsr
t
p
tr
t
i
hf
xƒ
u
‚qr
t
tr
thg
i
hf
xƒ
u
‚qr
t
i
jk
l
mnk
l
o
p
qpr
s
ok
t
o
o
lpu
i
ok
Requirement: Component-level expressive power of LDAP search filters
New definitions of component assertion and filter by
Component Matching (RFC3687)
New definitions of component assertion and filter by
Component Matching (RFC3687)
Deficiency: LDAP’s incapability of composing a component-level filter!!
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
LDAP Server Side Requirement
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
LDAP Server Side Requirement
Requirement: Restore structural information of
ASN.1 specifications for component-level matching
ASN.1 awareness in LDAP directory server
by using an ASN.1 compiler
ASN.1 awareness in LDAP directory server
by using an ASN.1 compiler
Deficiency: LDAP string encoding which
do not preserve structural information
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Certificate Syntax Specific Parsing
 
Parsing the blobs (DER) by certificate-syntax specific decoders
 
Limited and inflexible component-level filter composing
– Example search filter
 
Disadvantages
– Inflexibility
OpenSSL DER Decoder
userCertificate:certificateExactMatch=cn=CA,o=IBM,c=US$12345userCertificate:certificateExactMatch=cn=CA,o=IBM,c=US$12345
¡¢
¡¢
¡¢
¡¢
¢
¢
¡¢
¡¢
¡¢
¡¢
¢
¡¢
¢
¡
¢
¡¢
¡¢
¡¢
¡¢
¡¢
¡¢
¡¢
¡¢
¢
¡¢
¡¢
¡
¢
¡¢
¡¢
¡¢
¡¢
¡¢
¡¢
¢
¢
¡¢
¡¢
¢
¢
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡¢
¢
¡¢
¡¢
¡¢
¡¢
¢
¡¢
¢
¢
¡¢
¢
¡¢
¡
¡¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¡¢
¡¢
¡¢
¡¢
¢
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡¢
¢
¢
¢
£¤
¥
¦¨§
issuer serial
separator
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Attribute
Extraction
 
Example search filter (use an attribute-level filter)
¡
Certificate Parsing Server (XPS): automates the extraction process
¡
Disadvantages
– High storage requirements
– Security Issue
• Data integrity checking: matching is performed unsigned extracted attributes
– Poor manageability
• DIT Restructuring to support multiple certificate for an user
(((x509KeyUsage=010000000)(x509Subject=cn=John,o=IBM,c=US)))(((x509KeyUsage=010000000)(x509Subject=cn=John,o=IBM,c=US)))
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Directory Information Tree of Attribute Extraction
 
DIT Restructuring for storing multiple certificates for a user
DN: o=IBM,c=US
(a) DIT (b) DIT of Attribute Extraction
cn:John
uid=123456
userCertificate: MF4… x509Serial: 12345
x509Issuer: cn=CA,o=IBM,c=US
…
DN: cn=John,o=IBM,c=US
DN: x509Serial=12345,cn=John,o=IBM,c=US
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
(userCertificate:componentFilterMatch
:= and:{
item:{
component “toBeSigned.subject”,
rule distinguishedNameMatch,
value “cn=John,o=IBM,c=US”
},
item:{
component “toBeSigned.extension.*.extnValue.(2.5.29.15)”,
rule bitStringMatch,
value ‘010000000’B
}
}
)
User request statement:
“Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non-
repudiation
User request statement:
“Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non-
repudiation
Component Reference
Component Assertion
Component Filter
New Matching Rule
Component Assertion Value: BIT STRING in GSER
Example Component Matching Filter
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
ASN.1 Awareness and Component Matching
 
ASN.1 awareness of LDAP directory servers
– Ability to utilize the structural information of an ASN.1 type.
– Understand how to construct complex types by combining basic
types and composite types of ASN.1
 
Component matching for ASN.1 awareness
– Define how to describe component filter and assertion for
components
– Define how to reference a component : component reference
– Define a generic way of matching among components at an ASN.1
level
– Generic String Encoding Rule (GSER)
• Introduce structure information into UTF-8 based string encodings
• The value of component assertion is encoded in GSER
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Generic String Encoding Rule
 
Define UTF8 string encodings rule for basic ASN.1 types
and composite ASN.1 types
– INTEGER, BOOLEAN, OCTET STRING etc
– SEQUENCE, SET, CHOICE, etc
{ version 2,
serialNumber 12345 ,
signature { algorithm 1.2.840.113549.1.14, parameters NULL},
issuer {{type cn, value IBM trust} , {type o, value IBM},{type c, value US}},
validity {notBefore {2004 01 13 18 59}, notAfter {2005 01 13 18 59} },
…
}
Example GSER Encodings of Certificate
toBeSigned :: = SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublickKeyInfo subjectPublicKeyInfo,
…
extensions [3] EXPLICIT Extensions OPTIONAL
}
toBeSigned :: = SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublickKeyInfo subjectPublicKeyInfo,
…
extensions [3] EXPLICIT Extensions OPTIONAL
}
Certificate ASN.1 type
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Our Framework of Component Matching Enabled OpenLDAP
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
An eSNACC Compiler and a GSER Back-end
 
What does the compiler do?
– Compile ASN.1(Abstract Syntax Notation One) modules into
• ASN.1 equivalent C data structures
• Routines to convert to/from the internal (C or C++) representation from/to the
corresponding BER/DER formats
 
GSER back-end
– Generate GSER encoding/decoding functions of given ASN.1 types
{ version v1, serialNumber 12345 ,signature {… },
“issuer cn=CA,o=ibm … }
{ version v1, serialNumber 12345 ,signature {… },
“issuer cn=CA,o=ibm … }
typedef struct toBeSgined{
AsnInt version;
AsnInt serialNumber;
struct AlgorithmIdentifier* signature;
struct Name* issuer;
…
}
typedef struct toBeSgined{
AsnInt version;
AsnInt serialNumber;
struct AlgorithmIdentifier* signature;
struct Name* issuer;
…
} C internal data structure
GSER Encodings
Encoding
EnctoBeSigned(…)
Decoding
DecToBeSigned(…)
Compiling
toBeSigned :: = SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublickKeyInfo subjectPublicKeyInfo,
…
extensions [3] EXPLICIT Extensions OPTIONAL
}
toBeSigned :: = SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublickKeyInfo subjectPublicKeyInfo,
…
extensions [3] EXPLICIT Extensions OPTIONAL
}
Certificate ASN.1 Type
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Component Representation
 
Component
– The arbitrary part of attribute value that can be referenced or identified
by Component Reference
 
Component representation
– Preserve ASN.1 structure information in the internal representation
– Two parts
• Data value
– Value in a C internal data structure
• Component descriptor for its value processing
– Value-specific encoder/decoder/matching rule/extract
– Component tree
• All components are comprised of one tree
 
Component extraction
– Extract referenced components from a component tree
– Generated by the eSNACC ASN.1 compiler automatically
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Component Matching Implementation
 
Component assertion (GSER encoded)
– An assertion about the presence, or values of, components within an ASN.1 value
– Component reference
• Identifying the component part of a ASN.1 value.
– Matching rule
– Component assertion value in GSER
 
Component filter (GSER encoded)
– An “and”, “or”, “not” expression of ComponentAssertion, evaluates
to either TRUE, FALSE or Undefined
 
Component equality matching rule
– allComponentsMatch and refined matching rules
– Generated by the eSNACC ASN.1 compiler automatically
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
(userCertificate:componentFilterMatch
:= and:{
item:{
component “toBeSigned.subject”,
rule distinguishedNameMatch,
value “cn=John,o=IBM,c=US”
},
item:{
component “toBeSigned.extension.*.extnValue.(2.5.29.15)”,
rule bitStringMatch,
value ‘010000000’B
}
}
)
User request statement:
“Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non-
repudiation
User request statement:
“Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non-
repudiation
Component Reference
Component Assertion
Component Filter
New Matching Rule
Component Assertion Value: BIT STRING in GSER
Example Component Filter
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Overall
Operational Steps
in Our Framework
 ¡
¢£
¡
¤¥
¤¦
§¨©
¦¥


¥






¥
!¡
¥

 ¡
¢£
¡
¤¥
¤¦

#¦
!¦¡

¥
$¥
¥
¤
!¥

 ¡
¢£%
'¥
¥
()012341)02564789)012@45A70)2117)0(562B2AC179D)EA179D)EAF7962EG)C24H3I
117)0742P7)2B)4A2H2)0I
117)0742P7)2B)4A2H2)0
)QA)412341
43A9)H30)43A5HA)056@302AR8179D)EAF7962EG)C
56@302AR82B)4A2H2)0
F5058)A)01
4340)F7B5A234)QA)41234()012341)02564789)012@45A70)2117)0(562B2AC179D)EA179D)EAF7962EG)C24H3I
117)0742P7)2B)4A2H2)0I
117)0742P7)2B)4A2H2)0
)QA)412341
43A9)H30)43A5HA)056@302AR8179D)EAF7962EG)C
56@302AR82B)4A2H2)0
F5058)A)01
4340)F7B5A234)QA)41234 ¡
¢£
¡
¤¥
¤¦
'¥
¥
S

¥
¦¨¡
¤
 ¡
¢£%
'¥
¥
()012341)02564789)012@45A70)2117)0(562B2AC179D)EA179D)EAF7962EG)C24H3I
117)0742P7)2B)4A2H2)0I
117)0742P7)2B)4A2H2)0
)QA)412341
43A9)H30)43A5HA)056@302AR8179D)EAF7962EG)C
56@302AR82B)4A2H2)0
F5058)A)01
4340)F7B5A234)QA)41234


¥
!¡
¥

 ¡
¢£
¡
¤¥
¤¦
§¨©
¦¥

 ¡
¢£
¡
¤¥
¤¦
 
!
T¨
¤U
V
¦
!
T¨
¤U
W©
¥
 ¡
¢£
¡
¤¥
¤¦
S

¥
¦¨¡
¤
X©W
¥
 ¡
¢£
¡
¤¥
¤¦
¥
$¥
¥
¤
!¥
 ¡
¢£
¡
¤¥
¤¦
§¨©
¦¥

¡
!¥

¨
¤U
S¦¦¨Y
W
¦¥
¡
!¥

¨
¤U
`ba
cd
ef
gh
f
iqp
cr
st
p
u
v
cp
w
cp
xqy
€q
a
‚ƒ
„
S

 ¡
¢£
¡
¤¥
¤¦
¥


!
T
¥
…W
¥

¦
†
‡
ˆ
‰

‘
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Component Matching Optimization
 
Attribute/matching rule aliasing
– Backward compatibility for legacy clients
– Avoid expensive extensible filter processing
Aliased
Attribute
Matching Rule
Component
Reference
Alias Attribute
x509certificateSerial toBeSigned.serial
x509certificateIssuer toBeSigned.issuer
integerMatch
distinguishedNameMatch
userCertificate
userCertificate
userCertificate:componentFilterMatch =:
item:{
component “toBeSigned.serialNumber”,
rule IntegerMatch,
value 12345678
}
x509certificateSerial=12345678
attribute aliasing
Example Attribute Aliasing Table
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Component Matching Optimization Contd.
 
Component indexing
– Boost search performance by supporting component-level indexing
• Indices on serial number, issuer name, version, etc
 
Component caching
– Eliminate certificate (DER) decoding overheads
• 72usec/certificate : Intel Xeon 2.8GHz
– Cache decoded internal representations of a certificate
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Performance Evaluation
 
Directory population
– OpenSSL and Component Matching
• DirectoryMark generated entries: 100k and 500k
– Attribute extraction
• Used XPS (OpenLDAP patch) to extract attributes
 
System under test (SUT)
– IBM xSeries 445 servers : 4-way Intel Xeon 2.8GHz with 12GB memory
– Network connection: 1 Gbps Ethernet
– Server: OpenLDAP 2.2.2 and Berkeley DB 4.3
– Clients: DirectoryMark scripts (8-way IBM xSeries 445 servers)
 
Performance measurement
– Search throughput (operations/sec)
• Matching against serialNumber
– 100K entry add performance
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
 ¢¡
 
£
¤¢¡
 
£
¥¢¡
 
£
¦¢¡
 
£
§¢¡
 
£
¨
 ¢¡
 
£
¨
¤¢¡
 
£
¨
¥¢¡
 
£
¨
¦¢¡
 
£
¨
§¢¡
 
£
¤ ¢¡
 
£
¨
¥
§
¨
©
¤ 





!#$%'()0
12
345
167
89
12
@A9
BCCD
EFFG
HI
PF9
QRFG67
FH5
B
SUT
SV
SUT
WV
XT
SV
XT
WV
YUT
SV
YUT
WV
`T
SV
`T
WV
aUT
SV
X
a
b
X
W
YS
cd
ef
ghi
pqr
stuvwxys€‚uƒ
„…
†
‡d
„ˆf
‰i
„…
‘i
p
’’“
”qq•h–
—qi
˜™
q•ˆf
qhd
p
Performance (Population / Search)
100k entries, DB cache = 1GBytes 500k entries, DB cache = 200MBtyes
410234234DB Size(Mbytes)
815167178Time (sec)
Attribute ExtractionOpenSSL
Component
Matching
100K entries
Directory Population Performance
Directory Search Performance
4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th
2005
Summary
 
Enhance LDAP-PKI interoperation for flexibility and manageability
 
Component matching enabled OpenLDAP server
– ASN.1 awareness
• Supports any ASN.1 type from its specification
• Supports GSER in attribute / assertion values
– Component Matching
• Supports searching of any Certificate attributes
– First implementation of component matching in a pure LDAP server
 
Component optimization techniques
– Component aliasing, component indexing, and component caching
– Enable high-performance, scalable LDAP certificate repository
 
Component matching enabled OpenLDAP will help to use PKC
more flexibly in many PKI applications of Internet2, OASIS, GRID…

More Related Content

Similar to Cm presentation

A Multidimensional Empirical Study on Refactoring Activity
A Multidimensional Empirical Study on Refactoring ActivityA Multidimensional Empirical Study on Refactoring Activity
A Multidimensional Empirical Study on Refactoring Activity
Nikolaos Tsantalis
 

Similar to Cm presentation (20)

OSMC 2023 | Experiments with OpenSearch and AI by Jochen Kressin & Leanne La...
OSMC 2023 | Experiments with OpenSearch and AI by Jochen Kressin &  Leanne La...OSMC 2023 | Experiments with OpenSearch and AI by Jochen Kressin &  Leanne La...
OSMC 2023 | Experiments with OpenSearch and AI by Jochen Kressin & Leanne La...
 
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
Alexandria ACM Student Chapter | Specification & Verification of Data-Centric...
 
Neo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform OverviewNeo4j Database and Graph Platform Overview
Neo4j Database and Graph Platform Overview
 
How to Make OpenStack Heat Better based on Our One Year Production Journey
How to Make OpenStack Heat Better based on Our One Year Production JourneyHow to Make OpenStack Heat Better based on Our One Year Production Journey
How to Make OpenStack Heat Better based on Our One Year Production Journey
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21
 
Learning the basics of Apache NiFi for iot OSS Europe 2020
Learning the basics of Apache NiFi for iot OSS Europe 2020Learning the basics of Apache NiFi for iot OSS Europe 2020
Learning the basics of Apache NiFi for iot OSS Europe 2020
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
 
Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...
Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...
Jones "Working with Scholarly APIs: A NISO Training Series, Session One: Foun...
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
Testing swagger contracts without contract based testing
Testing swagger contracts without contract based testingTesting swagger contracts without contract based testing
Testing swagger contracts without contract based testing
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Using Cisco pxGrid for Security Platform Integration: a deep dive
Using Cisco pxGrid for Security Platform Integration: a deep diveUsing Cisco pxGrid for Security Platform Integration: a deep dive
Using Cisco pxGrid for Security Platform Integration: a deep dive
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
IBM Index Conference - 10 steps to build token based API Security
IBM Index Conference - 10 steps to build token based API SecurityIBM Index Conference - 10 steps to build token based API Security
IBM Index Conference - 10 steps to build token based API Security
 
Super-NetOps Source of Truth
Super-NetOps Source of TruthSuper-NetOps Source of Truth
Super-NetOps Source of Truth
 
ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25ACM BPM and elasticsearch AMIS25
ACM BPM and elasticsearch AMIS25
 
Getting up to speed with Kafka Connect: from the basics to the latest feature...
Getting up to speed with Kafka Connect: from the basics to the latest feature...Getting up to speed with Kafka Connect: from the basics to the latest feature...
Getting up to speed with Kafka Connect: from the basics to the latest feature...
 
Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...
 
Tdd,Ioc
Tdd,IocTdd,Ioc
Tdd,Ioc
 
A Multidimensional Empirical Study on Refactoring Activity
A Multidimensional Empirical Study on Refactoring ActivityA Multidimensional Empirical Study on Refactoring Activity
A Multidimensional Empirical Study on Refactoring Activity
 

Recently uploaded

TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Recently uploaded (20)

WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 

Cm presentation

  • 1. IBM Research / IBM Linux Technology Center 4th PKI R&D Workshop, NIST, Gaithersburg MD 2005 © 2005 IBM Corporation Design and Implementation of LDAP Component Matching for Flexible and Secure Certificate Access in PKI Sang Seok Lim Jong Hyuk Choi Kurt Zeilenga IBM Research IBM Research IBM Linux Technology Center slim@us.ibm.com jongchoi@us.ibm.com zeilenga@us.ibm.com
  • 2. 4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th 2005 Outline   Introduction   LDAP-PKI Interoperability Limitation   Interoperability Enabling Technologies – Component Matching – ASN.1 Awareness – Generic String Encoding Rule (GSER)   OpenLDAP Implementation – ASN.1 Generation of ASN.1 Decoders / Matching Rules – Component Matching Architecture and Data Structures – Component Matching Optimizations   Performance Evaluation   Summary
  • 3. 4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th 2005 OpenLDAP Component Matching: Overview
  • 4. 4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th 2005 Usage of LDAP in PKI   Certificate access protocols in PKI – LDAP, HTTP, FTP, etc.   LDAP: a predominant way of implementing a PKI repository – X.509 was originally specified in the X.500 context – LDAP is predominantly used directory protocol for the Internet • Various protocol operations: search, modify, update, etc • Authentication: Simple Authentication Security Layer (SASL) • LDAP Control • Access control   LDAP has X.500 DAP simplified by mainly – String-based encoding • Incapable of preserving structural information • DAP uses ASN.1 encodings (BER/DER) – Direct TCP/IP mapping – Simple-protocol encoding
  • 5. 4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th 2005 Certificate Access using LDAP
  • 6. 4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th 2005 Certificate Structure and Encodings (bits-on-the-line) The structural information of ASN.1 types specification is preserved in the encodings DER: Distinguished Encoding Rules
  • 7. 4th PKI R&D Workshop, NIST, Gaithersburg MD, April 19th 2005 LDAP Client Side Requirement   ¡¢ £ ¤¦¥ §¨ © ¥ ¨   ¡¢ £ ¤¥ §¨ © ¥ ¨ ¥ ©¥ ¨ © § ¥ !¥ ! #$ ¥ © ! % © ' )( 01 2 ( © 3 ¤ 4 § 5¥ 6 3 ! § 7¥ ! % 98 ¨ ¥ @ § 4 AB CED FB GH GI P QR H FB GS TUV WXY `a Y bc TUV WXY bde f b Y g hip qsr t p hi qsu vw x y € hi p qs tu ‚ xi h q p p x hi gu v qƒ q ‚s„ … t† ‡r ˆ t‰ r † ‘’ “‰ …† ” • p x €– h … ‚ — x € v q … ˜ h„ ‘ t ™r q p p x hi ” t qsd x h ‘ƒ h t ‚q ™q hi p x €– h … ‚ ” t qd x h ‘ƒ h t ‚q ™q hi he ‚ h t p qsr t p tr t i hf xƒ u ‚qr t tr thg i hf xƒ u ‚qr t i jk l mnk l o p qpr s ok t o o lpu i ok
  • 8. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 LDAP Client Side Requirement   ¡¢ £ ¤¦¥ §¨ © ¥ ¨   ¡¢ £ ¤¥ §¨ © ¥ ¨ ¥ ©¥ ¨ © § ¥ !¥ ! #$ ¥ © ! % © ' )( 01 2 ( © 3 ¤ 4 § 5¥ 6 3 ! § 7¥ ! % 98 ¨ ¥ @ § 4 AB CED FB GH GI P QR H FB GS TUV WXY `a Y bc TUV WXY bde f b Y g hip qsr t p hi qsu vw x y € hi p qs tu ‚ xi h q p p x hi gu v qƒ q ‚s„ … t† ‡r ˆ t‰ r † ‘’ “‰ …† ” • p x €– h … ‚ — x € v q … ˜ h„ ‘ t ™r q p p x hi ” t qsd x h ‘ƒ h t ‚q ™q hi p x €– h … ‚ ” t qd x h ‘ƒ h t ‚q ™q hi he ‚ h t p qsr t p tr t i hf xƒ u ‚qr t tr thg i hf xƒ u ‚qr t i jk l mnk l o p qpr s ok t o o lpu i ok Requirement: Component-level expressive power of LDAP search filters New definitions of component assertion and filter by Component Matching (RFC3687) New definitions of component assertion and filter by Component Matching (RFC3687) Deficiency: LDAP’s incapability of composing a component-level filter!!
  • 9. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 LDAP Server Side Requirement
  • 10. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 LDAP Server Side Requirement Requirement: Restore structural information of ASN.1 specifications for component-level matching ASN.1 awareness in LDAP directory server by using an ASN.1 compiler ASN.1 awareness in LDAP directory server by using an ASN.1 compiler Deficiency: LDAP string encoding which do not preserve structural information
  • 11. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Certificate Syntax Specific Parsing   Parsing the blobs (DER) by certificate-syntax specific decoders   Limited and inflexible component-level filter composing – Example search filter   Disadvantages – Inflexibility OpenSSL DER Decoder userCertificate:certificateExactMatch=cn=CA,o=IBM,c=US$12345userCertificate:certificateExactMatch=cn=CA,o=IBM,c=US$12345 ¡¢ ¡¢ ¡¢ ¡¢ ¢ ¢ ¡¢ ¡¢ ¡¢ ¡¢ ¢ ¡¢ ¢ ¡ ¢ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢ ¢ ¡¢ ¡¢ ¡ ¢ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢ ¡¢ ¢ ¢ ¡¢ ¡¢ ¢ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡¢ ¢ ¡¢ ¡¢ ¡¢ ¡¢ ¢ ¡¢ ¢ ¢ ¡¢ ¢ ¡¢ ¡ ¡¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¡¢ ¡¢ ¡¢ ¡¢ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡¢ ¢ ¢ ¢ £¤ ¥ ¦¨§ issuer serial separator
  • 12. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Attribute Extraction   Example search filter (use an attribute-level filter) ¡ Certificate Parsing Server (XPS): automates the extraction process ¡ Disadvantages – High storage requirements – Security Issue • Data integrity checking: matching is performed unsigned extracted attributes – Poor manageability • DIT Restructuring to support multiple certificate for an user (((x509KeyUsage=010000000)(x509Subject=cn=John,o=IBM,c=US)))(((x509KeyUsage=010000000)(x509Subject=cn=John,o=IBM,c=US)))
  • 13. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Directory Information Tree of Attribute Extraction   DIT Restructuring for storing multiple certificates for a user DN: o=IBM,c=US (a) DIT (b) DIT of Attribute Extraction cn:John uid=123456 userCertificate: MF4… x509Serial: 12345 x509Issuer: cn=CA,o=IBM,c=US … DN: cn=John,o=IBM,c=US DN: x509Serial=12345,cn=John,o=IBM,c=US
  • 14. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 (userCertificate:componentFilterMatch := and:{ item:{ component “toBeSigned.subject”, rule distinguishedNameMatch, value “cn=John,o=IBM,c=US” }, item:{ component “toBeSigned.extension.*.extnValue.(2.5.29.15)”, rule bitStringMatch, value ‘010000000’B } } ) User request statement: “Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non- repudiation User request statement: “Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non- repudiation Component Reference Component Assertion Component Filter New Matching Rule Component Assertion Value: BIT STRING in GSER Example Component Matching Filter
  • 15. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 ASN.1 Awareness and Component Matching   ASN.1 awareness of LDAP directory servers – Ability to utilize the structural information of an ASN.1 type. – Understand how to construct complex types by combining basic types and composite types of ASN.1   Component matching for ASN.1 awareness – Define how to describe component filter and assertion for components – Define how to reference a component : component reference – Define a generic way of matching among components at an ASN.1 level – Generic String Encoding Rule (GSER) • Introduce structure information into UTF-8 based string encodings • The value of component assertion is encoded in GSER
  • 16. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Generic String Encoding Rule   Define UTF8 string encodings rule for basic ASN.1 types and composite ASN.1 types – INTEGER, BOOLEAN, OCTET STRING etc – SEQUENCE, SET, CHOICE, etc { version 2, serialNumber 12345 , signature { algorithm 1.2.840.113549.1.14, parameters NULL}, issuer {{type cn, value IBM trust} , {type o, value IBM},{type c, value US}}, validity {notBefore {2004 01 13 18 59}, notAfter {2005 01 13 18 59} }, … } Example GSER Encodings of Certificate toBeSigned :: = SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublickKeyInfo subjectPublicKeyInfo, … extensions [3] EXPLICIT Extensions OPTIONAL } toBeSigned :: = SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublickKeyInfo subjectPublicKeyInfo, … extensions [3] EXPLICIT Extensions OPTIONAL } Certificate ASN.1 type
  • 17. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Our Framework of Component Matching Enabled OpenLDAP
  • 18. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 An eSNACC Compiler and a GSER Back-end   What does the compiler do? – Compile ASN.1(Abstract Syntax Notation One) modules into • ASN.1 equivalent C data structures • Routines to convert to/from the internal (C or C++) representation from/to the corresponding BER/DER formats   GSER back-end – Generate GSER encoding/decoding functions of given ASN.1 types { version v1, serialNumber 12345 ,signature {… }, “issuer cn=CA,o=ibm … } { version v1, serialNumber 12345 ,signature {… }, “issuer cn=CA,o=ibm … } typedef struct toBeSgined{ AsnInt version; AsnInt serialNumber; struct AlgorithmIdentifier* signature; struct Name* issuer; … } typedef struct toBeSgined{ AsnInt version; AsnInt serialNumber; struct AlgorithmIdentifier* signature; struct Name* issuer; … } C internal data structure GSER Encodings Encoding EnctoBeSigned(…) Decoding DecToBeSigned(…) Compiling toBeSigned :: = SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublickKeyInfo subjectPublicKeyInfo, … extensions [3] EXPLICIT Extensions OPTIONAL } toBeSigned :: = SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublickKeyInfo subjectPublicKeyInfo, … extensions [3] EXPLICIT Extensions OPTIONAL } Certificate ASN.1 Type
  • 19. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Component Representation   Component – The arbitrary part of attribute value that can be referenced or identified by Component Reference   Component representation – Preserve ASN.1 structure information in the internal representation – Two parts • Data value – Value in a C internal data structure • Component descriptor for its value processing – Value-specific encoder/decoder/matching rule/extract – Component tree • All components are comprised of one tree   Component extraction – Extract referenced components from a component tree – Generated by the eSNACC ASN.1 compiler automatically
  • 20. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Component Matching Implementation   Component assertion (GSER encoded) – An assertion about the presence, or values of, components within an ASN.1 value – Component reference • Identifying the component part of a ASN.1 value. – Matching rule – Component assertion value in GSER   Component filter (GSER encoded) – An “and”, “or”, “not” expression of ComponentAssertion, evaluates to either TRUE, FALSE or Undefined   Component equality matching rule – allComponentsMatch and refined matching rules – Generated by the eSNACC ASN.1 compiler automatically
  • 21. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 (userCertificate:componentFilterMatch := and:{ item:{ component “toBeSigned.subject”, rule distinguishedNameMatch, value “cn=John,o=IBM,c=US” }, item:{ component “toBeSigned.extension.*.extnValue.(2.5.29.15)”, rule bitStringMatch, value ‘010000000’B } } ) User request statement: “Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non- repudiation User request statement: “Find a certificate whose subject is cn=John,o=IBM,c=US and keyUsage is non- repudiation Component Reference Component Assertion Component Filter New Matching Rule Component Assertion Value: BIT STRING in GSER Example Component Filter
  • 22. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Overall Operational Steps in Our Framework  ¡ ¢£ ¡ ¤¥ ¤¦ §¨© ¦¥ ¥ ¥ !¡ ¥  ¡ ¢£ ¡ ¤¥ ¤¦ #¦ !¦¡ ¥ $¥ ¥ ¤ !¥  ¡ ¢£% '¥ ¥ ()012341)02564789)012@45A70)2117)0(562B2AC179D)EA179D)EAF7962EG)C24H3I 117)0742P7)2B)4A2H2)0I 117)0742P7)2B)4A2H2)0 )QA)412341 43A9)H30)43A5HA)056@302AR8179D)EAF7962EG)C 56@302AR82B)4A2H2)0 F5058)A)01 4340)F7B5A234)QA)41234()012341)02564789)012@45A70)2117)0(562B2AC179D)EA179D)EAF7962EG)C24H3I 117)0742P7)2B)4A2H2)0I 117)0742P7)2B)4A2H2)0 )QA)412341 43A9)H30)43A5HA)056@302AR8179D)EAF7962EG)C 56@302AR82B)4A2H2)0 F5058)A)01 4340)F7B5A234)QA)41234 ¡ ¢£ ¡ ¤¥ ¤¦ '¥ ¥ S ¥ ¦¨¡ ¤  ¡ ¢£% '¥ ¥ ()012341)02564789)012@45A70)2117)0(562B2AC179D)EA179D)EAF7962EG)C24H3I 117)0742P7)2B)4A2H2)0I 117)0742P7)2B)4A2H2)0 )QA)412341 43A9)H30)43A5HA)056@302AR8179D)EAF7962EG)C 56@302AR82B)4A2H2)0 F5058)A)01 4340)F7B5A234)QA)41234 ¥ !¡ ¥  ¡ ¢£ ¡ ¤¥ ¤¦ §¨© ¦¥  ¡ ¢£ ¡ ¤¥ ¤¦   ! T¨ ¤U V ¦ ! T¨ ¤U W© ¥  ¡ ¢£ ¡ ¤¥ ¤¦ S ¥ ¦¨¡ ¤ X©W ¥  ¡ ¢£ ¡ ¤¥ ¤¦ ¥ $¥ ¥ ¤ !¥  ¡ ¢£ ¡ ¤¥ ¤¦ §¨© ¦¥ ¡ !¥ ¨ ¤U S¦¦¨Y W ¦¥ ¡ !¥ ¨ ¤U `ba cd ef gh f iqp cr st p u v cp w cp xqy €q a ‚ƒ „ S  ¡ ¢£ ¡ ¤¥ ¤¦ ¥ ! T ¥ …W ¥ ¦ † ‡ ˆ ‰  ‘
  • 23. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Component Matching Optimization   Attribute/matching rule aliasing – Backward compatibility for legacy clients – Avoid expensive extensible filter processing Aliased Attribute Matching Rule Component Reference Alias Attribute x509certificateSerial toBeSigned.serial x509certificateIssuer toBeSigned.issuer integerMatch distinguishedNameMatch userCertificate userCertificate userCertificate:componentFilterMatch =: item:{ component “toBeSigned.serialNumber”, rule IntegerMatch, value 12345678 } x509certificateSerial=12345678 attribute aliasing Example Attribute Aliasing Table
  • 24. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Component Matching Optimization Contd.   Component indexing – Boost search performance by supporting component-level indexing • Indices on serial number, issuer name, version, etc   Component caching – Eliminate certificate (DER) decoding overheads • 72usec/certificate : Intel Xeon 2.8GHz – Cache decoded internal representations of a certificate
  • 25. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Performance Evaluation   Directory population – OpenSSL and Component Matching • DirectoryMark generated entries: 100k and 500k – Attribute extraction • Used XPS (OpenLDAP patch) to extract attributes   System under test (SUT) – IBM xSeries 445 servers : 4-way Intel Xeon 2.8GHz with 12GB memory – Network connection: 1 Gbps Ethernet – Server: OpenLDAP 2.2.2 and Berkeley DB 4.3 – Clients: DirectoryMark scripts (8-way IBM xSeries 445 servers)   Performance measurement – Search throughput (operations/sec) • Matching against serialNumber – 100K entry add performance
  • 26. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005  ¢¡   £ ¤¢¡   £ ¥¢¡   £ ¦¢¡   £ §¢¡   £ ¨  ¢¡   £ ¨ ¤¢¡   £ ¨ ¥¢¡   £ ¨ ¦¢¡   £ ¨ §¢¡   £ ¤ ¢¡   £ ¨ ¥ § ¨ © ¤  !#$%'()0 12 345 167 89 12 @A9 BCCD EFFG HI PF9 QRFG67 FH5 B SUT SV SUT WV XT SV XT WV YUT SV YUT WV `T SV `T WV aUT SV X a b X W YS cd ef ghi pqr stuvwxys€‚uƒ „… † ‡d „ˆf ‰i „… ‘i p ’’“ ”qq•h– —qi ˜™ q•ˆf qhd p Performance (Population / Search) 100k entries, DB cache = 1GBytes 500k entries, DB cache = 200MBtyes 410234234DB Size(Mbytes) 815167178Time (sec) Attribute ExtractionOpenSSL Component Matching 100K entries Directory Population Performance Directory Search Performance
  • 27. 4th PKI RD Workshop, NIST, Gaithersburg MD, April 19th 2005 Summary   Enhance LDAP-PKI interoperation for flexibility and manageability   Component matching enabled OpenLDAP server – ASN.1 awareness • Supports any ASN.1 type from its specification • Supports GSER in attribute / assertion values – Component Matching • Supports searching of any Certificate attributes – First implementation of component matching in a pure LDAP server   Component optimization techniques – Component aliasing, component indexing, and component caching – Enable high-performance, scalable LDAP certificate repository   Component matching enabled OpenLDAP will help to use PKC more flexibly in many PKI applications of Internet2, OASIS, GRID…