home *** CD-ROM | disk | FTP | other *** search
/ ftp.rsa.com / 2014.05.ftp.rsa.com.tar / ftp.rsa.com / pub / pkcs / 99workshop / notes.txt < prev    next >
Text File  |  2014-05-02  |  23KB  |  561 lines

  1. ===============================
  2. PKCS WORKSHOP '99 MEETING NOTES
  3. ===============================
  4.  
  5. Royal Institute of Technology (KTH)
  6. Stockholm, Sweden
  7. 29 September - 1 October 1999
  8.  
  9. Presentations and other supporting documents are available
  10. at http://www.rsasecurity.com/rsalabs/pkcs/.
  11.  
  12. Workshop hosted by RSA Laboratories' new Stockholm office 
  13. (M. Nystr÷m). Thanks to E. Lindberg and J. Jonsson for help 
  14. with local arrangements.
  15.  
  16. Notes taken by B. Kaliski.
  17.  
  18. ----------------------------
  19. Wednesday, 29 September 1999
  20. ----------------------------
  21.  
  22. Morning
  23. -------
  24.  
  25. * B. Kaliski (RSA Laboratories) welcomed participants.
  26.  
  27. * J. Hσstad (KTH) gave a keynote presentation on the role 
  28. of theory in practical cryptography.
  29.  
  30. * B. Kaliski and M. Nystr÷m (RSA Laboratories Europe)
  31. alternately gave presentations on PKCS #5, PKCS #12, the 
  32. new PKCS contribution agreement, and PKCS #9.
  33.  
  34. - PKCS #5 v2.0 was completed in March. There is some 
  35. potential for provable security of its key derivation 
  36. function. Possible future work includes specification of a 
  37. key derivation parameters including a salt value and other 
  38. key usage information, addition of "pepper" (secret portion 
  39. of salt), and password-based authentication and key 
  40. establishment methods involving public-key techniques. 
  41. However, no specific plans were announced.
  42.  
  43. - PKCS #12 v1.0 was published earlier this year. 
  44. Technically, it is basically the same as the near-final 
  45. draft from 18 months ago. The specification reflects 
  46. industry practice. No further work is planned on this 
  47. specification; PKCS #15 v1.1 is intended as a successor.
  48.  
  49. - PKCS #9 v2.0 (currently in draft form) consolidates and 
  50. updates attribute types that have been defined over recent 
  51. years and also defines two new object classes for 
  52. directories, pkcsEntity and naturalPerson. (The latter will 
  53. be in the next draft.) The naturalPerson object class and
  54. its associated attributes are defined in support of IETF
  55. PKIX qualified certificates. A draft was published recently;
  56. the final version of PKCS #9 v2.0 is expected in December.
  57.  
  58.  
  59. Afternoon
  60. ---------
  61.  
  62. * J.M. Robert (Gemplus) and B. Couillard (Chrysalis) 
  63. presented the concept of "trusted" keys for PKCS #11 which 
  64. addresses issues related to secure key management on 
  65. tokens. Currently, there is no way for a token to determine 
  66. whether the key with which it performs operations is from a 
  67. trusted source, particularly since a token does not process 
  68. certificates. (This is a consequence of PKCS #11's focus on 
  69. managing keys in user applications, rather than system 
  70. applications.) The proposal adds a "trusted" attribute to 
  71. keys and a "trusted" mode that can be enabled by a security 
  72. officer. In the trusted mode, key management operations 
  73. such as wrapping and unwrapping can only be performed with 
  74. trusted keys.
  75.  
  76. Typically, a set of trusted public keys would be installed 
  77. when a token is initialized. A mechanism is defined that 
  78. installs an additional public key through the use of the 
  79. C_ DeriveKey function, where the parameter to the operation 
  80. is a certificate containing the additional public key that 
  81. can be verified by a public key that is already trusted. 
  82. This is a useful extension that addresses the key 
  83. management infrastructure for PKCS #11 without modifying 
  84. the interface substantially.
  85.  
  86. There was some concern about the proposed implementation of 
  87. the mechanism, where the application pre-parses the 
  88. certificate and passes pointers to fields including the 
  89. signature and the public key. The intent is to minimize DER 
  90. processing by the token, but the implementation introduces 
  91. the risk that a rogue application may specify the 
  92. parameters so that they point to different positions within 
  93. a valid certificate. It may then be possible for the 
  94. opponent to install a different public key whose 
  95. corresponding private key is readily determined or that has 
  96. other weaknesses. 
  97.  
  98. As an example, it was observed that a valid DER-encoded RSA 
  99. public key (a SEQUENCE of two INTEGERS) will contain a 
  100. "baby" public key that is also a valid encoding with 
  101. probability about 2^{-25} for 1024-bit keys. Such a "baby" 
  102. public key will likely be easier to factor than the modulus 
  103. and may not even be composite, so an opponent may be able 
  104. to determine the corresponding private key. Thus by 
  105. modifying the pointers for such a certificate, the 
  106. opponent can install as "trusted" a new public key whose 
  107. private key the opponent knows.
  108.  
  109. In the case of discrete logarithm cryptosystems, the 
  110. opponent could modify the pointers to install a public key 
  111. that is not in the intended subgroup, leading to a 
  112. potential 
  113. security risk when the public key is employed.
  114.  
  115. Thus, it appears that an implementation of the mechanism 
  116. needs further processing of the certificate to verify the 
  117. correct position of the public key, although not 
  118. necessarily a full DER decoding.
  119.  
  120. * M. Wood (Intel) gave an update on PKCS #11 v2.1: 
  121. Cryptographic Token Interface Standard. Two drafts were 
  122. recently posted and a third is expected after the workshop. 
  123. The main updates in the drafts are as follows:
  124.  
  125. Draft #1
  126.  
  127. - UTF8
  128. - X.509v3 attribute certificates
  129. - secondary private key PIN
  130. - RIPE-MD 128/160 with RSA
  131. - hardware feature objects
  132. - formatting
  133. - lifetime of structures is specified
  134.  
  135. Draft #2
  136.  
  137. - PKCS #1 v2.0 OAEP
  138. - PKCS #5 v2.0 PBKDF2
  139. - PIN state indicator flags
  140.  
  141. Draft #3 (after workshop)
  142.  
  143. - FORTEZZA updates
  144. - final tweaks to secondary private key PIN
  145. - PKCS #1 v2.1 PSS
  146. - wording recommending or suggesting external 
  147. initialization for complex tokens
  148.  
  149. There was some discussion about the secondary private key 
  150. PIN. The current design is based on a new attribute 
  151. associated with a private key that indicates that a PIN is 
  152. required each time the private key is employed. This 
  153. supports emerging digital signature laws. An important goal 
  154. of the design is to maintain compatibility with PKCS #11 
  155. v2.01 implementations. In the current draft, the attribute 
  156. also requires that the PIN is entered through a protected 
  157. path such as a PIN pad, as opposed to a GUI, as also 
  158. required by the emerging laws. However, there was some 
  159. support for removing this restriction so that 
  160. implementations without a protected path for PIN entry 
  161. could make use of the feature.
  162.  
  163. An alternative that was discussed that also maintains 
  164. compatibility is to have a separate "virtual" token 
  165. associated with the private key that performs an autologout 
  166. after a single operation.
  167.  
  168. There was general support for keeping the approach in the 
  169. current draft and waiting for comments on the mailing list.
  170.  
  171. Topics to be considered for version 3.0 include the 
  172. following:
  173.  
  174. - generalized credentials ("policy" object)
  175. - challenge-response authentication
  176. - multiple users/roles
  177. - trusted "introduction"
  178. - CA key cloning (i.e. sharing selected keys between two 
  179. tokens)
  180. - k-of-n authentication (instance of generalized 
  181. credentials)
  182. - secret splitting
  183. - condition variable callback
  184. - "everything is an object"
  185. - token management
  186. - directory of modules
  187.  
  188. Additional topics may be found in Ray Sidney's notes from 
  189. previous workshops.
  190.  
  191. Conformance testing was also discussed, including 
  192. specification of profiles. This may be a more important
  193. activity in the near-term than development of PKCS #11 
  194. v3.0. The initial emphasis of the conformance testing is to 
  195. verify that the interface is implemented correctly, not 
  196. necessarily that the underlying algorithms are implemented 
  197. correctly. The latter would involve separate algorithm 
  198. conformance testing.
  199.  
  200. Testing software would be useful, but may raise some export
  201. problems. N. Ziring agreed to check whether this is the 
  202. case and also to contribute material on FORTEZZA and 
  203. related algorithms. 
  204.  
  205. As far as schedule: draft 3 will be the final draft, with a
  206. 30-day review to close approximately December 1. If there
  207. are no objections, RSA Laboratories will make final style
  208. edits and publish it as PKCS #11 v2.10. There will be a 
  209. call for intellectual property issues during the 30-day 
  210. review.
  211.  
  212.  
  213. ---------------------------
  214. Thursday, 30 September 1999
  215. ---------------------------
  216.  
  217. Morning
  218. -------
  219.  
  220. * B. Kaliski presented the PKCS #1 v2.1 draft, which adds
  221. support for the Bellare-Rogaway Probabilistic Signature
  222. Scheme (PSS). An open technical issue is how well the 
  223. scheme works on smart cards. J.M. Robert observed that it 
  224. may be preferable for the smart card to generate the salt 
  225. (to ensure that it is random), and since it is typically 
  226. not practical for the smart card to hash the message, the 
  227. salt should be applied after the message is processed, 
  228. rather than beforehand as in the draft. Some further study 
  229. is needed to determine how to do this without reintroducing 
  230. the potential for "birthday attacks" on initial blocks of 
  231. the hash function input.
  232.  
  233. A related concern, expressed by G. Meister (Giesecke & 
  234. Devrient), is that it may be preferable to generate and 
  235. keep the salt within the card to defend against fault-
  236. analysis attacks on RSA signatures like the one observed at 
  237. Bellcore. (If the salt is known to an opponent before the 
  238. signature is computed, and the signature computation is 
  239. faulty, then the opponent may have enough information from 
  240. the incorrect signature and the correct message and salt to 
  241. factor the modulus. However, an incorrect signature alone 
  242. would not provide enough information, since if the salt is 
  243. unknown the correct hash value and hence the correct 
  244. message representative would also be unknown.)
  245.  
  246. There is also a concern that the PSS encoding method may
  247. also be too complex for some smart card implementations,
  248. since the underlying mask generation function, which the
  249. card must implement, is in the default case based on a hash
  250. function.
  251.  
  252. W. Whyte (Baltimore) asked why an algorithm identifier for
  253. the hash function is not incorporated in the encoding
  254. method. The draft gives some justification and recommends 
  255. that the  mask generation function be based on the 
  256. underlying hash function. It may be helpful to repeat this 
  257. recommendation in the section on ASN.1 syntax. However, even 
  258. with this provision it may be possible that a very weak
  259. (e.g., "pathological") hash function be substituted to 
  260. produce a signature forgery. Thus, there also seems to be 
  261. a need to designate acceptable hash functions (or signature
  262. algorithms) for a given public key in a certificate or in
  263. other key management services.
  264.  
  265. There was general support for the proposed standards
  266. strategy calling for short-term recognition of both ANSI
  267. X9.31 and PKCS #1 v1.5 signatures, and long-term adoption 
  268. of a more robust scheme like PSS. Some further endorsement 
  269. for PKCS #1 v1.5 signatures in the short term might be 
  270. obtained from the WAP Forum, which specifies this scheme, 
  271. or from the PKCS community itself, although in the latter 
  272. case there is no formal means for the PKCS community as an 
  273. entity separate from RSA Laboratories to express a 
  274. position. (This point was left for further discussion on 
  275. Friday.)
  276.  
  277. As far as the additional topics, there was interest in
  278. documenting the ANSI X9.31 encoding method in PKCS #1 v2.1
  279. for reference purposes (without adopting other provisions 
  280. of that standard, such as "strong primes"). PSS-R support 
  281. is deferred while other standards groups including ISO/IEC 
  282. JTC1 SC27 study new message recovery schemes. There was no 
  283. strong interest in the Rabin-Williams primitives, composite 
  284. hash functions, or a new mask generation function, though 
  285. such topics could be discussed further on the mailing list.
  286.  
  287. * J.-O. Larsson (RSA Laboratories Europe) gave an overview
  288. of the motivation and design of PKCS #14 and described two
  289. proposed pseudorandom generation methods. There was some
  290. discussion about the model and compromise scenarios. It was
  291. also suggested to consider some of the results on provably
  292. secure pseudorandom generation that J. Hσstad presented in
  293. his keynote presentation.
  294.  
  295.  
  296. Afternoon
  297. ---------
  298.  
  299. * G. Meister and B. Struif (GMD) began with presentations 
  300. on European standardization activities related to PKCS #15. 
  301. Meister gave an overview of DIN SIG, which shares many 
  302. common features with PKCS #15 (as well as other PKCS
  303. documents). She proposed a model in which objects are 
  304. shared by multiple applications, where the PKCS #15 file 
  305. format and the other applications' formats (including DIN 
  306. SIG) coexist and point to many of the same objects. For 
  307. such a model to be successful, the individual objects' 
  308. formats need to be the same.
  309.  
  310. Struif described the German Digital Signature Card and gave
  311. detailed suggestions of some example "topologies" that
  312. should be mentioned in PKCS #15 to illustrate how the
  313. specification would map to the Digital Signature Card and
  314. other applications. He reiterated the model where multiple
  315. applications including PKCS #15 coexist and share objects.
  316. He also pointed out limitations in PKCS #15 related to PIN
  317. handling and suggested a method for incorporating biometric
  318. authentication.
  319.  
  320. There was some general discussion on the relationship
  321. between PKCS #11 and PKCS #15, and which would be
  322. implemented in different scenarios.
  323.  
  324. * S. Hellberg (LM Ericsson) gave an overview of the "SAT"
  325. (Self-Assessment Tests) project, a joint Norwegian /
  326. Finnish / Swedish effort focusing on testing of electronic
  327. ID specifications. Activities being considered include
  328. compliance tests for certificates and EID applications on
  329. cards, and interoperability of applications with cards and
  330. certificates. Other interoperability aspects include:
  331.  
  332. - PIN-handling (entry, changing, unlocking)
  333. - EID authentication
  334. - EID key encrypt/decrypt
  335. - EID signatures
  336.  
  337. As a profiling note, some emerging card formats have three
  338. key pairs (encryption, authentication and digital
  339. signature), with a separate PIN for the digital signature
  340. key pair.
  341.  
  342. * M. Nystr÷m described PKCS #15 v1.1, which extends the
  343. file format for cryptographic information to support a
  344. a software-only format suitable for desktop storage as
  345. well as memory-only smart cards. The new format includes
  346. integrity-protection and confidentiality-protection with
  347. a general structure for key management that currently
  348. includes password-based key derivation methods.
  349.  
  350.  
  351. ----------------------
  352. Friday, 1 October 1999
  353. ----------------------
  354.  
  355. Morning
  356. -------
  357.  
  358. * B. Kaliski gave an update on PKCS #13. There continues to
  359. be substantial development of standards involving elliptic
  360. curve cryptography in other sectors, including:
  361.  
  362. - IEEE P1363
  363. - ANSI X9.62 (ECDSA), X9.63 (EC key establishment)
  364. - NIST FIPS 186-2, recommended elliptic curves
  365. - ISO/IEC digital signature, key establishment, and ECC
  366.   documents
  367. - SECG
  368. - WAP Forum
  369.  
  370. Given the intention of PKCS to be a "catalyst" for other
  371. standards development and to provide "missing pieces",
  372. it was important to consider how PKCS #13 could add value
  373. to the other efforts. There was general support for the 
  374. idea that PKCS #13 could have a useful role in documenting 
  375. a subset of the other standards, in a straightforward 
  376. manner similar to PKCS #1. It could also provide 
  377. recommendations on the use of elliptic curve cryptography.
  378.  
  379. The initial version of such a document might include ECDSA
  380. and an elliptic curve encryption scheme like ECAES (based
  381. on the Adballa-Bellare-Rogaway DHES) which is specified in
  382. ANSI X9.63 and is in the outline for IEEE P1363a.
  383.  
  384. * M. Nystr÷m presented plans for improving the ASN.1 syntax
  385. in the PKCS documents and publishing compilable ASN.1
  386. modules. All modules will be written in the 1994/1997
  387. notation but will be compatible with existing documents
  388. using the 1988 version. Since the PKCS documents reference
  389. syntax defined in ISO/IEC standards and elsewhere, an
  390. important goal of the project is to make the referenced
  391. syntax available as well.
  392.  
  393. * M. Wood described a proposal developed with C. Ellison
  394. (Intel) for developing S-expression syntax for PKCS
  395. documents. The syntax was initially intended for SPKI. He 
  396. presented some initial syntax including PKCS #1 and #5. An 
  397. advantage is that encoding and decoding is easier to 
  398. implement for S-expressions than BER and DER for ASN.1. 
  399. However, an advantage of ASN.1 is that it provides a 
  400. language for specifying and constraining types. One 
  401. possibility is to define S-expression encoding rules for 
  402. ASN.1 types.
  403.  
  404. * B. Kaliski led a discussion on the PKCS process and plans
  405. for the next year. An informal PKCS process has emerged 
  406. over the past year, with several stages of development. The
  407. process will often begin with a contribution, which if
  408. accepted by RSA Laboratories will result in a draft 
  409. specification (i.e., "standard") or amendment (update to an 
  410. existing PKCS specification). Alternatively, the process 
  411. may start with a draft published by RSA Laboratories. The 
  412. draft will be subject to a review period, typically 14 or 
  413. 30 days, and additional drafts may follow. At some point, a 
  414. final draft will be released and then a PKCS document 
  415. (specification or amendment) will be published.
  416.  
  417. After publication, there are several options. If errors are 
  418. found in a document, errata may be published or a revision 
  419. may be published. A revision will be technically the same 
  420. as the original document, but may have corrections or 
  421. editorial improvements. Alternatively, a new version may be 
  422. developed that has technical changes, starting with a draft 
  423. following the development process above. Some documents may 
  424. be submitted to other standards bodies (e.g., PKCS #7) or 
  425. published elsewhere for reference. Others may be obsoleted 
  426. (e.g., PKCS #6).
  427.  
  428. The following scheme was proposed for numbering documents:
  429.  
  430.   PKCS #<number> v<major>.<minor> [amd<i>] [d<j> | rev<k>]
  431.   * number = document number (1, 3, 5, ..., 15, ...)
  432.   * major is major version number
  433.   * minor is minor version number; compatible within 
  434.     version
  435.   * amd is amendment number, updating a specification
  436.   * draft is draft number, during development of document
  437.     or amendment
  438.   * revision is revision number, after publication;
  439.     editorial changes or corrections only
  440.  
  441. The second area of discussion concerned the PKCS "suite" of 
  442. documents. There was general support for the idea that for 
  443. each PKCS specification, there should be a suite of 
  444. complementary documents, covering the following aspects:
  445. - ASN.1 syntax
  446. - test vectors
  447. - conformance definitions
  448. - profiles
  449. - usage guidelines
  450.  
  451. These are listed in roughly the order in which they are 
  452. expected to be developed for each specification. The ASN.1 
  453. project is already underway. As this is a large number of 
  454. documents, assistance from the PKCS community is requested.
  455.  
  456. Conformance testing was the third area of discussion. It is 
  457. clear that some set of conformance definitions along with 
  458. interoperability profiles will be needed to promote 
  459. interoperability among implementations of the PKCS 
  460. documents. The first stage is to define what conformance 
  461. means for each document. It may be helpful to have a 
  462. workshop that specifically focuses on conformance. The 
  463. conformance definitions can then be tested at 
  464. interoperability workshops. Formal validation based on the 
  465. definitions remains a long-term possibility.
  466.  
  467. The final area of discussion was PKCS as an "entity". As 
  468. was the case last year, there was general support for 
  469. keeping PKCS as it is, an informal intervendor process, 
  470. without formal membership or voting. This keeps the 
  471. uniqueness of PKCS compared to other standards bodies, an 
  472. open forum for discussion where participants' organizations 
  473. are not necessarily formally endorsing the results. 
  474. Although there is not a formal entity that can speak on 
  475. behalf of the PKCS community, the participants can 
  476. represent common concerns related to PKCS individually.
  477.  
  478. There was also general support for having PKCS documents 
  479. recognized as Publicly Available Specifications (PAS) for 
  480. ISO, which would provide an additional path, besides the 
  481. national bodies, for promoting PKCS documents into ISO 
  482. standards.
  483.  
  484. * As a final discussion item, B. Kaliski presented an 
  485. alternative version of PSS that addresses some of the 
  486. concerns raised on Thursday. In the alternative version, 
  487. the PSS encoding method is applied to the hash of a message 
  488. rather than the message itself. With this approach the salt 
  489. value (i.e., seed) can remain within the smart card during 
  490. the signature operation. The alternative is more consistent 
  491. with current methods in that messages are hashed in the 
  492. usual way (without a salt).
  493.  
  494. The idea of salted hashing has more general applicability 
  495. that just PSS, so could be implemented in other signature 
  496. schemes as well. As a result, it is convenient to separate 
  497. the role of the salt, which improves security against 
  498. collision search, from the role of the seed, which provides 
  499. provable security in the random oracle model and also 
  500. protects against fault analysis. Accordingly, it may be 
  501. reasonable to have both a salt and a seed. The discussion 
  502. on this topic will be continued on the pkcs-tng mailing 
  503. list.
  504.  
  505.  
  506. -----------------------------
  507. Participant / Registrant List
  508. -----------------------------
  509.  
  510. Magnus Alstr÷m, iD2 Technologies 
  511. Beni Arazi, CipherIt, Israel
  512. Stephen Archer, Bull AB 
  513. Hσkan Bj÷rsin, Celo Communications AB, Sweden
  514. Alan Braggins, nCipher Corporation Ltd., England
  515. Helge Bragstad, Schlumberger, Norway
  516. Bob Burns, Racal Security & Payments 
  517. Renato Cantini, Swisscom AG, Bern, Germany
  518. Sinisa Cicovic, Computer Security Technologies CST AB, Sweden
  519. Bruni Couillard, Chrysalis-ITS, Inc., Canada
  520. Jonny Edelbrock, Technology Nexus AB, Sweden
  521. Michel Guiraossian, Gemplus 
  522. Fredrik Gustafsson, iD2 Technologies 
  523. Fredrik Gustavsson, Bull AB 
  524. Daniel Hegner, Entegrity Solutions, Sweden
  525. Miklas Hellberg, iD2 Technologies, Sweden
  526. Stefan Hellberg, Secco, Sweden 
  527. Per HΣger÷, WM-data, Sweden
  528. Carl H÷ssner, RSA Security AB 
  529. Ian Jacksson, nCipher Corporation Ltd., England
  530. Oscar Jacobsson, Celo Communications AB, Sweden
  531. Jakob Jonsson, RSA Security AB, Sweden 
  532. Burt Kaliski, RSA Security Inc., USA 
  533. Zoltan Kelemen, RSA Security AB, Sweden
  534. Max Kohler, iT_security AG, Switzerland
  535. Markko Kontio, Setec Oy, Finland
  536. Karin Krizinger, Utimaco Safe Concept GmbH, Austria
  537. Choukri Lahmar, Gemplus, France
  538. Daniel Lanzd, CertCo, Inc. 
  539. Bj÷rn Lindberg, Ericcson 
  540. Roland Lockhart, Entrust Technologies Ltd., Canada
  541. Gisela Meister, Giesecke&Devrient, Munich 
  542. Paul Montauge, Motorola Australia Software Centre, Australia
  543. Dragoljub Nesic, Computer Security Technologies CST AB, Sweden
  544. Magnus Nystr÷m, RSA Security AB, Sweden
  545. Mats NΣslund, Ericsson Research, Sweden 
  546. Tord Persokrud, Ericsson, AS Norway
  547. Jean-Marc Robert, Gemplus, Canada
  548. Alex Sharp, Baltimore Technologies, England
  549. Peter Sikliosi, Entegrity Solutions Sweden
  550. Bruno Struif, GMD, Darmstadt 
  551. James Torjussen, Racal Security & Payments 
  552. Peter Trommler, Zuercher Kantonalbank 
  553. Hirosato Tsuji, Mitsubishi Electric Corporation, Japan
  554. Torsten Walger, Dresdner Bank, AG Germany
  555. William Whyte, Baltimore Technologies, Ireland
  556. Peter Widjeskog, Setec Oy, Finland
  557. Matthew Wood, Intel Security Technology Lab, USA
  558. Neal Ziring, National Security Agency, USA
  559.  
  560. =====
  561.