diff --git a/index.html b/index.html index 6d9ec7b..fee8514 100644 --- a/index.html +++ b/index.html @@ -1,623 +1,622 @@ Listing -Wed Jul 31 17:25:28 UTC 2024 +Wed Aug 7 15:32:40 UTC 2024
  1. .
  2. +
  3. ./test/pdf_count.svg
  4. +
  5. ./test/meta-info.txt
  6. +
  7. ./test/html_count.svg
  8. +
  9. ./test/transforms.svg
  10. +
  11. ./test/Minidash.adoc
  12. +
  13. ./test/spell-badge.svg
  14. +
  15. ./test/effective.xml
  16. +
  17. ./test/pkg-ssh.xml
  18. +
  19. ./test/application-release-linkable.html
  20. +
  21. ./test/HTMLs.adoc
  22. +
  23. ./test/AppliedTDs.html
  24. +
  25. ./test/diff-v1.4.html
  26. +
  27. ./test/PDFs.adoc
  28. +
  29. ./test/tds.svg
  30. +
  31. ./test/SanityChecksOutput.md
  32. +
  33. ./test/AppliedTDs-Diff.html
  34. +
  35. ./test/js/diff.js
  36. +
  37. ./test/js/tooltip/wz_tooltip.js
  38. +
  39. ./test/js/tooltip/tip_balloon.js
  40. +
  41. ./test/js/tooltip/tip_balloon/t.gif
  42. +
  43. ./test/js/tooltip/tip_balloon/lt.gif
  44. +
  45. ./test/js/tooltip/tip_balloon/stemt.gif
  46. +
  47. ./test/js/tooltip/tip_balloon/l.gif
  48. +
  49. ./test/js/tooltip/tip_balloon/lb.gif
  50. +
  51. ./test/js/tooltip/tip_balloon/r.gif
  52. +
  53. ./test/js/tooltip/tip_balloon/b.gif
  54. +
  55. ./test/js/tooltip/tip_balloon/rb.gif
  56. +
  57. ./test/js/tooltip/tip_balloon/stemb.gif
  58. +
  59. ./test/js/tooltip/tip_balloon/background.gif
  60. +
  61. ./test/js/tooltip/tip_balloon/rt.gif
  62. +
  63. ./test/js/dojo/dojo.js
  64. +
  65. ./test/js/dojo/src/event.js
  66. +
  67. ./test/js/dojo/src/html.js
  68. +
  69. ./test/js/dojo/src/lang/__package__.js
  70. +
  71. ./test/js/dojo/src/lang/func.js
  72. +
  73. ./test/js/dojo/src/lang/repr.js
  74. +
  75. ./test/js/dojo/src/lang/extras.js
  76. +
  77. ./test/js/dojo/src/lang/array.js
  78. +
  79. ./test/js/dojo/src/lang/common.js
  80. +
  81. ./test/js/dojo/src/lang/timing/__package__.js
  82. +
  83. ./test/js/dojo/src/lang/timing/Timer.js
  84. +
  85. ./test/js/dojo/src/lang/timing/Streamer.js
  86. +
  87. ./test/js/dojo/src/lang/type.js
  88. +
  89. ./test/js/dojo/src/lang/declare.js
  90. +
  91. ./test/js/dojo/src/lang/assert.js
  92. +
  93. ./test/js/dojo/src/experimental.js
  94. +
  95. ./test/js/dojo/src/event/__package__.js
  96. +
  97. ./test/js/dojo/src/event/topic.js
  98. +
  99. ./test/js/dojo/src/event/common.js
  100. +
  101. ./test/js/dojo/src/event/browser.js
  102. +
  103. ./test/js/dojo/src/html/style.js
  104. +
  105. ./test/js/dojo/src/html/metrics.js
  106. +
  107. ./test/js/dojo/src/html/__package__.js
  108. +
  109. ./test/js/dojo/src/html/shadow.js
  110. +
  111. ./test/js/dojo/src/html/util.js
  112. +
  113. ./test/js/dojo/src/html/color.js
  114. +
  115. ./test/js/dojo/src/html/common.js
  116. +
  117. ./test/js/dojo/src/html/display.js
  118. +
  119. ./test/js/dojo/src/html/selection.js
  120. +
  121. ./test/js/dojo/src/html/layout.js
  122. +
  123. ./test/js/dojo/src/lang.js
  124. +
  125. ./test/images/diff-next.gif
  126. +
  127. ./test/images/diffplus.gif
  128. +
  129. ./test/images/cclogo.png
  130. +
  131. ./test/images/diffmin.gif
  132. +
  133. ./test/images/appdiagram.png
  134. +
  135. ./test/images/diff-first.gif
  136. +
  137. ./test/images/diff-last.gif
  138. +
  139. ./test/images/niaplogo.png
  140. +
  141. ./test/images/diffunderline.gif
  142. +
  143. ./test/images/expanded.png
  144. +
  145. ./test/images/diff-previous.gif
  146. +
  147. ./test/images/toeruntime.png
  148. +
  149. ./test/images/collapsed.png
  150. +
  151. ./test/images/toe.png
  152. +
  153. ./test/images/niaplogodraft.png
  154. +
  155. ./test/ValidationReport.txt
  156. +
  157. ./test/application-release.html
  158. +
  159. ./test/SpellCheckReport.txt
  160. +
  161. ./test/warnings.svg
  162. +
  163. ./test/application.html
  164. +
  165. ./test/pkg-tls.xml
  166. +
  167. ./test/TDValidationReport.txt
  168. +
  169. ./test/css/diff.css
  170. +
  171. ./test/validation.svg
  172. +
  173. ./.git
  174. +
  175. ./.git/hooks/applypatch-msg.sample
  176. +
  177. ./.git/hooks/update.sample
  178. +
  179. ./.git/hooks/fsmonitor-watchman.sample
  180. +
  181. ./.git/hooks/pre-merge-commit.sample
  182. +
  183. ./.git/hooks/pre-push.sample
  184. +
  185. ./.git/hooks/commit-msg.sample
  186. +
  187. ./.git/hooks/pre-commit.sample
  188. +
  189. ./.git/hooks/pre-applypatch.sample
  190. +
  191. ./.git/hooks/sendemail-validate.sample
  192. +
  193. ./.git/hooks/post-update.sample
  194. +
  195. ./.git/hooks/prepare-commit-msg.sample
  196. +
  197. ./.git/hooks/push-to-checkout.sample
  198. +
  199. ./.git/hooks/pre-receive.sample
  200. +
  201. ./.git/hooks/pre-rebase.sample
  202. +
  203. ./.git/objects/pack/pack-cec9a66f87f7824559a88ded68a97316d7ba0098.rev
  204. +
  205. ./.git/objects/pack/pack-cec9a66f87f7824559a88ded68a97316d7ba0098.pack
  206. +
  207. ./.git/objects/pack/pack-cec9a66f87f7824559a88ded68a97316d7ba0098.idx
  208. +
  209. ./test2/pdf_count.svg
  210. +
  211. ./test2/meta-info.txt
  212. +
  213. ./test2/html_count.svg
  214. +
  215. ./test2/transforms.svg
  216. +
  217. ./test2/Minidash.adoc
  218. +
  219. ./test2/application-release.html.pdf
  220. +
  221. ./test2/spell-badge.svg
  222. +
  223. ./test2/effective.xml
  224. +
  225. ./test2/pkg-ssh.xml
  226. +
  227. ./test2/application-release-linkable.html
  228. +
  229. ./test2/HTMLs.adoc
  230. +
  231. ./test2/AppliedTDs.html
  232. +
  233. ./test2/diff-v1.4.html
  234. +
  235. ./test2/PDFs.adoc
  236. +
  237. ./test2/tds.svg
  238. +
  239. ./test2/SanityChecksOutput.md
  240. +
  241. ./test2/AppliedTDs-Diff.html
  242. +
  243. ./test2/js/diff.js
  244. +
  245. ./test2/js/tooltip/wz_tooltip.js
  246. +
  247. ./test2/js/tooltip/tip_balloon.js
  248. +
  249. ./test2/js/tooltip/tip_balloon/t.gif
  250. +
  251. ./test2/js/tooltip/tip_balloon/lt.gif
  252. +
  253. ./test2/js/tooltip/tip_balloon/stemt.gif
  254. +
  255. ./test2/js/tooltip/tip_balloon/l.gif
  256. +
  257. ./test2/js/tooltip/tip_balloon/lb.gif
  258. +
  259. ./test2/js/tooltip/tip_balloon/r.gif
  260. +
  261. ./test2/js/tooltip/tip_balloon/b.gif
  262. +
  263. ./test2/js/tooltip/tip_balloon/rb.gif
  264. +
  265. ./test2/js/tooltip/tip_balloon/stemb.gif
  266. +
  267. ./test2/js/tooltip/tip_balloon/background.gif
  268. +
  269. ./test2/js/tooltip/tip_balloon/rt.gif
  270. +
  271. ./test2/js/dojo/dojo.js
  272. +
  273. ./test2/js/dojo/src/event.js
  274. +
  275. ./test2/js/dojo/src/html.js
  276. +
  277. ./test2/js/dojo/src/lang/__package__.js
  278. +
  279. ./test2/js/dojo/src/lang/func.js
  280. +
  281. ./test2/js/dojo/src/lang/repr.js
  282. +
  283. ./test2/js/dojo/src/lang/extras.js
  284. +
  285. ./test2/js/dojo/src/lang/array.js
  286. +
  287. ./test2/js/dojo/src/lang/common.js
  288. +
  289. ./test2/js/dojo/src/lang/timing/__package__.js
  290. +
  291. ./test2/js/dojo/src/lang/timing/Timer.js
  292. +
  293. ./test2/js/dojo/src/lang/timing/Streamer.js
  294. +
  295. ./test2/js/dojo/src/lang/type.js
  296. +
  297. ./test2/js/dojo/src/lang/declare.js
  298. +
  299. ./test2/js/dojo/src/lang/assert.js
  300. +
  301. ./test2/js/dojo/src/experimental.js
  302. +
  303. ./test2/js/dojo/src/event/__package__.js
  304. +
  305. ./test2/js/dojo/src/event/topic.js
  306. +
  307. ./test2/js/dojo/src/event/common.js
  308. +
  309. ./test2/js/dojo/src/event/browser.js
  310. +
  311. ./test2/js/dojo/src/html/style.js
  312. +
  313. ./test2/js/dojo/src/html/metrics.js
  314. +
  315. ./test2/js/dojo/src/html/__package__.js
  316. +
  317. ./test2/js/dojo/src/html/shadow.js
  318. +
  319. ./test2/js/dojo/src/html/util.js
  320. +
  321. ./test2/js/dojo/src/html/color.js
  322. +
  323. ./test2/js/dojo/src/html/common.js
  324. +
  325. ./test2/js/dojo/src/html/display.js
  326. +
  327. ./test2/js/dojo/src/html/selection.js
  328. +
  329. ./test2/js/dojo/src/html/layout.js
  330. +
  331. ./test2/js/dojo/src/lang.js
  332. +
  333. ./test2/images/diff-next.gif
  334. +
  335. ./test2/images/diffplus.gif
  336. +
  337. ./test2/images/cclogo.png
  338. +
  339. ./test2/images/diffmin.gif
  340. +
  341. ./test2/images/appdiagram.png
  342. +
  343. ./test2/images/diff-first.gif
  344. +
  345. ./test2/images/diff-last.gif
  346. +
  347. ./test2/images/niaplogo.png
  348. +
  349. ./test2/images/diffunderline.gif
  350. +
  351. ./test2/images/expanded.png
  352. +
  353. ./test2/images/diff-previous.gif
  354. +
  355. ./test2/images/toeruntime.png
  356. +
  357. ./test2/images/collapsed.png
  358. +
  359. ./test2/images/toe.png
  360. +
  361. ./test2/images/niaplogodraft.png
  362. +
  363. ./test2/ValidationReport.txt
  364. +
  365. ./test2/application-release.html
  366. +
  367. ./test2/SpellCheckReport.txt
  368. +
  369. ./test2/warnings.svg
  370. +
  371. ./test2/application.html
  372. +
  373. ./test2/pkg-tls.xml
  374. +
  375. ./test2/TDValidationReport.txt
  376. +
  377. ./test2/css/diff.css
  378. +
  379. ./test2/validation.svg
  380. +
  381. ./test2/application-release-linkable.html.pdf
  382. +
  383. ./test2/application.html.pdf
  384. ./release-1.4
  385. -
  386. ./release-1.4/diff-v1.4.html
  387. -
  388. ./release-1.4/transforms.svg
  389. ./release-1.4/pdf_count.svg
  390. -
  391. ./release-1.4/validation.svg
  392. -
  393. ./release-1.4/application-release.html.pdf
  394. -
  395. ./release-1.4/css/diff.css
  396. -
  397. ./release-1.4/images/diffmin.gif
  398. -
  399. ./release-1.4/images/toe.png
  400. -
  401. ./release-1.4/images/toeruntime.png
  402. -
  403. ./release-1.4/images/diffplus.gif
  404. -
  405. ./release-1.4/images/expanded.png
  406. -
  407. ./release-1.4/images/diff-next.gif
  408. -
  409. ./release-1.4/images/diffunderline.gif
  410. -
  411. ./release-1.4/images/niaplogodraft.png
  412. -
  413. ./release-1.4/images/collapsed.png
  414. -
  415. ./release-1.4/images/diff-previous.gif
  416. -
  417. ./release-1.4/images/appdiagram.png
  418. -
  419. ./release-1.4/images/diff-last.gif
  420. -
  421. ./release-1.4/images/cclogo.png
  422. -
  423. ./release-1.4/images/niaplogo.png
  424. -
  425. ./release-1.4/images/diff-first.gif
  426. ./release-1.4/meta-info.txt
  427. +
  428. ./release-1.4/html_count.svg
  429. +
  430. ./release-1.4/transforms.svg
  431. +
  432. ./release-1.4/Minidash.adoc
  433. +
  434. ./release-1.4/application-release.html.pdf
  435. +
  436. ./release-1.4/spell-badge.svg
  437. +
  438. ./release-1.4/effective.xml
  439. ./release-1.4/application-release-linkable.html
  440. ./release-1.4/HTMLs.adoc
  441. +
  442. ./release-1.4/AppliedTDs.html
  443. +
  444. ./release-1.4/diff-v1.4.html
  445. +
  446. ./release-1.4/PDFs.adoc
  447. +
  448. ./release-1.4/tds.svg
  449. +
  450. ./release-1.4/SanityChecksOutput.md
  451. +
  452. ./release-1.4/AppliedTDs-Diff.html
  453. ./release-1.4/js/diff.js
  454. -
  455. ./release-1.4/js/tooltip/tip_balloon/lb.gif
  456. +
  457. ./release-1.4/js/tooltip/wz_tooltip.js
  458. +
  459. ./release-1.4/js/tooltip/tip_balloon.js
  460. +
  461. ./release-1.4/js/tooltip/tip_balloon/t.gif
  462. +
  463. ./release-1.4/js/tooltip/tip_balloon/lt.gif
  464. +
  465. ./release-1.4/js/tooltip/tip_balloon/stemt.gif
  466. ./release-1.4/js/tooltip/tip_balloon/l.gif
  467. +
  468. ./release-1.4/js/tooltip/tip_balloon/lb.gif
  469. ./release-1.4/js/tooltip/tip_balloon/r.gif
  470. -
  471. ./release-1.4/js/tooltip/tip_balloon/rb.gif
  472. -
  473. ./release-1.4/js/tooltip/tip_balloon/lt.gif
  474. ./release-1.4/js/tooltip/tip_balloon/b.gif
  475. -
  476. ./release-1.4/js/tooltip/tip_balloon/stemt.gif
  477. -
  478. ./release-1.4/js/tooltip/tip_balloon/background.gif
  479. +
  480. ./release-1.4/js/tooltip/tip_balloon/rb.gif
  481. ./release-1.4/js/tooltip/tip_balloon/stemb.gif
  482. -
  483. ./release-1.4/js/tooltip/tip_balloon/t.gif
  484. +
  485. ./release-1.4/js/tooltip/tip_balloon/background.gif
  486. ./release-1.4/js/tooltip/tip_balloon/rt.gif
  487. -
  488. ./release-1.4/js/tooltip/tip_balloon.js
  489. -
  490. ./release-1.4/js/tooltip/wz_tooltip.js
  491. -
  492. ./release-1.4/js/dojo/src/lang/array.js
  493. -
  494. ./release-1.4/js/dojo/src/lang/common.js
  495. -
  496. ./release-1.4/js/dojo/src/lang/declare.js
  497. -
  498. ./release-1.4/js/dojo/src/lang/extras.js
  499. -
  500. ./release-1.4/js/dojo/src/lang/repr.js
  501. +
  502. ./release-1.4/js/dojo/dojo.js
  503. +
  504. ./release-1.4/js/dojo/src/event.js
  505. +
  506. ./release-1.4/js/dojo/src/html.js
  507. ./release-1.4/js/dojo/src/lang/__package__.js
  508. ./release-1.4/js/dojo/src/lang/func.js
  509. -
  510. ./release-1.4/js/dojo/src/lang/type.js
  511. -
  512. ./release-1.4/js/dojo/src/lang/timing/Timer.js
  513. +
  514. ./release-1.4/js/dojo/src/lang/repr.js
  515. +
  516. ./release-1.4/js/dojo/src/lang/extras.js
  517. +
  518. ./release-1.4/js/dojo/src/lang/array.js
  519. +
  520. ./release-1.4/js/dojo/src/lang/common.js
  521. ./release-1.4/js/dojo/src/lang/timing/__package__.js
  522. +
  523. ./release-1.4/js/dojo/src/lang/timing/Timer.js
  524. ./release-1.4/js/dojo/src/lang/timing/Streamer.js
  525. +
  526. ./release-1.4/js/dojo/src/lang/type.js
  527. +
  528. ./release-1.4/js/dojo/src/lang/declare.js
  529. ./release-1.4/js/dojo/src/lang/assert.js
  530. -
  531. ./release-1.4/js/dojo/src/event.js
  532. -
  533. ./release-1.4/js/dojo/src/html/layout.js
  534. -
  535. ./release-1.4/js/dojo/src/html/common.js
  536. -
  537. ./release-1.4/js/dojo/src/html/util.js
  538. -
  539. ./release-1.4/js/dojo/src/html/selection.js
  540. -
  541. ./release-1.4/js/dojo/src/html/color.js
  542. -
  543. ./release-1.4/js/dojo/src/html/__package__.js
  544. -
  545. ./release-1.4/js/dojo/src/html/shadow.js
  546. -
  547. ./release-1.4/js/dojo/src/html/display.js
  548. -
  549. ./release-1.4/js/dojo/src/html/metrics.js
  550. -
  551. ./release-1.4/js/dojo/src/html/style.js
  552. ./release-1.4/js/dojo/src/experimental.js
  553. +
  554. ./release-1.4/js/dojo/src/event/__package__.js
  555. +
  556. ./release-1.4/js/dojo/src/event/topic.js
  557. ./release-1.4/js/dojo/src/event/common.js
  558. ./release-1.4/js/dojo/src/event/browser.js
  559. -
  560. ./release-1.4/js/dojo/src/event/topic.js
  561. -
  562. ./release-1.4/js/dojo/src/event/__package__.js
  563. -
  564. ./release-1.4/js/dojo/src/html.js
  565. +
  566. ./release-1.4/js/dojo/src/html/style.js
  567. +
  568. ./release-1.4/js/dojo/src/html/metrics.js
  569. +
  570. ./release-1.4/js/dojo/src/html/__package__.js
  571. +
  572. ./release-1.4/js/dojo/src/html/shadow.js
  573. +
  574. ./release-1.4/js/dojo/src/html/util.js
  575. +
  576. ./release-1.4/js/dojo/src/html/color.js
  577. +
  578. ./release-1.4/js/dojo/src/html/common.js
  579. +
  580. ./release-1.4/js/dojo/src/html/display.js
  581. +
  582. ./release-1.4/js/dojo/src/html/selection.js
  583. +
  584. ./release-1.4/js/dojo/src/html/layout.js
  585. ./release-1.4/js/dojo/src/lang.js
  586. -
  587. ./release-1.4/js/dojo/dojo.js
  588. -
  589. ./release-1.4/tds.svg
  590. -
  591. ./release-1.4/effective.xml
  592. -
  593. ./release-1.4/TDValidationReport.txt
  594. -
  595. ./release-1.4/PDFs.adoc
  596. +
  597. ./release-1.4/images/diff-next.gif
  598. +
  599. ./release-1.4/images/diffplus.gif
  600. +
  601. ./release-1.4/images/cclogo.png
  602. +
  603. ./release-1.4/images/diffmin.gif
  604. +
  605. ./release-1.4/images/appdiagram.png
  606. +
  607. ./release-1.4/images/diff-first.gif
  608. +
  609. ./release-1.4/images/diff-last.gif
  610. +
  611. ./release-1.4/images/niaplogo.png
  612. +
  613. ./release-1.4/images/diffunderline.gif
  614. +
  615. ./release-1.4/images/expanded.png
  616. +
  617. ./release-1.4/images/diff-previous.gif
  618. +
  619. ./release-1.4/images/toeruntime.png
  620. +
  621. ./release-1.4/images/collapsed.png
  622. +
  623. ./release-1.4/images/toe.png
  624. +
  625. ./release-1.4/images/niaplogodraft.png
  626. +
  627. ./release-1.4/ValidationReport.txt
  628. ./release-1.4/application-release.html
  629. -
  630. ./release-1.4/AppliedTDs.html
  631. -
  632. ./release-1.4/SanityChecksOutput.md
  633. -
  634. ./release-1.4/application.html
  635. +
  636. ./release-1.4/SpellCheckReport.txt
  637. ./release-1.4/warnings.svg
  638. -
  639. ./release-1.4/html_count.svg
  640. -
  641. ./release-1.4/ValidationReport.txt
  642. -
  643. ./release-1.4/Minidash.adoc
  644. -
  645. ./release-1.4/application.html.pdf
  646. +
  647. ./release-1.4/application.html
  648. +
  649. ./release-1.4/TDValidationReport.txt
  650. +
  651. ./release-1.4/css/diff.css
  652. +
  653. ./release-1.4/validation.svg
  654. ./release-1.4/application-release-linkable.html.pdf
  655. -
  656. ./release-1.4/spell-badge.svg
  657. -
  658. ./release-1.4/AppliedTDs-Diff.html
  659. -
  660. ./release-1.4/SpellCheckReport.txt
  661. -
  662. ./index.html
  663. -
  664. ./master/diff-v1.4.html
  665. -
  666. ./master/transforms.svg
  667. +
  668. ./release-1.4/application.html.pdf
  669. ./master/pdf_count.svg
  670. -
  671. ./master/validation.svg
  672. -
  673. ./master/css/diff.css
  674. -
  675. ./master/pkg-ssh.xml
  676. -
  677. ./master/images/diffmin.gif
  678. -
  679. ./master/images/toe.png
  680. -
  681. ./master/images/toeruntime.png
  682. -
  683. ./master/images/diffplus.gif
  684. -
  685. ./master/images/expanded.png
  686. -
  687. ./master/images/diff-next.gif
  688. -
  689. ./master/images/diffunderline.gif
  690. -
  691. ./master/images/niaplogodraft.png
  692. -
  693. ./master/images/collapsed.png
  694. -
  695. ./master/images/diff-previous.gif
  696. -
  697. ./master/images/appdiagram.png
  698. -
  699. ./master/images/diff-last.gif
  700. -
  701. ./master/images/cclogo.png
  702. -
  703. ./master/images/niaplogo.png
  704. -
  705. ./master/images/diff-first.gif
  706. ./master/meta-info.txt
  707. +
  708. ./master/html_count.svg
  709. +
  710. ./master/transforms.svg
  711. +
  712. ./master/Minidash.adoc
  713. +
  714. ./master/spell-badge.svg
  715. +
  716. ./master/effective.xml
  717. +
  718. ./master/pkg-ssh.xml
  719. ./master/application-release-linkable.html
  720. ./master/HTMLs.adoc
  721. +
  722. ./master/AppliedTDs.html
  723. +
  724. ./master/diff-v1.4.html
  725. +
  726. ./master/PDFs.adoc
  727. +
  728. ./master/tds.svg
  729. +
  730. ./master/SanityChecksOutput.md
  731. +
  732. ./master/AppliedTDs-Diff.html
  733. ./master/js/diff.js
  734. -
  735. ./master/js/tooltip/tip_balloon/lb.gif
  736. +
  737. ./master/js/tooltip/wz_tooltip.js
  738. +
  739. ./master/js/tooltip/tip_balloon.js
  740. +
  741. ./master/js/tooltip/tip_balloon/t.gif
  742. +
  743. ./master/js/tooltip/tip_balloon/lt.gif
  744. +
  745. ./master/js/tooltip/tip_balloon/stemt.gif
  746. ./master/js/tooltip/tip_balloon/l.gif
  747. +
  748. ./master/js/tooltip/tip_balloon/lb.gif
  749. ./master/js/tooltip/tip_balloon/r.gif
  750. -
  751. ./master/js/tooltip/tip_balloon/rb.gif
  752. -
  753. ./master/js/tooltip/tip_balloon/lt.gif
  754. ./master/js/tooltip/tip_balloon/b.gif
  755. -
  756. ./master/js/tooltip/tip_balloon/stemt.gif
  757. -
  758. ./master/js/tooltip/tip_balloon/background.gif
  759. +
  760. ./master/js/tooltip/tip_balloon/rb.gif
  761. ./master/js/tooltip/tip_balloon/stemb.gif
  762. -
  763. ./master/js/tooltip/tip_balloon/t.gif
  764. +
  765. ./master/js/tooltip/tip_balloon/background.gif
  766. ./master/js/tooltip/tip_balloon/rt.gif
  767. -
  768. ./master/js/tooltip/tip_balloon.js
  769. -
  770. ./master/js/tooltip/wz_tooltip.js
  771. -
  772. ./master/js/dojo/src/lang/array.js
  773. -
  774. ./master/js/dojo/src/lang/common.js
  775. -
  776. ./master/js/dojo/src/lang/declare.js
  777. -
  778. ./master/js/dojo/src/lang/extras.js
  779. -
  780. ./master/js/dojo/src/lang/repr.js
  781. +
  782. ./master/js/dojo/dojo.js
  783. +
  784. ./master/js/dojo/src/event.js
  785. +
  786. ./master/js/dojo/src/html.js
  787. ./master/js/dojo/src/lang/__package__.js
  788. ./master/js/dojo/src/lang/func.js
  789. -
  790. ./master/js/dojo/src/lang/type.js
  791. -
  792. ./master/js/dojo/src/lang/timing/Timer.js
  793. +
  794. ./master/js/dojo/src/lang/repr.js
  795. +
  796. ./master/js/dojo/src/lang/extras.js
  797. +
  798. ./master/js/dojo/src/lang/array.js
  799. +
  800. ./master/js/dojo/src/lang/common.js
  801. ./master/js/dojo/src/lang/timing/__package__.js
  802. +
  803. ./master/js/dojo/src/lang/timing/Timer.js
  804. ./master/js/dojo/src/lang/timing/Streamer.js
  805. +
  806. ./master/js/dojo/src/lang/type.js
  807. +
  808. ./master/js/dojo/src/lang/declare.js
  809. ./master/js/dojo/src/lang/assert.js
  810. -
  811. ./master/js/dojo/src/event.js
  812. -
  813. ./master/js/dojo/src/html/layout.js
  814. -
  815. ./master/js/dojo/src/html/common.js
  816. -
  817. ./master/js/dojo/src/html/util.js
  818. -
  819. ./master/js/dojo/src/html/selection.js
  820. -
  821. ./master/js/dojo/src/html/color.js
  822. -
  823. ./master/js/dojo/src/html/__package__.js
  824. -
  825. ./master/js/dojo/src/html/shadow.js
  826. -
  827. ./master/js/dojo/src/html/display.js
  828. -
  829. ./master/js/dojo/src/html/metrics.js
  830. -
  831. ./master/js/dojo/src/html/style.js
  832. ./master/js/dojo/src/experimental.js
  833. +
  834. ./master/js/dojo/src/event/__package__.js
  835. +
  836. ./master/js/dojo/src/event/topic.js
  837. ./master/js/dojo/src/event/common.js
  838. ./master/js/dojo/src/event/browser.js
  839. -
  840. ./master/js/dojo/src/event/topic.js
  841. -
  842. ./master/js/dojo/src/event/__package__.js
  843. -
  844. ./master/js/dojo/src/html.js
  845. +
  846. ./master/js/dojo/src/html/style.js
  847. +
  848. ./master/js/dojo/src/html/metrics.js
  849. +
  850. ./master/js/dojo/src/html/__package__.js
  851. +
  852. ./master/js/dojo/src/html/shadow.js
  853. +
  854. ./master/js/dojo/src/html/util.js
  855. +
  856. ./master/js/dojo/src/html/color.js
  857. +
  858. ./master/js/dojo/src/html/common.js
  859. +
  860. ./master/js/dojo/src/html/display.js
  861. +
  862. ./master/js/dojo/src/html/selection.js
  863. +
  864. ./master/js/dojo/src/html/layout.js
  865. ./master/js/dojo/src/lang.js
  866. -
  867. ./master/js/dojo/dojo.js
  868. -
  869. ./master/tds.svg
  870. -
  871. ./master/effective.xml
  872. -
  873. ./master/TDValidationReport.txt
  874. -
  875. ./master/PDFs.adoc
  876. -
  877. ./master/application-release.html
  878. -
  879. ./master/AppliedTDs.html
  880. -
  881. ./master/SanityChecksOutput.md
  882. -
  883. ./master/application.html
  884. -
  885. ./master/warnings.svg
  886. -
  887. ./master/html_count.svg
  888. +
  889. ./master/images/diff-next.gif
  890. +
  891. ./master/images/diffplus.gif
  892. +
  893. ./master/images/cclogo.png
  894. +
  895. ./master/images/diffmin.gif
  896. +
  897. ./master/images/appdiagram.png
  898. +
  899. ./master/images/diff-first.gif
  900. +
  901. ./master/images/diff-last.gif
  902. +
  903. ./master/images/niaplogo.png
  904. +
  905. ./master/images/diffunderline.gif
  906. +
  907. ./master/images/expanded.png
  908. +
  909. ./master/images/diff-previous.gif
  910. +
  911. ./master/images/toeruntime.png
  912. +
  913. ./master/images/collapsed.png
  914. +
  915. ./master/images/toe.png
  916. +
  917. ./master/images/niaplogodraft.png
  918. ./master/ValidationReport.txt
  919. -
  920. ./master/Minidash.adoc
  921. -
  922. ./master/spell-badge.svg
  923. -
  924. ./master/AppliedTDs-Diff.html
  925. +
  926. ./master/application-release.html
  927. ./master/SpellCheckReport.txt
  928. +
  929. ./master/warnings.svg
  930. +
  931. ./master/application.html
  932. ./master/pkg-tls.xml
  933. -
  934. ./mf-reform/diff-v1.4.html
  935. -
  936. ./mf-reform/transforms.svg
  937. -
  938. ./mf-reform/pdf_count.svg
  939. -
  940. ./mf-reform/validation.svg
  941. -
  942. ./mf-reform/css/diff.css
  943. -
  944. ./mf-reform/pkg-ssh.xml
  945. -
  946. ./mf-reform/images/diffmin.gif
  947. -
  948. ./mf-reform/images/toe.png
  949. -
  950. ./mf-reform/images/toeruntime.png
  951. -
  952. ./mf-reform/images/diffplus.gif
  953. -
  954. ./mf-reform/images/expanded.png
  955. -
  956. ./mf-reform/images/diff-next.gif
  957. -
  958. ./mf-reform/images/diffunderline.gif
  959. -
  960. ./mf-reform/images/niaplogodraft.png
  961. -
  962. ./mf-reform/images/collapsed.png
  963. -
  964. ./mf-reform/images/diff-previous.gif
  965. -
  966. ./mf-reform/images/appdiagram.png
  967. -
  968. ./mf-reform/images/diff-last.gif
  969. -
  970. ./mf-reform/images/cclogo.png
  971. -
  972. ./mf-reform/images/niaplogo.png
  973. -
  974. ./mf-reform/images/diff-first.gif
  975. -
  976. ./mf-reform/meta-info.txt
  977. -
  978. ./mf-reform/application-release-linkable.html
  979. -
  980. ./mf-reform/HTMLs.adoc
  981. -
  982. ./mf-reform/js/diff.js
  983. -
  984. ./mf-reform/js/tooltip/tip_balloon/lb.gif
  985. -
  986. ./mf-reform/js/tooltip/tip_balloon/l.gif
  987. -
  988. ./mf-reform/js/tooltip/tip_balloon/r.gif
  989. -
  990. ./mf-reform/js/tooltip/tip_balloon/rb.gif
  991. -
  992. ./mf-reform/js/tooltip/tip_balloon/lt.gif
  993. -
  994. ./mf-reform/js/tooltip/tip_balloon/b.gif
  995. -
  996. ./mf-reform/js/tooltip/tip_balloon/stemt.gif
  997. -
  998. ./mf-reform/js/tooltip/tip_balloon/background.gif
  999. -
  1000. ./mf-reform/js/tooltip/tip_balloon/stemb.gif
  1001. -
  1002. ./mf-reform/js/tooltip/tip_balloon/t.gif
  1003. -
  1004. ./mf-reform/js/tooltip/tip_balloon/rt.gif
  1005. -
  1006. ./mf-reform/js/tooltip/tip_balloon.js
  1007. -
  1008. ./mf-reform/js/tooltip/wz_tooltip.js
  1009. -
  1010. ./mf-reform/js/dojo/src/lang/array.js
  1011. -
  1012. ./mf-reform/js/dojo/src/lang/common.js
  1013. -
  1014. ./mf-reform/js/dojo/src/lang/declare.js
  1015. -
  1016. ./mf-reform/js/dojo/src/lang/extras.js
  1017. -
  1018. ./mf-reform/js/dojo/src/lang/repr.js
  1019. -
  1020. ./mf-reform/js/dojo/src/lang/__package__.js
  1021. -
  1022. ./mf-reform/js/dojo/src/lang/func.js
  1023. -
  1024. ./mf-reform/js/dojo/src/lang/type.js
  1025. -
  1026. ./mf-reform/js/dojo/src/lang/timing/Timer.js
  1027. -
  1028. ./mf-reform/js/dojo/src/lang/timing/__package__.js
  1029. -
  1030. ./mf-reform/js/dojo/src/lang/timing/Streamer.js
  1031. -
  1032. ./mf-reform/js/dojo/src/lang/assert.js
  1033. -
  1034. ./mf-reform/js/dojo/src/event.js
  1035. -
  1036. ./mf-reform/js/dojo/src/html/layout.js
  1037. -
  1038. ./mf-reform/js/dojo/src/html/common.js
  1039. -
  1040. ./mf-reform/js/dojo/src/html/util.js
  1041. -
  1042. ./mf-reform/js/dojo/src/html/selection.js
  1043. -
  1044. ./mf-reform/js/dojo/src/html/color.js
  1045. -
  1046. ./mf-reform/js/dojo/src/html/__package__.js
  1047. -
  1048. ./mf-reform/js/dojo/src/html/shadow.js
  1049. -
  1050. ./mf-reform/js/dojo/src/html/display.js
  1051. -
  1052. ./mf-reform/js/dojo/src/html/metrics.js
  1053. -
  1054. ./mf-reform/js/dojo/src/html/style.js
  1055. -
  1056. ./mf-reform/js/dojo/src/experimental.js
  1057. -
  1058. ./mf-reform/js/dojo/src/event/common.js
  1059. -
  1060. ./mf-reform/js/dojo/src/event/browser.js
  1061. -
  1062. ./mf-reform/js/dojo/src/event/topic.js
  1063. -
  1064. ./mf-reform/js/dojo/src/event/__package__.js
  1065. -
  1066. ./mf-reform/js/dojo/src/html.js
  1067. -
  1068. ./mf-reform/js/dojo/src/lang.js
  1069. -
  1070. ./mf-reform/js/dojo/dojo.js
  1071. -
  1072. ./mf-reform/tds.svg
  1073. -
  1074. ./mf-reform/effective.xml
  1075. -
  1076. ./mf-reform/TDValidationReport.txt
  1077. -
  1078. ./mf-reform/PDFs.adoc
  1079. -
  1080. ./mf-reform/application-release.html
  1081. -
  1082. ./mf-reform/AppliedTDs.html
  1083. -
  1084. ./mf-reform/SanityChecksOutput.md
  1085. -
  1086. ./mf-reform/application.html
  1087. -
  1088. ./mf-reform/warnings.svg
  1089. +
  1090. ./master/TDValidationReport.txt
  1091. +
  1092. ./master/css/diff.css
  1093. +
  1094. ./master/validation.svg
  1095. +
  1096. ./index.html
  1097. +
  1098. ./xml-builder-test/pdf_count.svg
  1099. +
  1100. ./xml-builder-test/meta-info.txt
  1101. +
  1102. ./xml-builder-test/html_count.svg
  1103. +
  1104. ./xml-builder-test/transforms.svg
  1105. +
  1106. ./xml-builder-test/Minidash.adoc
  1107. +
  1108. ./xml-builder-test/spell-badge.svg
  1109. +
  1110. ./xml-builder-test/effective.xml
  1111. +
  1112. ./xml-builder-test/application-release-linkable.html
  1113. +
  1114. ./xml-builder-test/HTMLs.adoc
  1115. +
  1116. ./xml-builder-test/AppliedTDs.html
  1117. +
  1118. ./xml-builder-test/diff-v1.4.html
  1119. +
  1120. ./xml-builder-test/PDFs.adoc
  1121. +
  1122. ./xml-builder-test/tds.svg
  1123. +
  1124. ./xml-builder-test/SanityChecksOutput.md
  1125. +
  1126. ./xml-builder-test/AppliedTDs-Diff.html
  1127. +
  1128. ./xml-builder-test/js/diff.js
  1129. +
  1130. ./xml-builder-test/js/tooltip/wz_tooltip.js
  1131. +
  1132. ./xml-builder-test/js/tooltip/tip_balloon.js
  1133. +
  1134. ./xml-builder-test/js/tooltip/tip_balloon/t.gif
  1135. +
  1136. ./xml-builder-test/js/tooltip/tip_balloon/lt.gif
  1137. +
  1138. ./xml-builder-test/js/tooltip/tip_balloon/stemt.gif
  1139. +
  1140. ./xml-builder-test/js/tooltip/tip_balloon/l.gif
  1141. +
  1142. ./xml-builder-test/js/tooltip/tip_balloon/lb.gif
  1143. +
  1144. ./xml-builder-test/js/tooltip/tip_balloon/r.gif
  1145. +
  1146. ./xml-builder-test/js/tooltip/tip_balloon/b.gif
  1147. +
  1148. ./xml-builder-test/js/tooltip/tip_balloon/rb.gif
  1149. +
  1150. ./xml-builder-test/js/tooltip/tip_balloon/stemb.gif
  1151. +
  1152. ./xml-builder-test/js/tooltip/tip_balloon/background.gif
  1153. +
  1154. ./xml-builder-test/js/tooltip/tip_balloon/rt.gif
  1155. +
  1156. ./xml-builder-test/js/dojo/dojo.js
  1157. +
  1158. ./xml-builder-test/js/dojo/src/event.js
  1159. +
  1160. ./xml-builder-test/js/dojo/src/html.js
  1161. +
  1162. ./xml-builder-test/js/dojo/src/lang/__package__.js
  1163. +
  1164. ./xml-builder-test/js/dojo/src/lang/func.js
  1165. +
  1166. ./xml-builder-test/js/dojo/src/lang/repr.js
  1167. +
  1168. ./xml-builder-test/js/dojo/src/lang/extras.js
  1169. +
  1170. ./xml-builder-test/js/dojo/src/lang/array.js
  1171. +
  1172. ./xml-builder-test/js/dojo/src/lang/common.js
  1173. +
  1174. ./xml-builder-test/js/dojo/src/lang/timing/__package__.js
  1175. +
  1176. ./xml-builder-test/js/dojo/src/lang/timing/Timer.js
  1177. +
  1178. ./xml-builder-test/js/dojo/src/lang/timing/Streamer.js
  1179. +
  1180. ./xml-builder-test/js/dojo/src/lang/type.js
  1181. +
  1182. ./xml-builder-test/js/dojo/src/lang/declare.js
  1183. +
  1184. ./xml-builder-test/js/dojo/src/lang/assert.js
  1185. +
  1186. ./xml-builder-test/js/dojo/src/experimental.js
  1187. +
  1188. ./xml-builder-test/js/dojo/src/event/__package__.js
  1189. +
  1190. ./xml-builder-test/js/dojo/src/event/topic.js
  1191. +
  1192. ./xml-builder-test/js/dojo/src/event/common.js
  1193. +
  1194. ./xml-builder-test/js/dojo/src/event/browser.js
  1195. +
  1196. ./xml-builder-test/js/dojo/src/html/style.js
  1197. +
  1198. ./xml-builder-test/js/dojo/src/html/metrics.js
  1199. +
  1200. ./xml-builder-test/js/dojo/src/html/__package__.js
  1201. +
  1202. ./xml-builder-test/js/dojo/src/html/shadow.js
  1203. +
  1204. ./xml-builder-test/js/dojo/src/html/util.js
  1205. +
  1206. ./xml-builder-test/js/dojo/src/html/color.js
  1207. +
  1208. ./xml-builder-test/js/dojo/src/html/common.js
  1209. +
  1210. ./xml-builder-test/js/dojo/src/html/display.js
  1211. +
  1212. ./xml-builder-test/js/dojo/src/html/selection.js
  1213. +
  1214. ./xml-builder-test/js/dojo/src/html/layout.js
  1215. +
  1216. ./xml-builder-test/js/dojo/src/lang.js
  1217. +
  1218. ./xml-builder-test/images/diff-next.gif
  1219. +
  1220. ./xml-builder-test/images/diffplus.gif
  1221. +
  1222. ./xml-builder-test/images/cclogo.png
  1223. +
  1224. ./xml-builder-test/images/diffmin.gif
  1225. +
  1226. ./xml-builder-test/images/appdiagram.png
  1227. +
  1228. ./xml-builder-test/images/diff-first.gif
  1229. +
  1230. ./xml-builder-test/images/diff-last.gif
  1231. +
  1232. ./xml-builder-test/images/niaplogo.png
  1233. +
  1234. ./xml-builder-test/images/diffunderline.gif
  1235. +
  1236. ./xml-builder-test/images/expanded.png
  1237. +
  1238. ./xml-builder-test/images/diff-previous.gif
  1239. +
  1240. ./xml-builder-test/images/toeruntime.png
  1241. +
  1242. ./xml-builder-test/images/collapsed.png
  1243. +
  1244. ./xml-builder-test/images/toe.png
  1245. +
  1246. ./xml-builder-test/images/niaplogodraft.png
  1247. +
  1248. ./xml-builder-test/ValidationReport.txt
  1249. +
  1250. ./xml-builder-test/application-release.html
  1251. +
  1252. ./xml-builder-test/SpellCheckReport.txt
  1253. +
  1254. ./xml-builder-test/warnings.svg
  1255. +
  1256. ./xml-builder-test/application.html
  1257. +
  1258. ./xml-builder-test/TDValidationReport.txt
  1259. +
  1260. ./xml-builder-test/css/diff.css
  1261. +
  1262. ./xml-builder-test/validation.svg
  1263. +
  1264. ./mf-reform/pdf_count.svg
  1265. +
  1266. ./mf-reform/meta-info.txt
  1267. ./mf-reform/html_count.svg
  1268. -
  1269. ./mf-reform/ValidationReport.txt
  1270. +
  1271. ./mf-reform/transforms.svg
  1272. ./mf-reform/Minidash.adoc
  1273. ./mf-reform/spell-badge.svg
  1274. +
  1275. ./mf-reform/effective.xml
  1276. +
  1277. ./mf-reform/pkg-ssh.xml
  1278. +
  1279. ./mf-reform/application-release-linkable.html
  1280. +
  1281. ./mf-reform/HTMLs.adoc
  1282. +
  1283. ./mf-reform/AppliedTDs.html
  1284. +
  1285. ./mf-reform/diff-v1.4.html
  1286. +
  1287. ./mf-reform/PDFs.adoc
  1288. +
  1289. ./mf-reform/tds.svg
  1290. +
  1291. ./mf-reform/SanityChecksOutput.md
  1292. ./mf-reform/AppliedTDs-Diff.html
  1293. +
  1294. ./mf-reform/js/diff.js
  1295. +
  1296. ./mf-reform/js/tooltip/wz_tooltip.js
  1297. +
  1298. ./mf-reform/js/tooltip/tip_balloon.js
  1299. +
  1300. ./mf-reform/js/tooltip/tip_balloon/t.gif
  1301. +
  1302. ./mf-reform/js/tooltip/tip_balloon/lt.gif
  1303. +
  1304. ./mf-reform/js/tooltip/tip_balloon/stemt.gif
  1305. +
  1306. ./mf-reform/js/tooltip/tip_balloon/l.gif
  1307. +
  1308. ./mf-reform/js/tooltip/tip_balloon/lb.gif
  1309. +
  1310. ./mf-reform/js/tooltip/tip_balloon/r.gif
  1311. +
  1312. ./mf-reform/js/tooltip/tip_balloon/b.gif
  1313. +
  1314. ./mf-reform/js/tooltip/tip_balloon/rb.gif
  1315. +
  1316. ./mf-reform/js/tooltip/tip_balloon/stemb.gif
  1317. +
  1318. ./mf-reform/js/tooltip/tip_balloon/background.gif
  1319. +
  1320. ./mf-reform/js/tooltip/tip_balloon/rt.gif
  1321. +
  1322. ./mf-reform/js/dojo/dojo.js
  1323. +
  1324. ./mf-reform/js/dojo/src/event.js
  1325. +
  1326. ./mf-reform/js/dojo/src/html.js
  1327. +
  1328. ./mf-reform/js/dojo/src/lang/__package__.js
  1329. +
  1330. ./mf-reform/js/dojo/src/lang/func.js
  1331. +
  1332. ./mf-reform/js/dojo/src/lang/repr.js
  1333. +
  1334. ./mf-reform/js/dojo/src/lang/extras.js
  1335. +
  1336. ./mf-reform/js/dojo/src/lang/array.js
  1337. +
  1338. ./mf-reform/js/dojo/src/lang/common.js
  1339. +
  1340. ./mf-reform/js/dojo/src/lang/timing/__package__.js
  1341. +
  1342. ./mf-reform/js/dojo/src/lang/timing/Timer.js
  1343. +
  1344. ./mf-reform/js/dojo/src/lang/timing/Streamer.js
  1345. +
  1346. ./mf-reform/js/dojo/src/lang/type.js
  1347. +
  1348. ./mf-reform/js/dojo/src/lang/declare.js
  1349. +
  1350. ./mf-reform/js/dojo/src/lang/assert.js
  1351. +
  1352. ./mf-reform/js/dojo/src/experimental.js
  1353. +
  1354. ./mf-reform/js/dojo/src/event/__package__.js
  1355. +
  1356. ./mf-reform/js/dojo/src/event/topic.js
  1357. +
  1358. ./mf-reform/js/dojo/src/event/common.js
  1359. +
  1360. ./mf-reform/js/dojo/src/event/browser.js
  1361. +
  1362. ./mf-reform/js/dojo/src/html/style.js
  1363. +
  1364. ./mf-reform/js/dojo/src/html/metrics.js
  1365. +
  1366. ./mf-reform/js/dojo/src/html/__package__.js
  1367. +
  1368. ./mf-reform/js/dojo/src/html/shadow.js
  1369. +
  1370. ./mf-reform/js/dojo/src/html/util.js
  1371. +
  1372. ./mf-reform/js/dojo/src/html/color.js
  1373. +
  1374. ./mf-reform/js/dojo/src/html/common.js
  1375. +
  1376. ./mf-reform/js/dojo/src/html/display.js
  1377. +
  1378. ./mf-reform/js/dojo/src/html/selection.js
  1379. +
  1380. ./mf-reform/js/dojo/src/html/layout.js
  1381. +
  1382. ./mf-reform/js/dojo/src/lang.js
  1383. +
  1384. ./mf-reform/images/diff-next.gif
  1385. +
  1386. ./mf-reform/images/diffplus.gif
  1387. +
  1388. ./mf-reform/images/cclogo.png
  1389. +
  1390. ./mf-reform/images/diffmin.gif
  1391. +
  1392. ./mf-reform/images/appdiagram.png
  1393. +
  1394. ./mf-reform/images/diff-first.gif
  1395. +
  1396. ./mf-reform/images/diff-last.gif
  1397. +
  1398. ./mf-reform/images/niaplogo.png
  1399. +
  1400. ./mf-reform/images/diffunderline.gif
  1401. +
  1402. ./mf-reform/images/expanded.png
  1403. +
  1404. ./mf-reform/images/diff-previous.gif
  1405. +
  1406. ./mf-reform/images/toeruntime.png
  1407. +
  1408. ./mf-reform/images/collapsed.png
  1409. +
  1410. ./mf-reform/images/toe.png
  1411. +
  1412. ./mf-reform/images/niaplogodraft.png
  1413. +
  1414. ./mf-reform/ValidationReport.txt
  1415. +
  1416. ./mf-reform/application-release.html
  1417. ./mf-reform/SpellCheckReport.txt
  1418. +
  1419. ./mf-reform/warnings.svg
  1420. +
  1421. ./mf-reform/application.html
  1422. ./mf-reform/pkg-tls.xml
  1423. -
  1424. ./cc-reform/diff-v1.4.html
  1425. -
  1426. ./cc-reform/transforms.svg
  1427. +
  1428. ./mf-reform/TDValidationReport.txt
  1429. +
  1430. ./mf-reform/css/diff.css
  1431. +
  1432. ./mf-reform/validation.svg
  1433. ./cc-reform/pdf_count.svg
  1434. -
  1435. ./cc-reform/validation.svg
  1436. -
  1437. ./cc-reform/css/diff.css
  1438. -
  1439. ./cc-reform/pkg-ssh.xml
  1440. -
  1441. ./cc-reform/images/diffmin.gif
  1442. -
  1443. ./cc-reform/images/toe.png
  1444. -
  1445. ./cc-reform/images/toeruntime.png
  1446. -
  1447. ./cc-reform/images/diffplus.gif
  1448. -
  1449. ./cc-reform/images/expanded.png
  1450. -
  1451. ./cc-reform/images/diff-next.gif
  1452. -
  1453. ./cc-reform/images/diffunderline.gif
  1454. -
  1455. ./cc-reform/images/niaplogodraft.png
  1456. -
  1457. ./cc-reform/images/collapsed.png
  1458. -
  1459. ./cc-reform/images/diff-previous.gif
  1460. -
  1461. ./cc-reform/images/appdiagram.png
  1462. -
  1463. ./cc-reform/images/diff-last.gif
  1464. -
  1465. ./cc-reform/images/cclogo.png
  1466. -
  1467. ./cc-reform/images/niaplogo.png
  1468. -
  1469. ./cc-reform/images/diff-first.gif
  1470. ./cc-reform/meta-info.txt
  1471. +
  1472. ./cc-reform/html_count.svg
  1473. +
  1474. ./cc-reform/transforms.svg
  1475. +
  1476. ./cc-reform/Minidash.adoc
  1477. +
  1478. ./cc-reform/spell-badge.svg
  1479. +
  1480. ./cc-reform/effective.xml
  1481. +
  1482. ./cc-reform/pkg-ssh.xml
  1483. ./cc-reform/application-release-linkable.html
  1484. ./cc-reform/HTMLs.adoc
  1485. +
  1486. ./cc-reform/AppliedTDs.html
  1487. +
  1488. ./cc-reform/diff-v1.4.html
  1489. +
  1490. ./cc-reform/PDFs.adoc
  1491. +
  1492. ./cc-reform/tds.svg
  1493. +
  1494. ./cc-reform/SanityChecksOutput.md
  1495. +
  1496. ./cc-reform/AppliedTDs-Diff.html
  1497. ./cc-reform/js/diff.js
  1498. -
  1499. ./cc-reform/js/tooltip/tip_balloon/lb.gif
  1500. +
  1501. ./cc-reform/js/tooltip/wz_tooltip.js
  1502. +
  1503. ./cc-reform/js/tooltip/tip_balloon.js
  1504. +
  1505. ./cc-reform/js/tooltip/tip_balloon/t.gif
  1506. +
  1507. ./cc-reform/js/tooltip/tip_balloon/lt.gif
  1508. +
  1509. ./cc-reform/js/tooltip/tip_balloon/stemt.gif
  1510. ./cc-reform/js/tooltip/tip_balloon/l.gif
  1511. +
  1512. ./cc-reform/js/tooltip/tip_balloon/lb.gif
  1513. ./cc-reform/js/tooltip/tip_balloon/r.gif
  1514. -
  1515. ./cc-reform/js/tooltip/tip_balloon/rb.gif
  1516. -
  1517. ./cc-reform/js/tooltip/tip_balloon/lt.gif
  1518. ./cc-reform/js/tooltip/tip_balloon/b.gif
  1519. -
  1520. ./cc-reform/js/tooltip/tip_balloon/stemt.gif
  1521. -
  1522. ./cc-reform/js/tooltip/tip_balloon/background.gif
  1523. +
  1524. ./cc-reform/js/tooltip/tip_balloon/rb.gif
  1525. ./cc-reform/js/tooltip/tip_balloon/stemb.gif
  1526. -
  1527. ./cc-reform/js/tooltip/tip_balloon/t.gif
  1528. +
  1529. ./cc-reform/js/tooltip/tip_balloon/background.gif
  1530. ./cc-reform/js/tooltip/tip_balloon/rt.gif
  1531. -
  1532. ./cc-reform/js/tooltip/tip_balloon.js
  1533. -
  1534. ./cc-reform/js/tooltip/wz_tooltip.js
  1535. -
  1536. ./cc-reform/js/dojo/src/lang/array.js
  1537. -
  1538. ./cc-reform/js/dojo/src/lang/common.js
  1539. -
  1540. ./cc-reform/js/dojo/src/lang/declare.js
  1541. -
  1542. ./cc-reform/js/dojo/src/lang/extras.js
  1543. -
  1544. ./cc-reform/js/dojo/src/lang/repr.js
  1545. +
  1546. ./cc-reform/js/dojo/dojo.js
  1547. +
  1548. ./cc-reform/js/dojo/src/event.js
  1549. +
  1550. ./cc-reform/js/dojo/src/html.js
  1551. ./cc-reform/js/dojo/src/lang/__package__.js
  1552. ./cc-reform/js/dojo/src/lang/func.js
  1553. -
  1554. ./cc-reform/js/dojo/src/lang/type.js
  1555. -
  1556. ./cc-reform/js/dojo/src/lang/timing/Timer.js
  1557. +
  1558. ./cc-reform/js/dojo/src/lang/repr.js
  1559. +
  1560. ./cc-reform/js/dojo/src/lang/extras.js
  1561. +
  1562. ./cc-reform/js/dojo/src/lang/array.js
  1563. +
  1564. ./cc-reform/js/dojo/src/lang/common.js
  1565. ./cc-reform/js/dojo/src/lang/timing/__package__.js
  1566. +
  1567. ./cc-reform/js/dojo/src/lang/timing/Timer.js
  1568. ./cc-reform/js/dojo/src/lang/timing/Streamer.js
  1569. +
  1570. ./cc-reform/js/dojo/src/lang/type.js
  1571. +
  1572. ./cc-reform/js/dojo/src/lang/declare.js
  1573. ./cc-reform/js/dojo/src/lang/assert.js
  1574. -
  1575. ./cc-reform/js/dojo/src/event.js
  1576. -
  1577. ./cc-reform/js/dojo/src/html/layout.js
  1578. -
  1579. ./cc-reform/js/dojo/src/html/common.js
  1580. -
  1581. ./cc-reform/js/dojo/src/html/util.js
  1582. -
  1583. ./cc-reform/js/dojo/src/html/selection.js
  1584. -
  1585. ./cc-reform/js/dojo/src/html/color.js
  1586. -
  1587. ./cc-reform/js/dojo/src/html/__package__.js
  1588. -
  1589. ./cc-reform/js/dojo/src/html/shadow.js
  1590. -
  1591. ./cc-reform/js/dojo/src/html/display.js
  1592. -
  1593. ./cc-reform/js/dojo/src/html/metrics.js
  1594. -
  1595. ./cc-reform/js/dojo/src/html/style.js
  1596. ./cc-reform/js/dojo/src/experimental.js
  1597. +
  1598. ./cc-reform/js/dojo/src/event/__package__.js
  1599. +
  1600. ./cc-reform/js/dojo/src/event/topic.js
  1601. ./cc-reform/js/dojo/src/event/common.js
  1602. ./cc-reform/js/dojo/src/event/browser.js
  1603. -
  1604. ./cc-reform/js/dojo/src/event/topic.js
  1605. -
  1606. ./cc-reform/js/dojo/src/event/__package__.js
  1607. -
  1608. ./cc-reform/js/dojo/src/html.js
  1609. -
  1610. ./cc-reform/js/dojo/src/lang.js
  1611. -
  1612. ./cc-reform/js/dojo/dojo.js
  1613. -
  1614. ./cc-reform/tds.svg
  1615. -
  1616. ./cc-reform/effective.xml
  1617. -
  1618. ./cc-reform/TDValidationReport.txt
  1619. -
  1620. ./cc-reform/PDFs.adoc
  1621. -
  1622. ./cc-reform/application-release.html
  1623. -
  1624. ./cc-reform/AppliedTDs.html
  1625. -
  1626. ./cc-reform/SanityChecksOutput.md
  1627. -
  1628. ./cc-reform/application.html
  1629. -
  1630. ./cc-reform/warnings.svg
  1631. -
  1632. ./cc-reform/html_count.svg
  1633. +
  1634. ./cc-reform/js/dojo/src/html/style.js
  1635. +
  1636. ./cc-reform/js/dojo/src/html/metrics.js
  1637. +
  1638. ./cc-reform/js/dojo/src/html/__package__.js
  1639. +
  1640. ./cc-reform/js/dojo/src/html/shadow.js
  1641. +
  1642. ./cc-reform/js/dojo/src/html/util.js
  1643. +
  1644. ./cc-reform/js/dojo/src/html/color.js
  1645. +
  1646. ./cc-reform/js/dojo/src/html/common.js
  1647. +
  1648. ./cc-reform/js/dojo/src/html/display.js
  1649. +
  1650. ./cc-reform/js/dojo/src/html/selection.js
  1651. +
  1652. ./cc-reform/js/dojo/src/html/layout.js
  1653. +
  1654. ./cc-reform/js/dojo/src/lang.js
  1655. +
  1656. ./cc-reform/images/diff-next.gif
  1657. +
  1658. ./cc-reform/images/diffplus.gif
  1659. +
  1660. ./cc-reform/images/cclogo.png
  1661. +
  1662. ./cc-reform/images/diffmin.gif
  1663. +
  1664. ./cc-reform/images/appdiagram.png
  1665. +
  1666. ./cc-reform/images/diff-first.gif
  1667. +
  1668. ./cc-reform/images/diff-last.gif
  1669. +
  1670. ./cc-reform/images/niaplogo.png
  1671. +
  1672. ./cc-reform/images/diffunderline.gif
  1673. +
  1674. ./cc-reform/images/expanded.png
  1675. +
  1676. ./cc-reform/images/diff-previous.gif
  1677. +
  1678. ./cc-reform/images/toeruntime.png
  1679. +
  1680. ./cc-reform/images/collapsed.png
  1681. +
  1682. ./cc-reform/images/toe.png
  1683. +
  1684. ./cc-reform/images/niaplogodraft.png
  1685. ./cc-reform/ValidationReport.txt
  1686. -
  1687. ./cc-reform/Minidash.adoc
  1688. -
  1689. ./cc-reform/spell-badge.svg
  1690. -
  1691. ./cc-reform/AppliedTDs-Diff.html
  1692. +
  1693. ./cc-reform/application-release.html
  1694. ./cc-reform/SpellCheckReport.txt
  1695. +
  1696. ./cc-reform/warnings.svg
  1697. +
  1698. ./cc-reform/application.html
  1699. ./cc-reform/pkg-tls.xml
  1700. -
  1701. ./.git
  1702. -
  1703. ./.git/hooks/update.sample
  1704. -
  1705. ./.git/hooks/pre-receive.sample
  1706. -
  1707. ./.git/hooks/pre-commit.sample
  1708. -
  1709. ./.git/hooks/pre-applypatch.sample
  1710. -
  1711. ./.git/hooks/post-update.sample
  1712. -
  1713. ./.git/hooks/pre-push.sample
  1714. -
  1715. ./.git/hooks/push-to-checkout.sample
  1716. -
  1717. ./.git/hooks/applypatch-msg.sample
  1718. -
  1719. ./.git/hooks/pre-rebase.sample
  1720. -
  1721. ./.git/hooks/prepare-commit-msg.sample
  1722. -
  1723. ./.git/hooks/sendemail-validate.sample
  1724. -
  1725. ./.git/hooks/commit-msg.sample
  1726. -
  1727. ./.git/hooks/fsmonitor-watchman.sample
  1728. -
  1729. ./.git/hooks/pre-merge-commit.sample
  1730. -
  1731. ./.git/objects/pack/pack-691a0db5033bc5e3906231976380c8de7215404d.pack
  1732. -
  1733. ./.git/objects/pack/pack-691a0db5033bc5e3906231976380c8de7215404d.rev
  1734. -
  1735. ./.git/objects/pack/pack-691a0db5033bc5e3906231976380c8de7215404d.idx
  1736. -
  1737. ./.git/config.worktree
  1738. -
  1739. ./test/diff-v1.4.html
  1740. -
  1741. ./test/transforms.svg
  1742. -
  1743. ./test/pdf_count.svg
  1744. -
  1745. ./test/validation.svg
  1746. -
  1747. ./test/css/diff.css
  1748. -
  1749. ./test/pkg-ssh.xml
  1750. -
  1751. ./test/images/diffmin.gif
  1752. -
  1753. ./test/images/toe.png
  1754. -
  1755. ./test/images/toeruntime.png
  1756. -
  1757. ./test/images/diffplus.gif
  1758. -
  1759. ./test/images/expanded.png
  1760. -
  1761. ./test/images/diff-next.gif
  1762. -
  1763. ./test/images/diffunderline.gif
  1764. -
  1765. ./test/images/niaplogodraft.png
  1766. -
  1767. ./test/images/collapsed.png
  1768. -
  1769. ./test/images/diff-previous.gif
  1770. -
  1771. ./test/images/appdiagram.png
  1772. -
  1773. ./test/images/diff-last.gif
  1774. -
  1775. ./test/images/cclogo.png
  1776. -
  1777. ./test/images/niaplogo.png
  1778. -
  1779. ./test/images/diff-first.gif
  1780. -
  1781. ./test/meta-info.txt
  1782. -
  1783. ./test/application-release-linkable.html
  1784. -
  1785. ./test/HTMLs.adoc
  1786. -
  1787. ./test/js/diff.js
  1788. -
  1789. ./test/js/tooltip/tip_balloon/lb.gif
  1790. -
  1791. ./test/js/tooltip/tip_balloon/l.gif
  1792. -
  1793. ./test/js/tooltip/tip_balloon/r.gif
  1794. -
  1795. ./test/js/tooltip/tip_balloon/rb.gif
  1796. -
  1797. ./test/js/tooltip/tip_balloon/lt.gif
  1798. -
  1799. ./test/js/tooltip/tip_balloon/b.gif
  1800. -
  1801. ./test/js/tooltip/tip_balloon/stemt.gif
  1802. -
  1803. ./test/js/tooltip/tip_balloon/background.gif
  1804. -
  1805. ./test/js/tooltip/tip_balloon/stemb.gif
  1806. -
  1807. ./test/js/tooltip/tip_balloon/t.gif
  1808. -
  1809. ./test/js/tooltip/tip_balloon/rt.gif
  1810. -
  1811. ./test/js/tooltip/tip_balloon.js
  1812. -
  1813. ./test/js/tooltip/wz_tooltip.js
  1814. -
  1815. ./test/js/dojo/src/lang/array.js
  1816. -
  1817. ./test/js/dojo/src/lang/common.js
  1818. -
  1819. ./test/js/dojo/src/lang/declare.js
  1820. -
  1821. ./test/js/dojo/src/lang/extras.js
  1822. -
  1823. ./test/js/dojo/src/lang/repr.js
  1824. -
  1825. ./test/js/dojo/src/lang/__package__.js
  1826. -
  1827. ./test/js/dojo/src/lang/func.js
  1828. -
  1829. ./test/js/dojo/src/lang/type.js
  1830. -
  1831. ./test/js/dojo/src/lang/timing/Timer.js
  1832. -
  1833. ./test/js/dojo/src/lang/timing/__package__.js
  1834. -
  1835. ./test/js/dojo/src/lang/timing/Streamer.js
  1836. -
  1837. ./test/js/dojo/src/lang/assert.js
  1838. -
  1839. ./test/js/dojo/src/event.js
  1840. -
  1841. ./test/js/dojo/src/html/layout.js
  1842. -
  1843. ./test/js/dojo/src/html/common.js
  1844. -
  1845. ./test/js/dojo/src/html/util.js
  1846. -
  1847. ./test/js/dojo/src/html/selection.js
  1848. -
  1849. ./test/js/dojo/src/html/color.js
  1850. -
  1851. ./test/js/dojo/src/html/__package__.js
  1852. -
  1853. ./test/js/dojo/src/html/shadow.js
  1854. -
  1855. ./test/js/dojo/src/html/display.js
  1856. -
  1857. ./test/js/dojo/src/html/metrics.js
  1858. -
  1859. ./test/js/dojo/src/html/style.js
  1860. -
  1861. ./test/js/dojo/src/experimental.js
  1862. -
  1863. ./test/js/dojo/src/event/common.js
  1864. -
  1865. ./test/js/dojo/src/event/browser.js
  1866. -
  1867. ./test/js/dojo/src/event/topic.js
  1868. -
  1869. ./test/js/dojo/src/event/__package__.js
  1870. -
  1871. ./test/js/dojo/src/html.js
  1872. -
  1873. ./test/js/dojo/src/lang.js
  1874. -
  1875. ./test/js/dojo/dojo.js
  1876. -
  1877. ./test/tds.svg
  1878. -
  1879. ./test/effective.xml
  1880. -
  1881. ./test/TDValidationReport.txt
  1882. -
  1883. ./test/PDFs.adoc
  1884. -
  1885. ./test/application-release.html
  1886. -
  1887. ./test/AppliedTDs.html
  1888. -
  1889. ./test/SanityChecksOutput.md
  1890. -
  1891. ./test/application.html
  1892. -
  1893. ./test/warnings.svg
  1894. -
  1895. ./test/html_count.svg
  1896. -
  1897. ./test/ValidationReport.txt
  1898. -
  1899. ./test/Minidash.adoc
  1900. -
  1901. ./test/spell-badge.svg
  1902. -
  1903. ./test/AppliedTDs-Diff.html
  1904. -
  1905. ./test/SpellCheckReport.txt
  1906. -
  1907. ./test/pkg-tls.xml
  1908. -
  1909. ./test2/diff-v1.4.html
  1910. -
  1911. ./test2/transforms.svg
  1912. -
  1913. ./test2/pdf_count.svg
  1914. -
  1915. ./test2/validation.svg
  1916. -
  1917. ./test2/application-release.html.pdf
  1918. -
  1919. ./test2/css/diff.css
  1920. -
  1921. ./test2/pkg-ssh.xml
  1922. -
  1923. ./test2/images/diffmin.gif
  1924. -
  1925. ./test2/images/toe.png
  1926. -
  1927. ./test2/images/toeruntime.png
  1928. -
  1929. ./test2/images/diffplus.gif
  1930. -
  1931. ./test2/images/expanded.png
  1932. -
  1933. ./test2/images/diff-next.gif
  1934. -
  1935. ./test2/images/diffunderline.gif
  1936. -
  1937. ./test2/images/niaplogodraft.png
  1938. -
  1939. ./test2/images/collapsed.png
  1940. -
  1941. ./test2/images/diff-previous.gif
  1942. -
  1943. ./test2/images/appdiagram.png
  1944. -
  1945. ./test2/images/diff-last.gif
  1946. -
  1947. ./test2/images/cclogo.png
  1948. -
  1949. ./test2/images/niaplogo.png
  1950. -
  1951. ./test2/images/diff-first.gif
  1952. -
  1953. ./test2/meta-info.txt
  1954. -
  1955. ./test2/application-release-linkable.html
  1956. -
  1957. ./test2/HTMLs.adoc
  1958. -
  1959. ./test2/js/diff.js
  1960. -
  1961. ./test2/js/tooltip/tip_balloon/lb.gif
  1962. -
  1963. ./test2/js/tooltip/tip_balloon/l.gif
  1964. -
  1965. ./test2/js/tooltip/tip_balloon/r.gif
  1966. -
  1967. ./test2/js/tooltip/tip_balloon/rb.gif
  1968. -
  1969. ./test2/js/tooltip/tip_balloon/lt.gif
  1970. -
  1971. ./test2/js/tooltip/tip_balloon/b.gif
  1972. -
  1973. ./test2/js/tooltip/tip_balloon/stemt.gif
  1974. -
  1975. ./test2/js/tooltip/tip_balloon/background.gif
  1976. -
  1977. ./test2/js/tooltip/tip_balloon/stemb.gif
  1978. -
  1979. ./test2/js/tooltip/tip_balloon/t.gif
  1980. -
  1981. ./test2/js/tooltip/tip_balloon/rt.gif
  1982. -
  1983. ./test2/js/tooltip/tip_balloon.js
  1984. -
  1985. ./test2/js/tooltip/wz_tooltip.js
  1986. -
  1987. ./test2/js/dojo/src/lang/array.js
  1988. -
  1989. ./test2/js/dojo/src/lang/common.js
  1990. -
  1991. ./test2/js/dojo/src/lang/declare.js
  1992. -
  1993. ./test2/js/dojo/src/lang/extras.js
  1994. -
  1995. ./test2/js/dojo/src/lang/repr.js
  1996. -
  1997. ./test2/js/dojo/src/lang/__package__.js
  1998. -
  1999. ./test2/js/dojo/src/lang/func.js
  2000. -
  2001. ./test2/js/dojo/src/lang/type.js
  2002. -
  2003. ./test2/js/dojo/src/lang/timing/Timer.js
  2004. -
  2005. ./test2/js/dojo/src/lang/timing/__package__.js
  2006. -
  2007. ./test2/js/dojo/src/lang/timing/Streamer.js
  2008. -
  2009. ./test2/js/dojo/src/lang/assert.js
  2010. -
  2011. ./test2/js/dojo/src/event.js
  2012. -
  2013. ./test2/js/dojo/src/html/layout.js
  2014. -
  2015. ./test2/js/dojo/src/html/common.js
  2016. -
  2017. ./test2/js/dojo/src/html/util.js
  2018. -
  2019. ./test2/js/dojo/src/html/selection.js
  2020. -
  2021. ./test2/js/dojo/src/html/color.js
  2022. -
  2023. ./test2/js/dojo/src/html/__package__.js
  2024. -
  2025. ./test2/js/dojo/src/html/shadow.js
  2026. -
  2027. ./test2/js/dojo/src/html/display.js
  2028. -
  2029. ./test2/js/dojo/src/html/metrics.js
  2030. -
  2031. ./test2/js/dojo/src/html/style.js
  2032. -
  2033. ./test2/js/dojo/src/experimental.js
  2034. -
  2035. ./test2/js/dojo/src/event/common.js
  2036. -
  2037. ./test2/js/dojo/src/event/browser.js
  2038. -
  2039. ./test2/js/dojo/src/event/topic.js
  2040. -
  2041. ./test2/js/dojo/src/event/__package__.js
  2042. -
  2043. ./test2/js/dojo/src/html.js
  2044. -
  2045. ./test2/js/dojo/src/lang.js
  2046. -
  2047. ./test2/js/dojo/dojo.js
  2048. -
  2049. ./test2/tds.svg
  2050. -
  2051. ./test2/effective.xml
  2052. -
  2053. ./test2/TDValidationReport.txt
  2054. -
  2055. ./test2/PDFs.adoc
  2056. -
  2057. ./test2/application-release.html
  2058. -
  2059. ./test2/AppliedTDs.html
  2060. -
  2061. ./test2/SanityChecksOutput.md
  2062. -
  2063. ./test2/application.html
  2064. -
  2065. ./test2/warnings.svg
  2066. -
  2067. ./test2/html_count.svg
  2068. -
  2069. ./test2/ValidationReport.txt
  2070. -
  2071. ./test2/Minidash.adoc
  2072. -
  2073. ./test2/application.html.pdf
  2074. -
  2075. ./test2/application-release-linkable.html.pdf
  2076. -
  2077. ./test2/spell-badge.svg
  2078. -
  2079. ./test2/AppliedTDs-Diff.html
  2080. -
  2081. ./test2/SpellCheckReport.txt
  2082. -
  2083. ./test2/pkg-tls.xml
  2084. -
  2085. ./xml-builder-test/diff-v1.4.html
  2086. -
  2087. ./xml-builder-test/transforms.svg
  2088. -
  2089. ./xml-builder-test/pdf_count.svg
  2090. -
  2091. ./xml-builder-test/validation.svg
  2092. -
  2093. ./xml-builder-test/css/diff.css
  2094. -
  2095. ./xml-builder-test/images/diffmin.gif
  2096. -
  2097. ./xml-builder-test/images/toe.png
  2098. -
  2099. ./xml-builder-test/images/toeruntime.png
  2100. -
  2101. ./xml-builder-test/images/diffplus.gif
  2102. -
  2103. ./xml-builder-test/images/expanded.png
  2104. -
  2105. ./xml-builder-test/images/diff-next.gif
  2106. -
  2107. ./xml-builder-test/images/diffunderline.gif
  2108. -
  2109. ./xml-builder-test/images/niaplogodraft.png
  2110. -
  2111. ./xml-builder-test/images/collapsed.png
  2112. -
  2113. ./xml-builder-test/images/diff-previous.gif
  2114. -
  2115. ./xml-builder-test/images/appdiagram.png
  2116. -
  2117. ./xml-builder-test/images/diff-last.gif
  2118. -
  2119. ./xml-builder-test/images/cclogo.png
  2120. -
  2121. ./xml-builder-test/images/niaplogo.png
  2122. -
  2123. ./xml-builder-test/images/diff-first.gif
  2124. -
  2125. ./xml-builder-test/meta-info.txt
  2126. -
  2127. ./xml-builder-test/application-release-linkable.html
  2128. -
  2129. ./xml-builder-test/HTMLs.adoc
  2130. -
  2131. ./xml-builder-test/js/diff.js
  2132. -
  2133. ./xml-builder-test/js/tooltip/tip_balloon/lb.gif
  2134. -
  2135. ./xml-builder-test/js/tooltip/tip_balloon/l.gif
  2136. -
  2137. ./xml-builder-test/js/tooltip/tip_balloon/r.gif
  2138. -
  2139. ./xml-builder-test/js/tooltip/tip_balloon/rb.gif
  2140. -
  2141. ./xml-builder-test/js/tooltip/tip_balloon/lt.gif
  2142. -
  2143. ./xml-builder-test/js/tooltip/tip_balloon/b.gif
  2144. -
  2145. ./xml-builder-test/js/tooltip/tip_balloon/stemt.gif
  2146. -
  2147. ./xml-builder-test/js/tooltip/tip_balloon/background.gif
  2148. -
  2149. ./xml-builder-test/js/tooltip/tip_balloon/stemb.gif
  2150. -
  2151. ./xml-builder-test/js/tooltip/tip_balloon/t.gif
  2152. -
  2153. ./xml-builder-test/js/tooltip/tip_balloon/rt.gif
  2154. -
  2155. ./xml-builder-test/js/tooltip/tip_balloon.js
  2156. -
  2157. ./xml-builder-test/js/tooltip/wz_tooltip.js
  2158. -
  2159. ./xml-builder-test/js/dojo/src/lang/array.js
  2160. -
  2161. ./xml-builder-test/js/dojo/src/lang/common.js
  2162. -
  2163. ./xml-builder-test/js/dojo/src/lang/declare.js
  2164. -
  2165. ./xml-builder-test/js/dojo/src/lang/extras.js
  2166. -
  2167. ./xml-builder-test/js/dojo/src/lang/repr.js
  2168. -
  2169. ./xml-builder-test/js/dojo/src/lang/__package__.js
  2170. -
  2171. ./xml-builder-test/js/dojo/src/lang/func.js
  2172. -
  2173. ./xml-builder-test/js/dojo/src/lang/type.js
  2174. -
  2175. ./xml-builder-test/js/dojo/src/lang/timing/Timer.js
  2176. -
  2177. ./xml-builder-test/js/dojo/src/lang/timing/__package__.js
  2178. -
  2179. ./xml-builder-test/js/dojo/src/lang/timing/Streamer.js
  2180. -
  2181. ./xml-builder-test/js/dojo/src/lang/assert.js
  2182. -
  2183. ./xml-builder-test/js/dojo/src/event.js
  2184. -
  2185. ./xml-builder-test/js/dojo/src/html/layout.js
  2186. -
  2187. ./xml-builder-test/js/dojo/src/html/common.js
  2188. -
  2189. ./xml-builder-test/js/dojo/src/html/util.js
  2190. -
  2191. ./xml-builder-test/js/dojo/src/html/selection.js
  2192. -
  2193. ./xml-builder-test/js/dojo/src/html/color.js
  2194. -
  2195. ./xml-builder-test/js/dojo/src/html/__package__.js
  2196. -
  2197. ./xml-builder-test/js/dojo/src/html/shadow.js
  2198. -
  2199. ./xml-builder-test/js/dojo/src/html/display.js
  2200. -
  2201. ./xml-builder-test/js/dojo/src/html/metrics.js
  2202. -
  2203. ./xml-builder-test/js/dojo/src/html/style.js
  2204. -
  2205. ./xml-builder-test/js/dojo/src/experimental.js
  2206. -
  2207. ./xml-builder-test/js/dojo/src/event/common.js
  2208. -
  2209. ./xml-builder-test/js/dojo/src/event/browser.js
  2210. -
  2211. ./xml-builder-test/js/dojo/src/event/topic.js
  2212. -
  2213. ./xml-builder-test/js/dojo/src/event/__package__.js
  2214. -
  2215. ./xml-builder-test/js/dojo/src/html.js
  2216. -
  2217. ./xml-builder-test/js/dojo/src/lang.js
  2218. -
  2219. ./xml-builder-test/js/dojo/dojo.js
  2220. -
  2221. ./xml-builder-test/tds.svg
  2222. -
  2223. ./xml-builder-test/effective.xml
  2224. -
  2225. ./xml-builder-test/TDValidationReport.txt
  2226. -
  2227. ./xml-builder-test/PDFs.adoc
  2228. -
  2229. ./xml-builder-test/application-release.html
  2230. -
  2231. ./xml-builder-test/AppliedTDs.html
  2232. -
  2233. ./xml-builder-test/SanityChecksOutput.md
  2234. -
  2235. ./xml-builder-test/application.html
  2236. -
  2237. ./xml-builder-test/warnings.svg
  2238. -
  2239. ./xml-builder-test/html_count.svg
  2240. -
  2241. ./xml-builder-test/ValidationReport.txt
  2242. -
  2243. ./xml-builder-test/Minidash.adoc
  2244. -
  2245. ./xml-builder-test/spell-badge.svg
  2246. -
  2247. ./xml-builder-test/AppliedTDs-Diff.html
  2248. -
  2249. ./xml-builder-test/SpellCheckReport.txt
  2250. +
  2251. ./cc-reform/TDValidationReport.txt
  2252. +
  2253. ./cc-reform/css/diff.css
  2254. +
  2255. ./cc-reform/validation.svg
diff --git a/xml-builder-test/AppliedTDs-Diff.html b/xml-builder-test/AppliedTDs-Diff.html index b522c01..e7e36ff 100644 --- a/xml-builder-test/AppliedTDs-Diff.html +++ b/xml-builder-test/AppliedTDs-Diff.html @@ -216,17 +216,17 @@

1.2.2 Technical Terms

@@ -236,7 +236,7 @@

1.2.2 Technical Terms

@@ -251,12 +251,12 @@

1.2.2 Technical Terms

@@ -296,7 +296,7 @@

1.3.1 TOE Boundary

Figure 2: TOE as an Application Running in an Execution Environment Plus Native Code

1.4 Platforms with Specific EAs

- This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance. + This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

- + @@ -2081,7 +2056,7 @@

5.1.7 TOE Security Functio

- + @@ -2203,20 +2178,16 @@

5.1.7 TOE Security Functio

-
Address Space Layout Randomization (ASLR)
+
Address Space Layout Randomization
An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process.
-
Application (app)
+
Application
Software that runs on a platform and performs tasks on behalf of the user or owner of the platform, as well as its supporting documentation. The terms TOE and application are interchangeable in this document.
-
Application Programming Interface (API)
+
Application Programming Interface
A specification of routines, data structures, object classes, and variables that allows an application to make use of services provided by another software component, such as a library. APIs are often provided for a set of libraries included with the platform.
-
Data Execution Prevention (DEP)
+
Data Execution Prevention
An anti-exploitation feature of modern operating systems executing on modern computer hardware, which enforces a non-execute permission on pages of memory. DEP prevents pages of memory from containing both data and instructions, which makes it more difficult for an attacker to introduce and execute code.
-
Operating System (OS)
+
Operating System
Software that manages hardware resources and provides services for applications.
-
Personally Identifiable Information (PII)
+
Personally Identifiable Information
Any information about an individual maintained by an agency, including, but not limited to, education, financial transactions, medical history, and criminal or employment history and information which can be used to distinguish or trace an individual's identity, such as their name, social security number, date and place of birth, mother’s maiden name, biometric records, etc., including any other personal information which is linked or linkable to an individual.
FMT_CFG_EXT.1The PP includes FMT_CFG_EXT.1 for the TSP to limit unauthorized access to itself by preventing the use of default authentication credentials and by ensuring that the TOE uses appropriately restrictive platform permissions on its binaries and data
FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.

5.2 Security Assurance Requirements

- The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation and performs independent testing. -

- This section lists the set of SARs from CC part 3 that are required in evaluations against this PP. Individual Evaluation Activities (EAs) to be performed are specified both in Section 5 Security Requirements as well as in this section. -

- The general model for evaluation of TOEs against STs written to conform to this PP is as follows: -

- After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, which are intended to be an interpretation of the other CEM assurance requirements as they apply to the specific technology instantiated in the TOE. The evaluation activities that are captured in Section 5 Security Requirements also provide clarification as to what the developer needs to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented and presented (along with the administrative guidance used) for validation. +

+
+

5.2.1 Class ASE: Security Target

As per ASE activities defined in [CEM].

5.2.2 Class ADV: Development

- The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section. + The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section.

ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

- The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the Operational Environment that are not directly invocable by TOE users, there is little point specifying that such interfaces be described in and of themselves since only indirect testing of such interfaces may be possible. For this PP, the activities for this family should focus on understanding the interfaces presented in the TSS in response to the functional requirements and the interfaces presented in the AGD documentation. No additional “functional specification” documentation is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list. + The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the Operational Environment that are not directly invocable by TOE users, there is little point specifying that such interfaces be described in and of themselves since only indirect testing of such interfaces may be possible. For this PP, the activities for this family should focus on understanding the interfaces presented in the TSS in response to the functional requirements and the interfaces presented in the AGD documentation. No additional “functional specification” documentation is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list.

Developer action elements:

@@ -2231,7 +2202,7 @@

Developer action elements:

The developer shall provide a tracing from the functional specification to the SFRs.
- Application Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and AGD_PRE documentation. The developer may reference a website accessible to application developers and the evaluator. The evaluation activities in the functional requirements point to evidence that should exist in the documentation and TSS section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is necessary. + Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and AGD_PRE documentation. The developer may reference a website accessible to application developers and the evaluator. The evaluation activities in the functional requirements point to evidence that should exist in the documentation and TSS section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is necessary.
@@ -2307,7 +2278,7 @@

Developer action elements:

The developer shall provide operational user guidance.
- Application Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to support security automation. Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable guidance. + Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to support security automation. Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable guidance.
@@ -2319,7 +2290,7 @@

Content and presentation elements:

The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure processing environment, including appropriate warnings.
- Application Note: User and administrator are to be considered in the definition of user role. + Note: User and administrator are to be considered in the definition of user role.
@@ -2411,7 +2382,7 @@

Developer action elements:

The developer shall provide the TOE, including its preparative procedures.
- Application Note: As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative procedures. + Note: As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative procedures.
@@ -2481,7 +2452,7 @@

Content and presentation elements:

The application shall be labeled with a unique reference.
- Application Note: Unique reference information includes: + Note: Unique reference information includes:
  • Application Name
  • Application Version
  • @@ -2640,7 +2611,7 @@

    5.2.5 Class ATE: Tests

    Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN family. At the assurance level specified in this PP, testing is based on advertised functionality and interfaces with dependency on the availability of design information. One of the primary outputs of the evaluation process is the test report as specified in the following requirements.

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    - Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1.

    Developer action elements:

    @@ -2649,7 +2620,7 @@

    Developer action elements:

    The developer shall provide the TOE for testing.
    - Application Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details. + Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details.
    @@ -2678,7 +2649,7 @@

    Evaluator action elements:

    The evaluator shall test a subset of the TSF to confirm that the TSF operates as specified.
    - Application Note: The evaluator shall test the application on the most current fully patched version of the platform. + Note: The evaluator shall test the application on the most current fully patched version of the platform.
    @@ -2721,7 +2692,7 @@

    Content and presentation elements:

    The application shall be suitable for testing.
    - Application Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator. + Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator.
    @@ -2739,7 +2710,7 @@

    Evaluator action elements:

    The evaluator shall perform a search of public domain sources to identify potential vulnerabilities in the TOE.
    - Application Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain sources also include sites which provide free checking of files for viruses. + Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain sources also include sites which provide free checking of files for viruses.
@@ -2765,7 +2736,7 @@

Evaluator action elements:

For each vulnerability found, the evaluator either provides a rationale with respect to its non-applicability, or the evaluator formulates a test (using the guidelines provided in ATE_IND) to confirm the vulnerability, if suitable. Suitability is determined by assessing the attack vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires expert skills and an electron microscope, for instance, then a test would not be suitable and an appropriate justification would be formulated.

- For Windows, Linux, macOS and Solaris: The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious. + The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious.

@@ -2832,7 +2803,7 @@

FPT_API_EXT.2 Use of Supported Services and APIs

FPT_API_EXT.2.1
- The application[selection, choose one of: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types]. + The application[selection: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types].
Application Note: The IANA MIME types are listed at http://www.iana.org/assignments/media-types and include many image, audio, video, and content file formats.

@@ -2888,13 +2859,13 @@

FCS_CKM.1/AK Cryptographic Asymmetric Key Generation

FCS_CKM.1.1/AK
- The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection: + The application shall[selection: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection: ]. @@ -3099,7 +3070,7 @@

FCS_CKM.2 Cryptographic Key Establishment

FCS_CKM.2.1
- The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method: + The application shall[selection: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

[selection: ]. @@ -3349,7 +3320,7 @@

FCS_COP.1/Sig Cryptographic Operation - Signing

RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
  • - ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5 + ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
  • ]. @@ -3595,7 +3566,7 @@

    FCS_HTTPS_EXT.1/Client HTTPS Protocol

    FCS_HTTPS_EXT.1.3/Client
    - The application shall[selection, choose one of: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid. + The application shall[selection: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.
    @@ -3740,7 +3711,7 @@

    FCS_HTTPS_EXT.2 HTTPS Protocol with Mutual Authentication

    FCS_HTTPS_EXT.2.1
    - The application shall[selection, choose one of: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid. + The application shall[selection: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.
    @@ -3803,7 +3774,7 @@

    FCS_RBG_EXT.2 Random Bit Generation from Application

    FCS_RBG_EXT.2.2
    - The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection, choose one of: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate. + The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first selection in this requirement, the ST author selects "software-based noise source" if any additional noise sources are used as input to the application's DRBG. Note that the application must use the platform's DRBG to seed its DRBG.

    @@ -3897,7 +3868,7 @@

    FIA_X509_EXT.1 X.509 Certificate Validation

    FIA_X509_EXT.1.1
    - The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules: + The application shall[selection: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
    • RFC 5280 certificate validation and certificate path validation.
    • The certificate path must terminate with a trusted CA certificate.
    • @@ -4061,7 +4032,7 @@

      FIA_X509_EXT.2 X.509 Certificate Authentication

      FIA_X509_EXT.2.2
    - When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection, choose one of: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate]. + When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application Note: Often a connection must be established to perform a verification of the revocation status of a certificate - either to download a CRL or to perform OCSP. The selection is used to describe the behavior in the event that such a connection cannot be established (for example, due to a network error). If the TOE has determined the certificate valid according to all other rules in FIA_X509_EXT.1, the behavior indicated in the selection shall determine the validity. The TOE must not accept the certificate if it fails any of the other validation rules in FIA_X509_EXT.1.
    @@ -4125,7 +4096,7 @@

    FPT_TUD_EXT.2 Integrity for Installation and Update

    The application shall be packaged such that its removal results in the deletion of all traces of the application, with the exception of configuration settings, output files, and audit/log events.
    - Application Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through means provided by the OS. + Application Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through means provided by the OS.
    @@ -4422,7 +4393,7 @@

    D.5.1 Platform Equivale

    D.5.2 Platform Equivalence—OS Platforms

    - For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order: + For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order: @@ -4437,17 +4408,17 @@

    D.5.2 Platform Equivalence&md

    - + - +
    FactorSame/Different/NoneGuidancePlatform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application. Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does not provide such functionality to the application.Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does not provide such functionality to the application.
    - Table 4. Factors for Determining OS/VS Platform Equivalence + Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    - If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments. + If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments. @@ -4484,7 +4455,7 @@

    D.6 Level of Specificity f Traditional Applications

    - For applications that run with an operating system as their immediate platform, the claimed configuration must describe the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality. + For applications that run with an operating system as their immediate platform, the claimed configuration must describe the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality.

    Software-Based Execution Environments @@ -4500,15 +4471,6 @@

    Appendix E - Acronyms

    - - - - - - - - - @@ -4521,9 +4483,6 @@

    Appendix E - Acronyms

    - - - @@ -4533,12 +4492,6 @@

    Appendix E - Acronyms

    - - - - - - diff --git a/xml-builder-test/AppliedTDs.html b/xml-builder-test/AppliedTDs.html index e5b5137..d82b661 100644 --- a/xml-builder-test/AppliedTDs.html +++ b/xml-builder-test/AppliedTDs.html @@ -668,23 +668,23 @@

    1.2.1 Common Criteria Terms

    -
    FactorSame/Different/NoneGuidance
    AcronymMeaning
    APIApplication Programming Interface
    appApplication
    ASLRAddress Space Layout Randomization
    Base-PPBase Protection Profile
    cPPCollaborative Protection Profile
    DEPData Execution Prevention
    EPExtended Package
    OEOperational Environment
    OSOperating System
    PIIPersonally Identifiable Information
    PPProtection Profile
    Target of Evaluation (TOE)
    The product under evaluation.
    TOE Security Functionality (TSF)
    The security functionality of the product under evaluation.
    TOE Summary Specification (TSS)
    A description of how a TOE satisfies the SFRs in an ST.

    1.2.2 Technical Terms

    Address Space Layout Randomization (ASLR)
    +

    1.2.2 Technical Terms

    - - - - -
    Address Space Layout Randomization
    An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process.
    Application (app)
    +
    Application
    Software that runs on a platform and performs tasks on behalf of the user or owner of the platform, as well as its supporting documentation. The terms TOE and application are interchangeable in this document.
    Application Programming Interface (API)
    +
    Application Programming Interface
    A specification of routines, data structures, object classes, and variables that allows an application to make use of services provided by another software component, such as a library. APIs are often provided for a set of libraries included with the platform.
    Credential
    Data that establishes the identity of a user, e.g. a cryptographic key or password.
    Data Execution Prevention (DEP)
    +
    Data Execution Prevention
    An anti-exploitation feature of modern operating systems executing on modern computer hardware, which enforces a non-execute permission on pages of memory. DEP prevents pages of memory from containing both data and instructions, which makes @@ -700,10 +700,10 @@

    1.2.1 Common Criteria Terms

    Operating System (OS)
    +
    Operating System
    Software that manages hardware resources and provides services for applications.
    Personally Identifiable Information (PII)
    +
    Personally Identifiable Information
    Any information about an individual maintained by an agency, including, but not limited to, education, financial transactions, medical history, and criminal or employment history and information which can be used to distinguish or trace an @@ -739,13 +739,13 @@

    1.3.1 TOE Boundary

    Th

    1.4 Platforms with Specific EAs

    This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on - other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.
    + other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.

    1.5 Use Cases

    Requirements in this Protection Profile are designed to address the security problem in the following use cases. These use cases are intentionally very broad, as many specific use cases exist for application software. Many applications may be used in combinations of these broad use cases, and evaluation against PP-Modules of this PP, when available, may be most appropriate for some application types.
    [USE CASE 1] Content Creation
    The application allows a user to create content, saving it to either local or remote storage. Example content includes text documents, presentations, and images.
    [USE CASE 2] Content Consumption
    The application allows a user to consume content, retrieving it from either local or remote storage. Example content includes web pages and video.
    [USE CASE 3] Communication
    The application allows for communication interactively or non-interactively with other users or applications over a communications channel. Example communications include instant messages, email, and voice.

    2 Conformance Claims

    -
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claim
    This PP does not claim conformance to any other Protection Profile. The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP.

    Protection Profile for Mobile Device Management Version 4.0

    PP-Module for File Encryption, Version 1.0

    PP-Module for File Encryption Enterprise Management, Version 1.0

    PP-Module for VPN Clients, Version 2.2

    PP-Module for VPN Clients, Version 2.3

    PP-Module for Endpoint Detection and Response, Version 1.0

    PP-Module for Host Agent, Version 1.0

    PP-Module for Voice and Video over IP (VVoIP), Version 1.0

    PP-Module for Email Clients, Version 1.0
    Package Claim
    • This PP is Functional Package for TLS Version 1.1 Conformant.
    • This PP is Functional Package for SSH Version 1.0 Conformant.
    +
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claims

    Package Claims

    3 Security Problem Definition

    The security problem is described in terms of the threats that the TOE is expected to address, assumptions about the operational environment, and any organizational security policies that the TOE is expected to enforce. @@ -766,7 +766,7 @@

    3.3 O

    4 Security Objectives

    4.1 Security Objectives for the TOE

    -
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.
    +
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.

    4.2 Security Objectives for the Operational Environment

    @@ -874,7 +874,7 @@

    5.1.1 Class: Cryptographic Support the TSS to confirm that it identifies all functions (as described by the SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator shall determine that for each of these functions, the TSS states which - platform interface (API) is used to obtain the random numbers. The evaluator shall confirm + platform interface (API) is used to obtain the random numbers. The evaluator shall confirm that each of these interfaces corresponds to the acceptable interfaces listed for each platform below.

    It should be noted that there is no expectation that the evaluators attempt to confirm @@ -887,12 +887,12 @@

    5.1.1 Class: Cryptographic Support If "invoke platform-provided DRBG functionality" is selected, the following tests shall be performed:

    The evaluator shall decompile the application binary using a decompiler suitable for the application (TOE). The evaluator shall search the output of the - decompiler to determine that, for each API listed in the TSS, that API - appears in the output. If the representation of the API does not correspond directly to + decompiler to determine that, for each API listed in the TSS, that API + appears in the output. If the representation of the API does not correspond directly to the strings in the following list, the evaluator shall provide a mapping from the - decompiled text to its corresponding API, with a description of why the API text does + decompiled text to its corresponding API, with a description of why the API text does not directly correspond to the decompiled text and justification that the decompiled text - corresponds to the associated API.

    + corresponds to the associated API.

    The following are the per-platform list of acceptable APIs:
      @@ -912,12 +912,12 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that rand_s, RtlGenRandom, BCryptGenRandom, or - CryptGenRandom API is used for classic desktop applications. The evaluator shall + CryptGenRandom API is used for classic desktop applications. The evaluator shall verify the application uses the RNGCryptoServiceProvider class or derives a class - from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal - Applications. It is only required that the API is called/invoked, there is no - requirement that the API be used directly. In future versions of this document, - CryptGenRandom may be removed as an option as it is no longer the preferred API per + from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal + Applications. It is only required that the API is called/invoked, there is no + requirement that the API be used directly. In future versions of this document, + CryptGenRandom may be removed as an option as it is no longer the preferred API per vendor documentation.

    @@ -965,9 +965,9 @@

    5.1.1 Class: Cryptographic Support

    FCS_STO_EXT.1 Storage of Credentials

    -
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: - list of credentials ]
    • implement functionality to securely store [assignment: - list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application +
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: + list of credentials ]
    • implement functionality to securely store [assignment: + list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application Note: This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) @@ -982,7 +982,7 @@

    5.1.1 Class: Cryptographic Support If "implement functionality to securely store credentials" is selected, then the following components must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding - requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store + requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store credentials, "implement functionality to securely store credentials" must be selected.

    @@ -1015,7 +1015,7 @@

    5.1.1 Class: Cryptographic Support The evaluator shall verify that all certificates are stored in the Windows Certificate Store. The evaluator shall verify that other credentials, like passwords, are stored in the Windows Credential Manager or stored - using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall + using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall verify that the application is using the ProtectData class and storing credentials in IsolatedStorage. @@ -1167,7 +1167,8 @@

    5.1.2 Class: User Data Protection

    FDP_DEC_EXT.1 Access to Platform Resources

    -
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, list of additional hardware resources ].
    Application +
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, [assignment: + list of additional hardware resources ]].
    Application Note: The intent is for the evaluator to ensure that the selection captures all @@ -1188,7 +1189,8 @@

    5.1.2 Class: User Data Protection main memory, displays, input devices (e.g. keyboards, mice), and persistent storage devices provided by the platform.

    -
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, list of additional sensitive information repositories ].
    Application +
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, [assignment: + list of additional sensitive information repositories ]].
    Application Note: "Sensitive information repositories" are defined as those collections of sensitive data that @@ -1348,9 +1350,10 @@

    5.1.2 Class: User Data Protection

    FDP_NET_EXT.1 Network Communications

    -
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: - list of functions for which the user can initiate network communication ], respond to [assignment: - list of remotely initiated communication ], list of application-initiated network communication ].
    Application +
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: + list of functions for which the user can initiate network communication ], respond to [assignment: + list of remotely initiated communication ], [assignment: + list of application-initiated network communication ]].
    Application Note: This requirement is intended to restrict both inbound and @@ -1592,7 +1595,7 @@

    5.1.3 Class: Security Management (
  • Test FMT_MEC_EXT.1.1:3[conditional, Platforms:Apple iOS: Apple's mobile operating system for iPhones.]: - The evaluator shall verify that the app uses the + The evaluator shall verify that the app uses the user defaults system or key-value store for storing all settings.
  • @@ -1641,9 +1644,10 @@

    5.1.3 Class: Security Management (

    FMT_SMF.1 Specification of Management Functions

    The TSF shall be capable of performing the following management functions[selection: no management functions, enable/disable the transmission of any information describing the - system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) - information, enable/disable network backup functionality to [assignment: - list of enterprise or commercial cloud backup systems ], list of other management functions to be provided bythe TSF ].
    Application + system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) + information, enable/disable network backup functionality to [assignment: + list of enterprise or commercial cloud backup systems ], [assignment: + list of other management functions to be provided bythe TSF ]].
    Application Note: This requirement stipulates that an application needs to provide the ability to @@ -1669,24 +1673,24 @@

    5.1.3 Class: Security Management (

    5.1.4 Class: Privacy (FPR)

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Information

    -
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: - list of functions that transmit PII over a network ]].
    Application +
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: + list of functions that transmit PII over a network ]].
    Application Note: - This requirement applies only to PII that is specifically requested by the application; - it does not apply if the user volunteers PII without prompting from the application + This requirement applies only to PII that is specifically requested by the application; + it does not apply if the user volunteers PII without prompting from the application into a general (or inappropriate) data field. - A dialog box that declares intent to send PII presented to the user + A dialog box that declares intent to send PII presented to the user at the time the application is started is sufficient to meet this requirement.
    The evaluator shall inspect the TSS documentation to identify functionality in the - application where PII can be transmitted.

    + application where PII can be transmitted.

    Guidance
    None.

    Tests
    If require user approval before executing is selected, the evaluator shall run the application and exercise the functionality responsibly - for transmitting PII and verify that user approval is required before transmission - of the PII. + for transmitting PII and verify that user approval is required before transmission + of the PII.
    @@ -1698,14 +1702,14 @@

    5.1.5 Class: Protection of the TSF list of explicit exceptions].
    Application Note: Requesting a memory mapping at an explicit address - subverts address space layout randomization (ASLR). + subverts address space layout randomization (ASLR).

    -
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: - list of functions performing just-in-time compilation ]].
    Application +
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: + list of functions performing just-in-time compilation ]].
    Application Note: Requesting a memory mapping with both write and execute permissions subverts the - platform protection provided by DEP. If the application performs no just-in-time + platform protection provided by DEP. If the application performs no just-in-time compiling, then the first selection must be chosen.
    The application shall be compatible with security features provided by the platform vendor.
    Application @@ -1732,7 +1736,7 @@

    5.1.5 Class: Protection of the TSF
    The application shall be built with stack-based buffer overflow protection enabled.
    The evaluator shall ensure that the TSS describes the compiler flags used to - enable ASLR when the application is compiled.
    + enable ASLR when the application is compiled.
    Guidance
    None.
    Tests
    @@ -1767,7 +1771,7 @@

    5.1.5 Class: Protection of the TSF share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to view memory addresses of a running application. The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application has - ASLR enabled. + ASLR enabled. @@ -1777,7 +1781,7 @@

    5.1.5 Class: Protection of the TSF The evaluator shall perform a static analysis to search - for any mmap calls (or API calls that call mmap), and ensure that + for any mmap calls (or API calls that call mmap), and ensure that no arguments are provided that request a mapping at a fixed address. @@ -1844,7 +1848,7 @@

    5.1.5 Class: Protection of the TSF The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application passes the NXCheck. The evaluator may also ensure that the /NXCOMPAT flag was used during - compilation to verify that DEP protections are enabled for the application. + compilation to verify that DEP protections are enabled for the application. @@ -1912,19 +1916,19 @@

    5.1.5 Class: Protection of the TSF - If the OS platform supports Windows Defender Exploit Guard + If the OS platform supports Windows Defender Exploit Guard (Windows 10 version 1709 or later), then the evaluator shall ensure that the application can run successfully with Windows Defender Exploit Guard Exploit Protection configured with the following minimum mitigations enabled; Control Flow Guard (CFG), Randomize memory allocations - (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and - Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, + (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and + Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection.

    - If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be + If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be installed on Windows 10 version 1703 and earlier, then the evaluator shall ensure that the application can run successfully with EMET configured with the following minimum - mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), - Export address filtering (EAF), and Data Execution Prevention (DEP). + mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), + Export address filtering (EAF), and Data Execution Prevention (DEP). @@ -2092,7 +2096,8 @@

    5.1.5 Class: Protection of the TSF

    FPT_IDV_EXT.1 Software Identification and Versions

    The application shall be versioned with[selection: SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 - , other version information ].
    Application + , [assignment: + other version information ]].
    Application Note: The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires @@ -2160,12 +2165,12 @@

    5.1.5 Class: Protection of the TSF The specifics of the verification of updates involves requirements on the platform (and not the application), so these are not fully specified here.

    -
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application +
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application Note: Application software that is distributed as part of the platform operating system is not required to be package for installation or uninstallation. If "as an additional software - package to the OS" is selected the requirements from FPT_TUD_EXT.2 + package to the OS" is selected the requirements from FPT_TUD_EXT.2 must be included in the ST.
    @@ -2227,7 +2232,7 @@

    5.1.5 Class: Protection of the TSF
    The evaluator shall verify that the TSS identifies how the application is distributed. If "with the platform" is selected the evaluated shall perform a clean installation or factory reset to confirm that TOE software is included - as part of the platform OS. If "as an additional package" is selected the evaluator + as part of the platform OS. If "as an additional package" is selected the evaluator shall perform the tests in FPT_TUD_EXT.2.
    Guidance
    None.
    Tests
    None.
    @@ -2239,7 +2244,7 @@

    5.1.5 Class: Protection of the TSF

    5.1.6 Class: Trusted Path/Channel (FTP)

    FTP_DIT_EXT.1 Protection of Data in Transit

    -
    The application shall[selection: ]between itself and another trusted IT product.
    Application +
    The application shall[selection: ]between itself and another trusted IT product.
    Application Note: Encryption is not required for applications transmitting data that is not sensitive.

    @@ -2336,11 +2341,11 @@

    5.1.6 Class: Trusted Path/Channel

    5.1.7 TOE Security Functional Requirements Rationale

    The following rationale provides justification for each security objective for the TOE, showing that the SFRs are suitable to meet and achieve the security objectives:
    - + - + @@ -2381,36 +2386,21 @@

    5.1.7 TOE Security Functio

    Table 2: SFR Rationale
    ObjectiveAddressed byRationale
    O.INTEGRITY
    FDP_DEC_EXT.1The PP includes FDP_DEC_EXT.1 to limit access to platform hardware resources, which limits the methods by which an attacker can attempt to compromise the integrity of the TOE.
    FMT_CFG_EXT.1The PP includes FMT_CFG_EXT.1 for the TSP to limit unauthorized access to itself by preventing the use of default authentication credentials and by ensuring that the TOE uses appropriately restrictive platform permissions on its binaries and data
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.
    O.MANAGEMENT
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.
    O.PROTECTED_​COMMS
    FCS_CKM.1The PP includes FCS_CKM.1 to specify whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.

    5.2 Security Assurance Requirements

    - - The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in - Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal - instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements - (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation - and performs independent testing.

    - This section lists the set of SARs from CC part 3 that are required in evaluations against this - PP. Individual Evaluation Activities (EAs) to be performed are specified both - in Section 5 Security Requirements as well as in this section.

    - The general model for evaluation of TOEs against STs written to conform to this PP is as follows:

    - After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting - environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to - perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and - ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, - which are intended to be an interpretation of the other CEM assurance requirements as they - apply to the specific technology instantiated in the TOE. The evaluation activities that are - captured in Section 5 Security Requirements also provide clarification as to what the developer needs - to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented - and presented (along with the administrative guidance used) for validation. - -

    5.2.1 Class ASE: Security Target

    - As per ASE activities defined in [CEM]. -

    5.2.2 Class ADV: Development

    The information about the TOE +


    +

    5.2.1 Class ASE: Security Target

    + As per ASE activities defined in [CEM]. + +

    5.2.2 Class ADV: Development

    + The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in - Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to + Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section. -

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    The functional + +

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    + The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the @@ -2423,8 +2413,17 @@

    5.2.2 Class ADV: Development

    T is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list. -

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the - SFRs.
    Application + + + + + + + + + +

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the + SFRs.
    Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and @@ -2442,13 +2441,16 @@

    Developer action elements:

    There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is - provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and + provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided. -

    5.2.3 Class AGD: Guidance Documentation

    +
    + +

    5.2.3 Class AGD: Guidance Documentation

    + The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The @@ -2460,7 +2462,18 @@

    Developer action elements:

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    Developer action elements:

    The developer shall provide operational user guidance.
    Application + +

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    + + + + + + + + + +

    Developer action elements:

    The developer shall provide operational user guidance.
    Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be @@ -2472,7 +2485,7 @@

    Developer action elements:

    The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure - processing environment, including appropriate warnings.
    Application + processing environment, including appropriate warnings.
    Note: User and administrator are to be considered in the definition of user role.
    The operational user guidance shall describe, for each user role, how to use the @@ -2488,8 +2501,8 @@

    Developer action elements:

    The operational user guidance shall be clear and reasonable.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    Some of the contents of the operational guidance will be verified by the - evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE - according to the [CEM]. The following additional + evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE + according to the [CEM]. The following additional information is also required.

    If cryptographic functions are provided by the TOE, the operational guidance shall contain instructions for @@ -2507,7 +2520,14 @@

    Developer action elements:

    TOE will likely contain security functionality that does not fall in the scope of evaluation under this PP. The operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation - activities.

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Application + activities.
    +

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Note: As with the operational guidance, the developer should look to @@ -2525,18 +2545,27 @@

    Developer action elements:

    TOE functional requirements. The evaluator shall check to ensure that the guidance provided for the TOE adequately addresses all platforms claimed for the TOE in the ST. -

    5.2.4 Class ALC: Life-cycle Support

    +
    + +

    5.2.4 Class ALC: Life-cycle Support

    + At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level. +

    ALC_CMC.1 Labeling of the TOE (ALC_CMC.1)

    + This component is targeted at identifying the TOE such that it can be distinguished from other products or versions from the same vendor and can be easily specified when being procured by an end user. -

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Application + + + + +

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Note: Unique reference information includes: @@ -2550,7 +2579,13 @@

    Developer action elements:

    TOE, the evaluator shall examine the information on the web site to ensure that the information in the ST is sufficient to distinguish the product. -

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE +
    +

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    + + + + +

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE itself; and the evaluation evidence required by the SARs.
    The configuration list shall uniquely identify the configuration items.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The "evaluation evidence required by the SARs" in this PP is limited to the @@ -2576,7 +2611,9 @@

    Developer action elements:

    TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the - TSF using this unique identification.

    ALC_TSU_EXT.1 Timely Security Updates

    + TSF using this unique identification.

    +

    ALC_TSU_EXT.1 Timely Security Updates

    + This component requires the TOE developer, in conjunction with any other necessary parties, to provide information as to how the end-user devices are updated to address security issues in a timely manner. The documentation describes the process of providing updates to the @@ -2584,7 +2621,14 @@

    Developer action elements:

    The developer shall provide a description in the TSS of how timely + + + + + + + +

    Developer action elements:

    The developer shall provide a description in the TSS of how timely security updates are made to the TOE.
    Note: @@ -2621,7 +2665,10 @@

    Developer action elements:

    5.2.5 Class ATE: Tests

    +

    + +

    5.2.5 Class ATE: Tests

    + Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN @@ -2630,25 +2677,80 @@

    Developer action elements:

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + +

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing - is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, - although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. -

    Developer action elements:

    The developer shall provide the TOE for testing.
    Application + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.
    Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details.

    Content and presentation elements:

    The TOE shall be suitable for testing.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The evaluator shall test a subset of the TSF to confirm - that the TSF operates as specified.
    Application + that the TSF operates as specified.
    Note: The evaluator shall test the application on the most current fully patched version of the platform.
    @@ -2656,7 +2758,7 @@

    Developer action elements:

    [CEM] and the body of this PP’s evaluation activities.

    + the [CEM] and the body of this PP’s evaluation activities.

    While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in the ST is covered. The test plan identifies the platforms to be tested, and for those @@ -2685,7 +2787,10 @@

    Developer action elements:

    5.2.6 Class AVA: Vulnerability Assessment

    +
    + +

    5.2.6 Class AVA: Vulnerability Assessment

    + For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover what vulnerabilities have been discovered in these types of products. In most cases, these @@ -2695,13 +2800,20 @@

    Developer action elements:

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Application + +

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The evaluator shall perform a search of public domain sources to identify - potential vulnerabilities in the TOE.
    Application + potential vulnerabilities in the TOE.
    Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain @@ -2719,10 +2831,12 @@

    Developer action elements:

    For Windows, Linux, macOS and Solaris: + an appropriate justification would be formulated.

    The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious.

    + +

    Appendix A - Optional Requirements

    As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE) are contained in the body of this PP. @@ -2766,7 +2880,7 @@

    A.1 Strictly Optional R
    Tests
    None.

    A.2 Objective Requirements

    A.2.1 Class: Protection of the TSF (FPT)

    FPT_API_EXT.2 Use of Supported Services and APIs

    -
    The application[selection, choose one of: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: +
    The application[selection: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types].
    Application Note: @@ -2801,10 +2915,10 @@

    A.1 Strictly Optional R

    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
    • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet - the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
    • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
    • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
      • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet + the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
      • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
      • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.1]
      • [FFC Schemes] using Diffie-Hellman group 14 that meet the following: - RFC 3526, Section 3
      • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
      ].
      Application + RFC 3526, Section 3
    • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
    ].
    Application Note: The ST author shall select all key generation schemes used for key @@ -2939,7 +3053,7 @@

    A.1 Strictly Optional R FTP_DIT_EXT.1.1.

    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

    [selection:
    • [RSA-based key establishment schemes] that meets the following: [NIST +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

      [selection:
      • [RSA-based key establishment schemes] that meets the following: [NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]
      • [RSA-based key establishment schemes] that meet the following: RSAES-PKCS1-v1_5 as specified in Section 7.2 of RFC 8017, @@ -2948,7 +3062,7 @@

        A.1 Strictly Optional R Schemes Using Discrete Logarithm Cryptography”]

      • [Finite field-based key establishment schemes] that meets the following: [NIST Special Publication 800-56A, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]
      • [Key establishment scheme using Diffie-Hellman group 14] - that meets the following: RFC 3526, Section 3
      • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
      ].
      Application + that meets the following: RFC 3526, Section 3
    • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
    ].
    Application Note: The ST author shall select all key establishment schemes used for the selected cryptographic @@ -3155,7 +3269,7 @@

    A.1 Strictly Optional R
    The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm[selection:
    • RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the - following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
    • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
    ].
    Application + following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
  • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
  • ].
    Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    @@ -3456,7 +3570,7 @@

    A.1 Strictly Optional R
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    -
    The application shall[selection, choose one of: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the @@ -3526,7 +3640,7 @@

    A.1 Strictly Optional R FTP_DIT_EXT.1.1.

    -
    The application shall[selection, choose one of: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the @@ -3570,7 +3684,7 @@

    A.1 Strictly Optional R SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based implementations for CTR_DRBG are allowed.

    -
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection, choose one of: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application +
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first @@ -3680,7 +3794,7 @@

    A.1 Strictly Optional R -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
    • RFC 5280 certificate validation and certificate path validation.
    • The certificate path must terminate with a trusted CA certificate.
    • The application shall validate a certificate path by ensuring the presence of the +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
      • RFC 5280 certificate validation and certificate path validation.
      • The certificate path must terminate with a trusted CA certificate.
      • The application shall validate a certificate path by ensuring the presence of the basicConstraints extension and that the CA flag is set to TRUE for all CA certificates, and that any path constraints are met.
      • The application shall validate that any CA certificate includes caSigning purpose in the key @@ -3854,7 +3968,7 @@

        A.1 Strictly Optional R with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates as a TLS client, X509 authentication must be claimed.

    -
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection, choose one of: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application +
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application Note: Often a connection must be established to perform a verification of the revocation @@ -3913,7 +4027,7 @@

    A.1 Strictly Optional R Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through - means provided by the OS. + means provided by the OS.

    The application installation package shall be digitally signed such that its platform can cryptographically verify them prior to installation.
    Application Note: @@ -4293,18 +4407,18 @@

    D.3 Specific Guidance for D respect to the application if execution of all PP-specified security functionality follows the same code path on both platforms.

    Table 3. Factors for Determining Hardware/Virtual Hardware Platform Equivalence

    D.5.2 Platform Equivalence—OS Platforms

    For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified - security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following + security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order:
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that run on different processor architectures and instruction sets are not equivalent.
    Platform VendorsDifferentPlatforms from different vendors are not equivalent.
    Platform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are - differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified + differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are - no differences in device interfaces and OS APIs that are relevant to the way the platform + no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does - not provide such functionality to the application.
    Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    + not provide such functionality to the application.Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the - underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications + underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments.
    FactorSame/Different/NoneGuidance
    Platform Type/VendorDifferentSoftware-based execution environments that are substantially different or come @@ -4332,7 +4446,7 @@

    D.3 Specific Guidance for D configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences - could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security + could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality.

    Software-Based Execution Environments

    For applications that run in a software-based execution environment such as a Java virtual machine or a Container, then @@ -4341,19 +4455,13 @@

    D.3 Specific Guidance for D functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration.

    Appendix E - Acronyms

    - - - + - - - diff --git a/xml-builder-test/SanityChecksOutput.md b/xml-builder-test/SanityChecksOutput.md index 450c9ec..396a69b 100644 --- a/xml-builder-test/SanityChecksOutput.md +++ b/xml-builder-test/SanityChecksOutput.md @@ -3,15 +3,6 @@ * Error: f-element FIA_X509_EXT.2.1 appears not to have an associated evaluation activity.: /PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[3]""/f-component[2]""/f-element[1]"" * Warning: Detected an empty _p_ element./PP[1]""/sec:Introduction[1]""/section[2]""/choice[1]"This PP i"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[2]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[3]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[4]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[5]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[6]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[7]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[8]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:Conformance_Claims[1]""/cclaims[1]""/cclaim[3]""/description[1]"This PP d"/h:p[9]"" * Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[1]""/f-component[2]""/f-element[1]""/note[1]"The ST au"/h:p[1]"" * Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[1]""/f-component[2]""/f-element[1]""/aactivity[1]""/TSS[1]"The evalu"/h:p[1]"" * Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[1]""/f-component[2]""/f-element[1]""/aactivity[1]""/TSS[1]"The evalu"/h:p[2]"" @@ -217,20 +208,17 @@ * Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[7]""/f-component[1]""/f-element[1]""/note[1]"Encryptio"/h:p[9]"" * Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[7]""/f-component[1]""/f-element[1]""/aactivity[1]""/TSS[1]"For platf"/h:p[1]"" * Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/sec:SFRs[1]""/section[7]""/f-component[1]""/f-element[1]""/aactivity[1]""/Guidance[1]"None."/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/h:p[2]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/h:p[3]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[2]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[3]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[4]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[4]"At the as"/a-component[2]""/a-element[4]""/aactivity[1]"The "eval"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[4]"At the as"/a-component[3]"This comp"/a-element[6]""/aactivity[1]"The evalu"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[4]"At the as"/a-component[3]"This comp"/a-element[6]""/aactivity[1]"The evalu"/h:p[2]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[5]"Testing i"/a-component[1]"Testing i"/a-element[4]""/aactivity[1]"The evalu"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[5]"Testing i"/a-component[1]"Testing i"/a-element[4]""/aactivity[1]"The evalu"/h:p[2]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[5]"Testing i"/a-component[1]"Testing i"/a-element[4]""/aactivity[1]"The evalu"/h:p[3]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[1]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[2]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[3]"" -* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]"The Secur"/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[4]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[1]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[2]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[3]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[3]"The guida"/a-component[1]""/a-element[9]""/aactivity[1]"Some of t"/h:p[4]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[4]"At the as"/a-component[2]""/a-element[4]""/aactivity[1]"The "eval"/h:p[1]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[4]"At the as"/a-component[3]"This comp"/a-element[6]""/aactivity[1]"The evalu"/h:p[1]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[4]"At the as"/a-component[3]"This comp"/a-element[6]""/aactivity[1]"The evalu"/h:p[2]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[5]"Testing i"/a-component[1]"Testing i"/a-element[4]""/aactivity[1]"The evalu"/h:p[1]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[5]"Testing i"/a-component[1]"Testing i"/a-element[4]""/aactivity[1]"The evalu"/h:p[2]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[5]"Testing i"/a-component[1]"Testing i"/a-element[4]""/aactivity[1]"The evalu"/h:p[3]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[1]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[2]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[3]"" +* Warning: Detected an empty _p_ element./PP[1]""/sec:req[1]""/section[1]""/section[6]"For the c"/a-component[1]""/a-element[5]""/aactivity[1]"The evalu"/h:p[4]"" diff --git a/xml-builder-test/TDValidationReport.txt b/xml-builder-test/TDValidationReport.txt index e69de29..62b5f7b 100644 --- a/xml-builder-test/TDValidationReport.txt +++ b/xml-builder-test/TDValidationReport.txt @@ -0,0 +1,18 @@ +/home/runner/work/application/application/output/effective.xml:399:114: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:399:213: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:567:99: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:567:195: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1104:112: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1104:233: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1104:367: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1167:105: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1167:197: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1398:479: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1398:549: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1853:104: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:1853:205: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:2021:199: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:2021:344: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:2021:429: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:2735:97: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/output/effective.xml:2735:196: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" diff --git a/xml-builder-test/ValidationReport.txt b/xml-builder-test/ValidationReport.txt index e69de29..b82bdd1 100644 --- a/xml-builder-test/ValidationReport.txt +++ b/xml-builder-test/ValidationReport.txt @@ -0,0 +1,18 @@ +/home/runner/work/application/application/input/application.xml:402:115: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:402:215: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:570:100: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:570:197: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1107:113: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1107:235: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1107:370: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1170:106: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1170:199: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1401:485: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1401:556: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1856:105: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:1856:207: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:2024:200: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:2024:346: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:2024:432: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:2738:98: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" +/home/runner/work/application/application/input/application.xml:2738:198: error: attribute "onlyone" not allowed here; expected attribute "exclusive" or "style" diff --git a/xml-builder-test/application-release-linkable.html b/xml-builder-test/application-release-linkable.html index a47c76d..173c60f 100644 --- a/xml-builder-test/application-release-linkable.html +++ b/xml-builder-test/application-release-linkable.html @@ -663,22 +663,22 @@

    1.1 Overview

    The scope of -
    Table 3: Acronyms -
    AcronymMeaning
    APIApplication Programming Interface
    appApplication
    ASLRAddress Space Layout Randomization
    Base-PPBase Protection Profile
    AcronymMeaning
    Base-PPBase Protection Profile
    CCCommon Criteria
    CEMCommon Evaluation Methodology
    cPPCollaborative Protection Profile
    DEPData Execution Prevention
    EPExtended Package
    FPFunctional Package
    OEOperational Environment
    OSOperating System
    PIIPersonally Identifiable Information
    PPProtection Profile
    PP-ConfigurationProtection Profile Configuration
    PP-ModuleProtection Profile Module
    Target of Evaluation (TOE)
    The product under evaluation.
    TOE Security Functionality (TSF)
    The security functionality of the product under evaluation.
    TOE Summary Specification (TSS)
    A description of how a TOE satisfies the SFRs in an ST.

    1.2.2 Technical Terms

    Address Space Layout Randomization (ASLR)
    +

    1.2.2 Technical Terms

    - - - @@ -690,10 +690,10 @@

    1.1 Overview

    The scope of execution within a limited execution environment on the local system. Typically, there is no persistent installation and execution begins without the user's consent or even notification. Examples of mobile code technologies include JavaScript, Java applets, Adobe Flash, and Microsoft Silverlight. - -
    Address Space Layout Randomization
    An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process.
    Application (app)
    +
    Application
    Software that runs on a platform and performs tasks on behalf of the user or owner of the platform, as well as its supporting documentation. The terms TOE and application are interchangeable in this document.
    Application Programming Interface (API)
    +
    Application Programming Interface
    A specification of routines, data structures, object classes, and variables that allows an application to make use of services provided by another software component, such as a library. APIs are often provided for a set of libraries included with the platform.
    Credential
    Data that establishes the identity of a user, e.g. a cryptographic key or password.
    Data Execution Prevention (DEP)
    +
    Data Execution Prevention
    An anti-exploitation feature of modern operating systems executing on modern computer hardware, which enforces a non-execute permission on pages of memory. DEP prevents pages of memory from containing both data and instructions, which makes it more difficult for an attacker to introduce and execute code.
    Operating System (OS)
    +
    Operating System
    Software that manages hardware resources and provides services for applications.
    Personally Identifiable Information (PII)
    +
    Personally Identifiable Information
    Any information about an individual maintained by an agency, including, but not limited to, education, financial transactions, medical history, and criminal or employment history and information which can be used to distinguish or trace an @@ -727,62 +727,62 @@

    1.3 Compliant Targets o

    1.4 Platforms with Specific EAs

    This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on - other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.
    + other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.

    1.5 Use Cases

    Requirements in this Protection Profile are designed to address the security problem in the following use cases. These use cases are intentionally very broad, as many specific use cases exist for application software. Many applications may be used in combinations of these broad use cases, and evaluation against PP-Modules of this PP, when available, may be most appropriate for some application types.
    [USE CASE 1] Content Creation
    The application allows a user to create content, saving it to either local or remote storage. Example content includes text documents, presentations, and images.
    [USE CASE 2] Content Consumption
    The application allows a user to consume content, retrieving it from either local or remote storage. Example content includes web pages and video.
    [USE CASE 3] Communication
    The application allows for communication interactively or non-interactively with other users or applications over a communications channel. Example communications include instant messages, email, and voice.

    2 Conformance Claims

    -
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claim
    This PP does not claim conformance to any other Protection Profile. The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP.

    Protection Profile for Mobile Device Management Version 4.0

    PP-Module for File Encryption, Version 1.0

    PP-Module for File Encryption Enterprise Management, Version 1.0

    PP-Module for VPN Clients, Version 2.2

    PP-Module for VPN Clients, Version 2.3

    PP-Module for Endpoint Detection and Response, Version 1.0

    PP-Module for Host Agent, Version 1.0

    PP-Module for Voice and Video over IP (VVoIP), Version 1.0

    PP-Module for Email Clients, Version 1.0
    Package Claim
    • This PP is Functional Package for TLS Version 1.1 Conformant.
    • This PP is Functional Package for SSH Version 1.0 Conformant.
    +
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claims

    Package Claims

    3 Security Problem Definition

    - The security problem is described in terms of the threats that the TOE is expected to address, assumptions about the operational environment, and any organizational security policies that the TOE is expected to enforce. + The security problem is described in terms of the threats that the TOE is expected to address, assumptions about the operational environment, and any organizational security policies that the TOE is expected to enforce.

    3.1 Threats

    -
    T.LOCAL_ATTACK
    An attacker can act through unprivileged software on the same computingplatform on which the application executes. Attackers may provide maliciously formattedinput to the application in the form of files or other localcommunications.
    T.NETWORK_ATTACK
    An attacker is positioned on a communications channel or elsewhere on thenetwork infrastructure. Attackers may engage in communications with the applicationsoftware or alter communications between the application software and other endpoints inorder to compromise it.
    T.NETWORK_EAVESDROP
    An attacker is positioned on a communications channel or elsewhere on thenetwork infrastructure. Attackers may monitor and gain access to data exchanged betweenthe application and other endpoints.
    T.PHYSICAL_ACCESS
    An attacker may try to access sensitive data at rest.
    +
    T.LOCAL_ATTACK
    An attacker can act through unprivileged software on the same computingplatform on which the application executes. Attackers may provide maliciously formattedinput to the application in the form of files or other localcommunications.
    T.NETWORK_ATTACK
    An attacker is positioned on a communications channel or elsewhere on thenetwork infrastructure. Attackers may engage in communications with the applicationsoftware or alter communications between the application software and other endpoints inorder to compromise it.
    T.NETWORK_EAVESDROP
    An attacker is positioned on a communications channel or elsewhere on thenetwork infrastructure. Attackers may monitor and gain access to data exchanged betweenthe application and other endpoints.
    T.PHYSICAL_ACCESS
    An attacker may try to access sensitive data at rest.

    3.2 Assumptions

    -
    A.PLATFORM
    The TOE relies upon a trustworthy computing platform with a reliable time clock for its execution. This includes the underlying platform and whatever runtime environment it provides to the TOE.
    A.PROPER_ADMIN
    The administrator of the application software is not careless, willfully negligent or hostile, and administers the software in compliance with the applied enterprise security policy.
    A.PROPER_USER
    The user of the application software is not willfully negligent or hostile, and uses the software in compliance with the applied enterprise security policy.
    +
    A.PLATFORM
    The TOE relies upon a trustworthy computing platform with a reliable time clock for its execution. This includes the underlying platform and whatever runtime environment it provides to the TOE.
    A.PROPER_ADMIN
    The administrator of the application software is not careless, willfully negligent or hostile, and administers the software in compliance with the applied enterprise security policy.
    A.PROPER_USER
    The user of the application software is not willfully negligent or hostile, and uses the software in compliance with the applied enterprise security policy.

    3.3 Organizational Security Policies

    - This document does not define any additional OSPs. + This document does not define any additional OSPs.

    4 Security Objectives

    4.1 Security Objectives for the TOE

    -
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.
    +
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.

    4.2 Security Objectives for the Operational Environment

    -
    OE.PLATFORM
    The TOE relies upon a trustworthy computing platform for its execution. This includes the underlying operating system and any discrete execution environment provided to the TOE.
    OE.PROPER_ADMIN
    The administrator of the application software is not careless, willfully negligent or hostile, and administers the software within compliance of the applied enterprise security policy.
    OE.PROPER_USER
    The user of the application software is not willfully negligent or hostile, and uses the software within compliance of the applied enterprise security policy.
    +
    OE.PLATFORM
    The TOE relies upon a trustworthy computing platform for its execution. This includes the underlying operating system and any discrete execution environment provided to the TOE.
    OE.PROPER_ADMIN
    The administrator of the application software is not careless, willfully negligent or hostile, and administers the software within compliance of the applied enterprise security policy.
    OE.PROPER_USER
    The user of the application software is not willfully negligent or hostile, and uses the software within compliance of the applied enterprise security policy.

    4.3 Security Objectives Rationale

    This section describes how the assumptions, threats, and organizational - security policies map to the security objectives.
    Table 1: Security Objectives Rationale
    Threat, Assumption, or OSPSecurity ObjectivesRationale
    T.LOCAL_​ATTACKO.QUALITYThe objective O.QUALITY protects against the use ofmechanisms that weaken the TOE with regard toattack by other software on the platform.
    T.NETWORK_​ATTACKO.INTEGRITYThe threat T.NETWORK_ATTACK is countered by O.INTEGRITY as this providesfor integrity of software that is installed onto the system from thenetwork.
    O.MANAGEMENTThe threat T.NETWORK_ATTACK is countered by O.MANAGEMENT as thisprovides for the ability to configure the application to defend against network attack.
    O.PROTECTED_​COMMSThe threat T.NETWORK_ATTACK is countered by O.PROTECTED_COMMS as thisprovides for integrity of transmitted data.
    T.NETWORK_​EAVESDROPO.MANAGEMENTThe threat T.NETWORK_EAVESDROP is countered by O.MANAGEMENT as thisprovides for the ability to configure the application to protect theconfidentiality of its transmitted data.
    O.PROTECTED_​COMMSThe threat T.NETWORK_EAVESDROP is countered by O.PROTECTED_COMMS as thisprovides for confidentiality of transmitted data.
    O.QUALITYThe objective O.QUALITY ensures use of mechanisms that provide protection against network-based attack.
    T.PHYSICAL_​ACCESSO.PROTECTED_​STORAGEThe objective O.PROTECTED_STORAGE protects against unauthorized attempts to accessphysical storage used by the TOE.
    A.PLATFORMOE.PLATFORMThe operational environment objective OE.PLATFORM is realized through - A.PLATFORM.
    A.PROPER_​ADMINOE.PROPER_​ADMINThe operational environment objective OE.PROPER_ADMIN - is realized through A.PROPER_ADMIN.
    A.PROPER_​USEROE.PROPER_​USERThe operational environment objective OE.PROPER_USER - is realized through A.PROPER_USER.
    + security policies map to the security objectives.
    Table 1: Security Objectives Rationale
    Threat, Assumption, or OSPSecurity ObjectivesRationale
    T.LOCAL_​ATTACKO.QUALITYThe objective O.QUALITY protects against the use ofmechanisms that weaken the TOE with regard toattack by other software on the platform.
    T.NETWORK_​ATTACKO.INTEGRITYThe threat T.NETWORK_ATTACK is countered by O.INTEGRITY as this providesfor integrity of software that is installed onto the system from thenetwork.
    O.MANAGEMENTThe threat T.NETWORK_ATTACK is countered by O.MANAGEMENT as thisprovides for the ability to configure the application to defend against network attack.
    O.PROTECTED_​COMMSThe threat T.NETWORK_ATTACK is countered by O.PROTECTED_COMMS as thisprovides for integrity of transmitted data.
    T.NETWORK_​EAVESDROPO.MANAGEMENTThe threat T.NETWORK_EAVESDROP is countered by O.MANAGEMENT as thisprovides for the ability to configure the application to protect theconfidentiality of its transmitted data.
    O.PROTECTED_​COMMSThe threat T.NETWORK_EAVESDROP is countered by O.PROTECTED_COMMS as thisprovides for confidentiality of transmitted data.
    O.QUALITYThe objective O.QUALITY ensures use of mechanisms that provide protection against network-based attack.
    T.PHYSICAL_​ACCESSO.PROTECTED_​STORAGEThe objective O.PROTECTED_STORAGE protects against unauthorized attempts to accessphysical storage used by the TOE.
    A.PLATFORMOE.PLATFORMThe operational environment objective OE.PLATFORM is realized through + A.PLATFORM.
    A.PROPER_​ADMINOE.PROPER_​ADMINThe operational environment objective OE.PROPER_ADMIN + is realized through A.PROPER_ADMIN.
    A.PROPER_​USEROE.PROPER_​USERThe operational environment objective OE.PROPER_USER + is realized through A.PROPER_USER.

    5 Security Requirements

    - This chapter describes the security requirements which have to be fulfilled by the product under evaluation. Those requirements comprise functional components from Part 2 and assurance components from Part 3 of - [CC]. + This chapter describes the security requirements which have to be fulfilled by the product under evaluation. Those requirements comprise functional components from Part 2 and assurance components from Part 3 of + [CC]. The following conventions are used for the completion of operations:
    • Refinement operation (denoted by bold text or strikethrough text): Is used to add details to a requirement or to remove part of the requirement that is made irrelevant - through the completion of another operation, and thus further restricts a requirement.
    • + through the completion of another operation, and thus further restricts a requirement.
    • Selection (denoted by italicized text): Is used to select one or more options - provided by the [CC] in stating a requirement.
    • + provided by the [CC] in stating a requirement.
    • Assignment operation (denoted by italicized text): Is used to assign a - specific value to an unspecified parameter, such as the length of a password. Showing the - value in square brackets indicates assignment.
    • + specific value to an unspecified parameter, such as the length of a password. Showing the + value in square brackets indicates assignment.
    • Iteration operation: Is indicated by appending the SFR name with a slash and unique identifier - suggesting the purpose of the operation, e.g. "/EXAMPLE1." + suggesting the purpose of the operation, e.g. "/EXAMPLE1."
    @@ -792,19 +792,19 @@

    5.1 Security Functional Requireme

    5.1.1 Class: Cryptographic Support (FCS)

    FCS_CKM.1 Cryptographic Key Generation Services

    -
    The application shall[selection: generate no asymmetric cryptographic keys, invoke platform-provided functionality for asymmetric key generation, implement asymmetric key generation].
    Application +
    The application shall[selection: generate no asymmetric cryptographic keys, invoke platform-provided functionality for asymmetric key generation, implement asymmetric key generation].
    Application Note: If "implement asymmetric key generation" or "invoke platform-provided functionality for asymmetric key generation" is chosen, then - additional FCS_CKM.1/AK elements shall be included in the ST.
    + additional FCS_CKM.1/AK elements shall be included in the ST.
    The evaluator shall inspect the application and its developer documentation - to determine if the application needs asymmetric key generation services. If not, the + to determine if the application needs asymmetric key generation services. If not, the evaluator shall verify the generate no asymmetric cryptographic keys selection is present - in the ST. Otherwise, the evaluation activities shall be performed as stated in the - selection-based requirements.
    -
    Guidance
    None.
    -
    Tests
    None.
    + in the ST. Otherwise, the evaluation activities shall be performed as stated in the + selection-based requirements.
    +
    Guidance
    None.
    +
    Tests
    None.
    @@ -830,46 +830,46 @@

    5.1.1 Class: Cryptographic Support

    FCS_RBG_EXT.1 Random Bit Generation Services

    -
    The application shall[selection: use no DRBG functionality, invoke platform-provided DRBG functionality, implement DRBG functionality]for its cryptographic operations.
    Application +
    The application shall[selection: use no DRBG functionality, invoke platform-provided DRBG functionality, implement DRBG functionality]for its cryptographic operations.
    Application Note: The selection "invoke platform-provided DRBG functionality" should only be chosen for direct invocations of the platform DRBG, calls to platform protocols that may then call the platform's DRBG are not directly using DRBG functionality and should select "use no DRBG functionality."

    If "implement DRBG functionality" is chosen, then additional FCS_RBG_EXT.2 - elements shall be included in the ST.

    + elements shall be included in the ST.

    In this requirement, cryptographic operations include all cryptographic key generation/derivation/agreement, IVs (for - certain modes), as well as protocol-specific random values. Cryptographic operations in this requirement refer to - the other cryptographic requirements in this PP, not additional functionality that is not in scope.
    + certain modes), as well as protocol-specific random values. Cryptographic operations in this requirement refer to + the other cryptographic requirements in this PP, not additional functionality that is not in scope.
    If "use no DRBG functionality" is selected, the evaluator shall inspect the application - and its developer documentation and verify that the application needs no random bit generation services. + and its developer documentation and verify that the application needs no random bit generation services.

    If "implement DRBG functionality" is selected, the evaluator shall ensure - that additional FCS_RBG_EXT.2 elements are included in the ST.

    + that additional FCS_RBG_EXT.2 elements are included in the ST.

    If "invoke platform-provided DRBG functionality" is selected, the evaluator - performs the following activities. The evaluator shall examine + performs the following activities. The evaluator shall examine the TSS to confirm that it identifies all functions (as described by the - SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator + SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator shall determine that for each of these functions, the TSS states which - platform interface (API) is used to obtain the random numbers. The evaluator shall confirm + platform interface (API) is used to obtain the random numbers. The evaluator shall confirm that each of these interfaces corresponds to the acceptable interfaces listed for each platform - below.

    + below.

    It should be noted that there is no expectation that the evaluators attempt to confirm that the APIs are being used correctly for the functions identified in the TSS; - the activity is to list the used APIs and then do an existence check via decompilation.

    -
    Guidance
    None.

    + the activity is to list the used APIs and then do an existence check via decompilation.

    +
    Guidance
    None.

    Tests
    If "invoke platform-provided DRBG functionality" is selected, the following tests shall be performed:

    The evaluator shall decompile the application binary using a decompiler - suitable for the application (TOE). The evaluator shall search the output of the - decompiler to determine that, for each API listed in the TSS, that API - appears in the output. If the representation of the API does not correspond directly to + suitable for the application (TOE). The evaluator shall search the output of the + decompiler to determine that, for each API listed in the TSS, that API + appears in the output. If the representation of the API does not correspond directly to the strings in the following list, the evaluator shall provide a mapping from the - decompiled text to its corresponding API, with a description of why the API text does + decompiled text to its corresponding API, with a description of why the API text does not directly correspond to the decompiled text and justification that the decompiled text - corresponds to the associated API.

    + corresponds to the associated API.

    The following are the per-platform list of acceptable APIs:
      @@ -879,7 +879,7 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that the application uses at least one of javax.crypto.KeyGenerator class or the java.security.SecureRandom class or /dev/random - or /dev/urandom. + or /dev/urandom.

      @@ -888,13 +888,13 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that rand_s, RtlGenRandom, BCryptGenRandom, or - CryptGenRandom API is used for classic desktop applications. The evaluator shall + CryptGenRandom API is used for classic desktop applications. The evaluator shall verify the application uses the RNGCryptoServiceProvider class or derives a class - from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal - Applications. It is only required that the API is called/invoked, there is no - requirement that the API be used directly. In future versions of this document, - CryptGenRandom may be removed as an option as it is no longer the preferred API per - vendor documentation. + from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal + Applications. It is only required that the API is called/invoked, there is no + requirement that the API be used directly. In future versions of this document, + CryptGenRandom may be removed as an option as it is no longer the preferred API per + vendor documentation.

      @@ -903,7 +903,7 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that the application invokes either - SecRandomCopyBytes, CCRandomGenerateBytes, or CCRandomCopyBytes, or uses /dev/random directly to acquire random. + SecRandomCopyBytes, CCRandomGenerateBytes, or CCRandomCopyBytes, or uses /dev/random directly to acquire random.

      @@ -912,7 +912,7 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that the application collects random from /dev/random - or /dev/urandom. + or /dev/urandom.

      @@ -920,7 +920,7 @@

      5.1.1 Class: Cryptographic Support - The evaluator shall verify that the application collects random from /dev/random. + The evaluator shall verify that the application collects random from /dev/random.

      @@ -928,7 +928,7 @@

      5.1.1 Class: Cryptographic Support - The evaluator shall verify that the application invokes either CCRandomGenerateBytes or CCRandomCopyBytes, or collects random from /dev/random. + The evaluator shall verify that the application invokes either CCRandomGenerateBytes or CCRandomCopyBytes, or collects random from /dev/random.

    @@ -937,41 +937,41 @@

    5.1.1 Class: Cryptographic Support

    FCS_STO_EXT.1 Storage of Credentials

    -
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: - list of credentials ]
    • implement functionality to securely store [assignment: - list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application +
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: + list of credentials ]
    • implement functionality to securely store [assignment: + list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application Note: This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) - are stored securely, and never persisted in cleartext form. - Application developers are encouraged to use platform mechanisms for the secure storage of credentials. - Depending on the platform that may include hardware-backed protection for credential storage. Application + are stored securely, and never persisted in cleartext form. + Application developers are encouraged to use platform mechanisms for the secure storage of credentials. + Depending on the platform that may include hardware-backed protection for credential storage. Application developers must choose a selection, or multiple selections, based on all credentials that the application - stores. If "not store any credentials" is selected then the application must not store any credentials. If "invoke the functionality provided by the platform to securely store" is selected then the + stores. If "not store any credentials" is selected then the application must not store any credentials. If "invoke the functionality provided by the platform to securely store" is selected then the Application developer must closely review the EA for their platform and provide documentation indicating - which platform mechanisms are used to store credentials. + which platform mechanisms are used to store credentials. If "implement functionality to securely store credentials" is selected, then the following components - must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding - requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store - credentials, "implement functionality to securely store credentials" must be selected.
    + must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding + requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store + credentials, "implement functionality to securely store credentials" must be selected.
    The evaluator shall check the TSS to ensure that it lists all persistent credentials (secret keys, PKI private keys, or passwords) needed to meet the - requirements in the ST. For each of these items, the evaluator shall - confirm that the TSS lists for what purpose it is used, and how it is stored.

    -
    Guidance
    None.

    + requirements in the ST. For each of these items, the evaluator shall + confirm that the TSS lists for what purpose it is used, and how it is stored.

    +
    Guidance
    None.

    Tests
    For all credentials for which the application implements functionality, the evaluator shall verify credentials are encrypted according to FCS_COP.1/SKC or conditioned according to - FCS_CKM.1.1/AK and FCS_CKM.1/PBKDF. For all credentials for which the application invokes platform-provided - functionality, the evaluator shall perform the following actions which vary per platform. + FCS_CKM.1.1/AK and FCS_CKM.1/PBKDF. For all credentials for which the application invokes platform-provided + functionality, the evaluator shall perform the following actions which vary per platform. @@ -980,11 +980,11 @@

    5.1.1 Class: Cryptographic Support The evaluator shall verify that all certificates are - stored in the Windows Certificate Store. The evaluator shall verify that other + stored in the Windows Certificate Store. The evaluator shall verify that other credentials, like passwords, are stored in the Windows Credential Manager or stored - using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall + using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall verify that the application is using the ProtectData class and storing credentials - in IsolatedStorage. + in IsolatedStorage.
      @@ -993,7 +993,7 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that all credentials are stored - within a Keychain. + within a Keychain.

    @@ -1002,7 +1002,7 @@

    5.1.1 Class: Cryptographic Support - The evaluator shall verify that all keys are stored using Linux keyrings. + The evaluator shall verify that all keys are stored using Linux keyrings.
      @@ -1011,7 +1011,7 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that all keys are stored using Solaris - Key Management Framework (KMF). + Key Management Framework (KMF).

      @@ -1019,7 +1019,7 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that all credentials are - stored within Keychain. + stored within Keychain.

    @@ -1028,40 +1028,40 @@

    5.1.1 Class: Cryptographic Support

    5.1.2 Class: User Data Protection (FDP)

    FDP_DAR_EXT.1 Encryption Of Sensitive Application Data

    -
    The application shall[selection: leverage platform-provided functionality to encrypt sensitive data, implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption, protect sensitive data in accordance with FCS_STO_EXT.1, not store any sensitive data]in non-volatile memory.
    Application +
    The application shall[selection: leverage platform-provided functionality to encrypt sensitive data, implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption, protect sensitive data in accordance with FCS_STO_EXT.1, not store any sensitive data]in non-volatile memory.
    Application Note: If "implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption" - is selected, the TSF must claim conformance to a PP-Configuration that includes the File Encryption PP-Module. + is selected, the TSF must claim conformance to a PP-Configuration that includes the File Encryption PP-Module.

    Any file that may potentially contain sensitive data (to include temporary files) - shall be protected. The only exception is if the user intentionally exports the sensitive data - to non-protected files. ST authors should select "protect sensitive data in accordance with - FCS_STO_EXT.1" for the sensitive data that is covered by the FCS_STO_EXT.1 SFR.
    + shall be protected. The only exception is if the user intentionally exports the sensitive data + to non-protected files. ST authors should select "protect sensitive data in accordance with + FCS_STO_EXT.1" for the sensitive data that is covered by the FCS_STO_EXT.1 SFR.
    -
    The evaluator shall examine the TSS to ensure that it describes the sensitive data processed by the application. - The evaluator shall then ensure that the following activities cover all of the sensitive data identified in the TSS.

    +
    The evaluator shall examine the TSS to ensure that it describes the sensitive data processed by the application. + The evaluator shall then ensure that the following activities cover all of the sensitive data identified in the TSS.

    If not store any sensitive data is selected, the evaluator shall inspect the TSS to ensure - that it describes how sensitive data cannot be written to non-volatile memory. The evaluator shall also - ensure that this is consistent with the filesystem test below.

    -
    Guidance
    None.

    + that it describes how sensitive data cannot be written to non-volatile memory. The evaluator shall also + ensure that this is consistent with the filesystem test below.

    +
    Guidance
    None.

    Tests
    Evaluation activities (after the identification of the sensitive data) are to be performed on all sensitive data listed - that are not covered by FCS_STO_EXT.1.

    - The evaluator shall inventory the filesystem locations where the application may write data. - The evaluator shall run the application and attempt to store sensitive data. The evaluator shall + that are not covered by FCS_STO_EXT.1.

    + The evaluator shall inventory the filesystem locations where the application may write data. + The evaluator shall run the application and attempt to store sensitive data. The evaluator shall then inspect those areas of the filesystem to note where data was stored (if any), and determine - whether it has been encrypted.

    + whether it has been encrypted.

    If "leverage platform-provided functionality" is selected, the evaluation activities will be performed as - stated in the following requirements, which vary on a per-platform basis.

    + stated in the following requirements, which vary on a per-platform basis.

      @@ -1070,9 +1070,9 @@

      5.1.2 Class: User Data Protection The Windows platform currently does not provide data-at-rest - encryption services which depend upon invocation by application developers. The evaluator shall + encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption, - such as BitLocker or Encrypting File System (EFS), clear to the end user. + such as BitLocker or Encrypting File System (EFS), clear to the end user.

      @@ -1082,7 +1082,7 @@

      5.1.2 Class: User Data Protection The evaluator shall inspect the TSS and ensure that it describes how the application uses the Complete Protection, Protected Unless Open, or Protected Until - First User Authentication Data Protection Class for each data file stored locally. + First User Authentication Data Protection Class for each data file stored locally.

    @@ -1092,9 +1092,9 @@

    5.1.2 Class: User Data Protection The Linux platform currently does not provide data-at-rest encryption services which depend - upon invocation by application developers. The evaluator shall verify that + upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear - to the end user. + to the end user.
      @@ -1103,9 +1103,9 @@

      5.1.2 Class: User Data Protection The Solaris platform currently does not provide data-at-rest encryption services which depend - upon invocation by application developers. The evaluator shall verify that + upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear - to the end user. + to the end user.

      @@ -1114,45 +1114,47 @@

      5.1.2 Class: User Data Protection The macOS platform currently does not provide data-at-rest encryption services which depend - upon invocation by application developers. The evaluator shall verify that + upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear - to the end user. + to the end user.

    FDP_DEC_EXT.1 Access to Platform Resources

    -
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, list of additional hardware resources ].
    Application +
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, [assignment: + list of additional hardware resources ]].
    Application Note: The intent is for the evaluator to ensure that the selection captures all hardware resources which the application accesses, and that these are - restricted to those which are justified. On some platforms, the application must explicitly solicit permission - in order to access hardware resources. Seeking such permissions, even if the application does not later make use of the - hardware resource, should still be considered access. Selections should be expressed in a manner consistent with how the application expresses - its access needs to the underlying platform. For example, + restricted to those which are justified. On some platforms, the application must explicitly solicit permission + in order to access hardware resources. Seeking such permissions, even if the application does not later make use of the + hardware resource, should still be considered access. Selections should be expressed in a manner consistent with how the application expresses + its access needs to the underlying platform. For example, the platform may provide location services which implies the potential use of a variety - of hardware resources (e.g. satellite receivers, WiFi, cellular radio) - yet "location services" is the proper selection. This is because use of these resources - can be inferred, but also because the actual usage may vary based on the particular platform. Resources that do not need to be explicitly identified are + of hardware resources (e.g. satellite receivers, WiFi, cellular radio) + yet "location services" is the proper selection. This is because use of these resources + can be inferred, but also because the actual usage may vary based on the particular platform. Resources that do not need to be explicitly identified are those which are ordinarily used by any application such as central processing units, - main memory, displays, input devices (e.g. keyboards, mice), and - persistent storage devices provided by the platform.
    -
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, list of additional sensitive information repositories ].
    Application + main memory, displays, input devices (e.g. keyboards, mice), and + persistent storage devices provided by the platform.
    +
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, [assignment: + list of additional sensitive information repositories ]].
    Application Note: "Sensitive information repositories" are defined as those collections of sensitive data that could be expected to be shared among some applications, users, or user roles, but to which not all - of these would ordinarily require access.
    + of these would ordinarily require access.
    -
    None.
    +
    None.
    Guidance
    The evaluator shall perform the platform-specific actions below and inspect user documentation to determine the application's access to hardware - resources. The evaluator shall ensure that this is consistent with the selections - indicated. The evaluator shall review documentation provided by the application + resources. The evaluator shall ensure that this is consistent with the selections + indicated. The evaluator shall review documentation provided by the application developer and for each resource which it accesses, identify the - justification as to why access is required.
    + justification as to why access is required.
    Tests
      @@ -1168,16 +1170,16 @@

      5.1.2 Class: User Data Protection For Windows Universal Applications the evaluator shall check - the WMAppManifest.xml file for a list of required hardware capabilities. The evaluator + the WMAppManifest.xml file for a list of required hardware capabilities. The evaluator shall verify that the user is made aware of the required hardware capabilities when - the application is first installed. This includes permissions such as + the application is first installed. This includes permissions such as ID_CAP_ISV_CAMERA, ID_CAP_LOCATION, ID_CAP_NETWORKING, ID_CAP_MICROPHONE, - ID_CAP_PROXIMITY and so on. A complete list of Windows App permissions can be found at: + ID_CAP_PROXIMITY and so on. A complete list of Windows App permissions can be found at: For Windows Desktop Applications the evaluator shall identify in either the application software or its documentation the list of the required - hardware resources. + hardware resources.

    @@ -1187,7 +1189,7 @@

    5.1.2 Class: User Data Protection The evaluator shall verify that either the application or the documentation provides a list of the - hardware resources it accesses. + hardware resources it accesses.
      @@ -1196,7 +1198,7 @@

      5.1.2 Class: User Data Protection The evaluator shall verify that either the application software or its documentation provides a list of the - hardware resources it accesses. + hardware resources it accesses.

      @@ -1205,7 +1207,7 @@

      5.1.2 Class: User Data Protection The evaluator shall verify that either the application software or its documentation provides a list of the - hardware resources it accesses. + hardware resources it accesses.

      @@ -1214,17 +1216,17 @@

      5.1.2 Class: User Data Protection The evaluator shall verify that either the application software or its documentation provides a list of the hardware - resources it accesses. + resources it accesses.

    -
    None.
    +
    None.
    Guidance
    The evaluator shall perform the platform-specific actions below and inspect user documentation to determine the application's access to sensitive information - repositories. The evaluator shall ensure that this is consistent with the selections - indicated. The evaluator shall review documentation provided by the application + repositories. The evaluator shall ensure that this is consistent with the selections + indicated. The evaluator shall review documentation provided by the application developer and for each sensitive information repository which it accesses, identify the - justification as to why access is required.
    + justification as to why access is required.
    Tests
    @@ -1241,16 +1243,16 @@

    5.1.2 Class: User Data Protection For Windows Universal Applications the evaluator shall check the - WMAppManifest.xml file for a list of required capabilities. The evaluator shall + WMAppManifest.xml file for a list of required capabilities. The evaluator shall identify the required information repositories when the - application is first installed. This includes permissions such as - ID_CAP_CONTACTS,ID_CAP_APPOINTMENTS,ID_CAP_MEDIALIB and so on. A complete list of + application is first installed. This includes permissions such as + ID_CAP_CONTACTS,ID_CAP_APPOINTMENTS,ID_CAP_MEDIALIB and so on. A complete list of Windows App permissions can be found at: For Windows Desktop Applications the evaluator shall identify in either the application software or its documentation the list of - sensitive information repositories it accesses. + sensitive information repositories it accesses. @@ -1260,7 +1262,7 @@

    5.1.2 Class: User Data Protection The evaluator shall verify that either the application software or its documentation provides a list of - the sensitive information repositories it accesses. + the sensitive information repositories it accesses.
      @@ -1277,7 +1279,7 @@

      5.1.2 Class: User Data Protection The evaluator shall verify that either the application software or its documentation provides a list of - sensitive information repositories it accesses. + sensitive information repositories it accesses.

      @@ -1286,25 +1288,26 @@

      5.1.2 Class: User Data Protection The evaluator shall verify that either the application software or its documentation provides a list of - sensitive information repositories it accesses. + sensitive information repositories it accesses.

    FDP_NET_EXT.1 Network Communications

    -
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: - list of functions for which the user can initiate network communication ], respond to [assignment: - list of remotely initiated communication ], list of application-initiated network communication ].
    Application +
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: + list of functions for which the user can initiate network communication ], respond to [assignment: + list of remotely initiated communication ], [assignment: + list of application-initiated network communication ]].
    Application Note: This requirement is intended to restrict both inbound and outbound network communications to only those required, or to network - communications that are user initiated. It does not apply to network communications in which the application may generically + communications that are user initiated. It does not apply to network communications in which the application may generically access the filesystem which may result in the platform accessing remotely mounted - drives/shares.
    + drives/shares.
    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
    The evaluator shall perform the following tests: @@ -1313,19 +1316,19 @@

    5.1.2 Class: User Data Protection
  • Test FDP_NET_EXT.1.1:1: - The evaluator shall run the application. While the application is running, + The evaluator shall run the application. While the application is running, the evaluator shall sniff network traffic ignoring all non-application associated traffic - and verify that any network communications witnessed are documented in the TSS or are user-initiated. + and verify that any network communications witnessed are documented in the TSS or are user-initiated.
  • Test FDP_NET_EXT.1.1:2: - The evaluator shall run the application. After the application initializes, the + The evaluator shall run the application. After the application initializes, the evaluator shall run network port scans to verify that any ports opened by the application have been captured in the ST for the third - selection and its assignment. This includes - connection-based protocols (e.g. TCP, DCCP) as well as connectionless protocols - (e.g. UDP).
  • + selection and its assignment. This includes + connection-based protocols (e.g. TCP, DCCP) as well as connectionless protocols + (e.g. UDP).
    • Test FDP_NET_EXT.1.1:3[conditional, Platforms:Android: Mobile operating systems based on Google Android.]: @@ -1334,9 +1337,9 @@

      5.1.2 Class: User Data Protection If "no network communication" is selected, the evaluator shall ensure that the application's AndroidManifest.xml file does not contain a uses-permission or uses-permission-sdk-23 tag - containing android:name="android.permission.INTERNET". In this case, + containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform the above Tests 1 and 2, as the platform will not allow the - application to perform any network communication. + application to perform any network communication.

    @@ -1348,55 +1351,55 @@

    5.1.2 Class: User Data Protection

    5.1.3 Class: Security Management (FMT)

    FMT_CFG_EXT.1 Secure by Default Configuration

    -
    The application shall provide only enough functionality to set new credentials when configured with default credentials or no credentials.
    Application +
    The application shall provide only enough functionality to set new credentials when configured with default credentials or no credentials.
    Application Note: Default credentials are credentials (e.g., passwords, keys) that are automatically - (without user interaction) loaded onto the platform during application installation. Credentials that are generated during installation using requirements laid out in - FCS_RBG_EXT.1 are not by definition default credentials.
    -
    The application shall be configured by default with file permissions which protect the application binaries and data files from modification by normal unprivileged users.
    Application + (without user interaction) loaded onto the platform during application installation. Credentials that are generated during installation using requirements laid out in + FCS_RBG_EXT.1 are not by definition default credentials.
    +
    The application shall be configured by default with file permissions which protect the application binaries and data files from modification by normal unprivileged users.
    Application Note: The precise expectations for file permissions vary per platform - but the general intention is that a trust boundary protects the application and its data.
    + but the general intention is that a trust boundary protects the application and its data.
    The evaluator shall check the TSS to determine if the application requires any type - of credentials and if the application installs with default credentials.
    -
    Guidance
    None.
    + of credentials and if the application installs with default credentials.
    +
    Guidance
    None.
    Tests
      - If the application uses any default credentials the evaluator shall run the following tests. + If the application uses any default credentials the evaluator shall run the following tests.
    • Test FMT_CFG_EXT.1.1:1: The evaluator shall install and run the application without generating or loading new credentials and verify that only the minimal - application functionality required to set new credentials is available.
    • + application functionality required to set new credentials is available.
    • Test FMT_CFG_EXT.1.1:2: The evaluator shall attempt to clear all credentials and verify that only - the minimal application functionality required to set new credentials is available.
    • + the minimal application functionality required to set new credentials is available.
    • Test FMT_CFG_EXT.1.1:3: The evaluator shall run the application, establish new credentials and verify that the original default credentials no longer provide access to - the application.
    • + the application.
    -
    None.
    -
    Guidance
    None.
    +
    None.
    +
    Guidance
    None.
    Tests
    - The evaluator shall install and run the application. The evaluator shall + The evaluator shall install and run the application. The evaluator shall inspect the filesystem of the platform (to the extent possible) for any files created - by the application and ensure that their permissions are adequate to protect them. The method of doing so varies per platform. + by the application and ensure that their permissions are adequate to protect them. The method of doing so varies per platform.
    • Test FMT_CFG_EXT.1.2:1[conditional, Platforms:Android: Mobile operating systems based on Google Android.]: - The evaluator shall run the command find -L . -perm /002 - inside the application's data directories to ensure that all files are not world-writable. The command - should not print any files. + The evaluator shall run the command find -L . -perm /002 + inside the application's data directories to ensure that all files are not world-writable. The command + should not print any files.
      @@ -1407,9 +1410,9 @@

      5.1.3 Class: Security Management ( Process Monitor and Access Check (or tools of equivalent capability, like icacls.exe) for Classic Desktop applications to verify that files written to disk during an application's installation have the correct file permissions, such that a - standard user cannot modify the application or its data files. For Windows Universal + standard user cannot modify the application or its data files. For Windows Universal Applications the evaluator shall consider the requirement met because of the AppContainer - sandbox. + sandbox.

      @@ -1418,16 +1421,16 @@

      5.1.3 Class: Security Management ( The evaluator shall determine whether the application leverages the appropriate Data Protection Class for each data file stored - locally. + locally.

      @@ -1435,9 +1438,9 @@

      5.1.3 Class: Security Management ( - The evaluator shall run the command find . \( -perm -002 \) + The evaluator shall run the command find . \( -perm -002 \) inside the application's data directories to ensure that all files are not - world-writable. The command should not print any files. + world-writable. The command should not print any files.

      @@ -1445,8 +1448,8 @@

      5.1.3 Class: Security Management ( - The evaluator shall run the command find . -perm +002 inside - the application's data directories to ensure that all files are not world-writable. The command should not print any files. + The evaluator shall run the command find . -perm +002 inside + the application's data directories to ensure that all files are not world-writable. The command should not print any files.

    @@ -1456,22 +1459,22 @@

    5.1.3 Class: Security Management (
    The application shall[selection: invoke the mechanisms recommended by the platform vendor for storing and setting configuration options, implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption]
    Application Note: - Configuration options that are stored remotely are not subject to this requirement. + Configuration options that are stored remotely are not subject to this requirement. Sensitive Data is generally not considered part of configuration options - and should be stored according to FDP_DAR_EXT.1 or FCS_STO_EXT.1.

    + and should be stored according to FDP_DAR_EXT.1 or FCS_STO_EXT.1.

    If “implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption" is selected, the TSF must claim conformance to a - PP-Configuration that includes the PP-Module for File Encryption.
    + PP-Configuration that includes the PP-Module for File Encryption.

    The evaluator shall review the TSS to identify the application's configuration options - (e.g. settings) and determine whether these are stored and set using the mechanisms - supported by the platform or implemented by the application in accordance with the PP-Module for File Encryption. + (e.g. settings) and determine whether these are stored and set using the mechanisms + supported by the platform or implemented by the application in accordance with the PP-Module for File Encryption. At a minimum the TSS shall list settings related to any SFRs and any settings that are mandated in the - operational guidance in response to an SFR.

    + operational guidance in response to an SFR.

    Conditional: If "implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption" is selected, the evaluator shall ensure that the TSS identifies those options, - as well as indicates where the encrypted representation of these options is stored.

    -
    Guidance
    None.

    + as well as indicates where the encrypted representation of these options is stored.

    +
    Guidance
    None.

    Tests
    If "invoke the mechanisms recommended by the platform vendor for storing and setting configuration options" is chosen, @@ -1482,12 +1485,12 @@

    5.1.3 Class: Security Management ( - The evaluator shall run the application and make security-related changes to its configuration. The evaluator shall check that at least one XML file at location + The evaluator shall run the application and make security-related changes to its configuration. The evaluator shall check that at least one XML file at location reflects the changes made to the configuration to verify that the application used SharedPreferences and/or PreferenceActivity classes for storing configuration data, where package is the Java package - of the application. + of the application.
      @@ -1496,32 +1499,32 @@

      5.1.3 Class: Security Management ( The evaluator shall determine and verify that Windows Universal Applications use either the Windows.Storage namespace, Windows.UI.ApplicationSettings namespace, - or the IsolatedStorageSettings namespace for storing application specific settings. For .NET applications, the evaluator shall determine and verify that the application + or the IsolatedStorageSettings namespace for storing application specific settings. For .NET applications, the evaluator shall determine and verify that the application uses one of the locations listed in - https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/ for storing application specific settings. For Classic Desktop applications, the evaluator shall run the application while + https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/ for storing application specific settings. For Classic Desktop applications, the evaluator shall run the application while monitoring it with the SysInternals tool and - make changes to its configuration. + make changes to its configuration. The evaluator shall verify that logs show corresponding changes to the - the Windows Registry or C:\ProgramData\ directory. + the Windows Registry or C:\ProgramData\ directory.

    • Test FMT_MEC_EXT.1.1:4[conditional, Platforms:Linux: Linux-based operating systems other than Android.]: - The evaluator shall run the application while monitoring it with the utility . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that logs corresponding changes to configuration + The evaluator shall run the application while monitoring it with the utility . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that logs corresponding changes to configuration files that reside in /etc (for system-specific configuration), in the user's home directory (for user-specific configuration), or /var/lib/ (for configurations - controlled by UI and not intended to be directly modified by an administrator). + controlled by UI and not intended to be directly modified by an administrator).
      @@ -1530,10 +1533,10 @@

      5.1.3 Class: Security Management ( The evaluator shall run the application while monitoring it with the utility - . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that logs corresponding changes to + . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that logs corresponding changes to configuration files that reside in /etc (for system-specific configuration) or - in the user's home directory(for user-specific configuration). + in the user's home directory(for user-specific configuration).

      @@ -1542,7 +1545,7 @@

      5.1.3 Class: Security Management ( The evaluator shall verify that the application stores and retrieves settings - using the NSUserDefaults class. + using the NSUserDefaults class.

    @@ -1550,49 +1553,50 @@

    5.1.3 Class: Security Management (

    FMT_SMF.1 Specification of Management Functions

    The TSF shall be capable of performing the following management functions[selection: no management functions, enable/disable the transmission of any information describing the - system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) - information, enable/disable network backup functionality to [assignment: - list of enterprise or commercial cloud backup systems ], list of other management functions to be provided bythe TSF ].
    Application + system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) + information, enable/disable network backup functionality to [assignment: + list of enterprise or commercial cloud backup systems ], [assignment: + list of other management functions to be provided bythe TSF ]].
    Application Note: This requirement stipulates that an application needs to provide the ability to - enable/disable only those functions that it actually implements. The application - is not responsible for controlling the behavior of the platform or other applications.
    + enable/disable only those functions that it actually implements. The application + is not responsible for controlling the behavior of the platform or other applications.

    -
    None.

    +
    None.

    Guidance
    The evaluator shall verify that every management function mandated by the PP is described in the operational guidance and that the description contains the information required to perform the management duties associated with the - management function.

    + management function.

    Tests
    The evaluator shall test the application's ability to provide the management functions by configuring the application and testing each option selected - from above. The evaluator is expected to test these functions in all the ways in which - the ST and guidance documentation state the configuration can be managed.
    + from above. The evaluator is expected to test these functions in all the ways in which + the ST and guidance documentation state the configuration can be managed.

    5.1.4 Class: Privacy (FPR)

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Information

    -
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: - list of functions that transmit PII over a network ]].
    Application +
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: + list of functions that transmit PII over a network ]].
    Application Note: - This requirement applies only to PII that is specifically requested by the application; - it does not apply if the user volunteers PII without prompting from the application - into a general (or inappropriate) data field. A dialog box that declares intent to send PII presented to the user - at the time the application is started is sufficient to meet this requirement. + This requirement applies only to PII that is specifically requested by the application; + it does not apply if the user volunteers PII without prompting from the application + into a general (or inappropriate) data field. A dialog box that declares intent to send PII presented to the user + at the time the application is started is sufficient to meet this requirement.
    The evaluator shall inspect the TSS documentation to identify functionality in the - application where PII can be transmitted.

    -
    Guidance
    None.

    + application where PII can be transmitted.

    +
    Guidance
    None.

    Tests
    If require user approval before executing is selected, the evaluator shall run the application and exercise the functionality responsibly - for transmitting PII and verify that user approval is required before transmission - of the PII.
    + for transmitting PII and verify that user approval is required before transmission + of the PII.
    @@ -1600,60 +1604,60 @@

    5.1.5 Class: Protection of the TSF

    FPT_AEX_EXT.1 Anti-Exploitation Capabilities

    The application shall not request to map memory at an explicit address except for[assignment: - list of explicit exceptions].
    Application + list of explicit exceptions].
    Application Note: Requesting a memory mapping at an explicit address - subverts address space layout randomization (ASLR). + subverts address space layout randomization (ASLR).
    -
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: - list of functions performing just-in-time compilation ]].
    Application +
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: + list of functions performing just-in-time compilation ]].
    Application Note: Requesting a memory mapping with both write and execute permissions subverts the - platform protection provided by DEP. If the application performs no just-in-time - compiling, then the first selection must be chosen.
    -
    The application shall be compatible with security features provided by the platform vendor.
    Application + platform protection provided by DEP. If the application performs no just-in-time + compiling, then the first selection must be chosen.
    +
    The application shall be compatible with security features provided by the platform vendor.
    Application Note: This requirement is designed to ensure that platform security - features do not need to be disabled in order for the application to run.
    -
    The application shall not write user-modifiable files to directories that contain executable files unless explicitly directed by the user to do so.
    Application + features do not need to be disabled in order for the application to run.
    +
    The application shall not write user-modifiable files to directories that contain executable files unless explicitly directed by the user to do so.
    Application Note: The purpose of this requirement is to help ensure the integrity of application binaries by supporting file protection mechanisms such as directory-level file permissions and - application whitelisting.

    + application whitelisting.

    A user-modifiable file for purposes of this requirement is a file that is writable by an unprivileged user of the application -- either directly through application - execution or independently of the application. If the application runs in the context + execution or independently of the application. If the application runs in the context of the application user, then the application should not be able to write to the directory containing the application binaries -- regardless of whether the files - are configuration data, audit data, or temporary files.

    + are configuration data, audit data, or temporary files.

    Executables and user-modifiable files may not share the same parent directory, but - may share directories above the parent.
    -
    The application shall be built with stack-based buffer overflow protection enabled.
    + may share directories above the parent.
    +
    The application shall be built with stack-based buffer overflow protection enabled.
    The evaluator shall ensure that the TSS describes the compiler flags used to - enable ASLR when the application is compiled.
    -
    Guidance
    None.
    + enable ASLR when the application is compiled.
    +
    Guidance
    None.
    Tests
    The evaluator shall perform either a static or dynamic analysis to determine that no memory mappings are placed at an explicit and - consistent address. The method of doing so varies per platform. For those platforms + consistent address. The method of doing so varies per platform. For those platforms requiring the same application running on two different systems, the evaluator may - alternatively use the same device. After collecting the first instance of mappings, + alternatively use the same device. After collecting the first instance of mappings, the evaluator must uninstall the application, reboot the device, and reinstall the application - to collect the second instance of mappings. + to collect the second instance of mappings.
    • Test FPT_AEX_EXT.1.1:1[conditional, Platforms:Android: Mobile operating systems based on Google Android.]: The evaluator shall run the same application on two - different Android systems. Both devices do not need to be evaluated, as the second device is acting only as a tool. - Connect via ADB and inspect /proc/PID/maps. Ensure the two different instances share no memory mappings made by the - application at the same location. + different Android systems. Both devices do not need to be evaluated, as the second device is acting only as a tool. + Connect via ADB and inspect /proc/PID/maps. Ensure the two different instances share no memory mappings made by the + application at the same location.
      @@ -1663,11 +1667,11 @@

      5.1.5 Class: Protection of the TSF The evaluator shall run the same application on two different Windows systems and run a tool that will list all memory mapped addresses - for the application. The evaluator shall then verify the two different instances - share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to - view memory addresses of a running application. The evaluator shall use a tool + for the application. The evaluator shall then verify the two different instances + share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to + view memory addresses of a running application. The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application has - ASLR enabled. + ASLR enabled.

      @@ -1676,8 +1680,8 @@

      5.1.5 Class: Protection of the TSF The evaluator shall perform a static analysis to search - for any mmap calls (or API calls that call mmap), and ensure that - no arguments are provided that request a mapping at a fixed address. + for any mmap calls (or API calls that call mmap), and ensure that + no arguments are provided that request a mapping at a fixed address.

      @@ -1685,10 +1689,10 @@

      5.1.5 Class: Protection of the TSF - The evaluator shall run the same application on two different Linux systems. + The evaluator shall run the same application on two different Linux systems. The evaluator shall then compare their memory maps using pmap -x PID - to ensure the two different instances share no mapping locations. + to ensure the two different instances share no mapping locations.

      @@ -1696,10 +1700,10 @@

      5.1.5 Class: Protection of the TSF - The evaluator shall run the same application on two different Solaris systems. + The evaluator shall run the same application on two different Solaris systems. The evaluator shall then compare their memory maps using pmap -x PID - to ensure the two different instances share no mapping locations. + to ensure the two different instances share no mapping locations.

      @@ -1707,27 +1711,27 @@

      5.1.5 Class: Protection of the TSF - The evaluator shall run the same application on two different Mac systems. + The evaluator shall run the same application on two different Mac systems. The evaluator shall then compare their memory maps using vmmap PID - to ensure the two different instances share no mapping locations. + to ensure the two different instances share no mapping locations.

    -
    None.
    -
    Guidance
    None.
    +
    None.
    +
    Guidance
    None.
    Tests
    The evaluator shall verify that no memory mapping requests are made with write and - execute permissions. The method of doing so varies per platform. + execute permissions. The method of doing so varies per platform.
      @@ -1736,9 +1740,9 @@

      5.1.5 Class: Protection of the TSF The evaluator shall use a tool such as Microsoft's - BinScope Binary Analyzer to confirm that the application passes the NXCheck. The + BinScope Binary Analyzer to confirm that the application passes the NXCheck. The evaluator may also ensure that the /NXCOMPAT flag was used during - compilation to verify that DEP protections are enabled for the application. + compilation to verify that DEP protections are enabled for the application.

    @@ -1748,7 +1752,7 @@

    5.1.5 Class: Protection of the TSF The evaluator shall perform static analysis on the - application to verify that mprotect is never invoked with the PROT_EXEC permission. + application to verify that mprotect is never invoked with the PROT_EXEC permission. @@ -1759,7 +1763,7 @@

    5.1.5 Class: Protection of the TSF The evaluator shall perform static analysis on the application to verify that both
    • mmap is never be invoked with both the PROT_WRITE and PROT_EXEC permissions, - and
    • mprotect is never invoked with the PROT_EXEC permission.
    + and
  • mprotect is never invoked with the PROT_EXEC permission.
    • @@ -1769,7 +1773,7 @@

      5.1.5 Class: Protection of the TSF The evaluator shall perform static analysis on the application to verify that both
      • mmap is never be invoked with both the PROT_WRITE and PROT_EXEC permissions, - and
      • mprotect is never invoked with the PROT_EXEC permission.
      + and
    • mprotect is never invoked with the PROT_EXEC permission.
      @@ -1778,13 +1782,13 @@

      5.1.5 Class: Protection of the TSF The evaluator shall perform static analysis on the - application to verify that mprotect is never invoked with the PROT_EXEC permission. + application to verify that mprotect is never invoked with the PROT_EXEC permission.

    -
    None.
    -
    Guidance
    None.
    +
    None.
    +
    Guidance
    None.
    Tests
    The evaluator shall configure the platform in the ascribed manner and @@ -1796,7 +1800,7 @@

    5.1.5 Class: Protection of the TSF Applications running on Android cannot disable Android - security features, therefore this requirement is met and no evaluation activity is required. + security features, therefore this requirement is met and no evaluation activity is required.
      @@ -1804,18 +1808,18 @@

      5.1.5 Class: Protection of the TSF - If the OS platform supports Windows Defender Exploit Guard + If the OS platform supports Windows Defender Exploit Guard (Windows 10 version 1709 or later), then the evaluator shall ensure that the application can run successfully with Windows Defender Exploit Guard Exploit Protection configured with the following minimum mitigations enabled; Control Flow Guard (CFG), Randomize memory allocations - (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and - Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, - https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection.

      - If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be + (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and + Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, + https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection.

      + If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be installed on Windows 10 version 1703 and earlier, then the evaluator shall ensure that the application can run successfully with EMET configured with the following minimum - mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), - Export address filtering (EAF), and Data Execution Prevention (DEP). + mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), + Export address filtering (EAF), and Data Execution Prevention (DEP).

      @@ -1824,7 +1828,7 @@

      5.1.5 Class: Protection of the TSF Applications running on iOS cannot disable - security features, therefore this requirement is met and no evaluation activity is required. + security features, therefore this requirement is met and no evaluation activity is required.

      @@ -1833,7 +1837,7 @@

      5.1.5 Class: Protection of the TSF The evaluator shall ensure that the application can - successfully run on a system with either SELinux or AppArmor enabled and in enforce mode. + successfully run on a system with either SELinux or AppArmor enabled and in enforce mode.

      @@ -1842,7 +1846,7 @@

      5.1.5 Class: Protection of the TSF The evaluator shall ensure that the application can run with - Solaris Trusted Extensions enabled and enforcing. + Solaris Trusted Extensions enabled and enforcing.

      @@ -1851,25 +1855,25 @@

      5.1.5 Class: Protection of the TSF The evaluator shall ensure that the application can - successfully run on macOS without disabling any security features. + successfully run on macOS without disabling any security features.

    -
    None.
    -
    Guidance
    None.
    +
    None.
    +
    Guidance
    None.
    Tests
    - The evaluator shall run the application and determine where it writes its files. For files where the user does not choose the destination, the evaluator shall - check whether the destination directory contains executable files. This varies per platform: + The evaluator shall run the application and determine where it writes its files. For files where the user does not choose the destination, the evaluator shall + check whether the destination directory contains executable files. This varies per platform:
    • Test FPT_AEX_EXT.1.4:1[conditional, Platforms:Android: Mobile operating systems based on Google Android.]: - The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. - The evaluator shall ensure that there are no executable files stored under where package is the Java package of the application. + The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. + The evaluator shall ensure that there are no executable files stored under where package is the Java package of the application.
      @@ -1878,10 +1882,10 @@

      5.1.5 Class: Protection of the TSF For Windows Universal Applications the evaluator shall consider the requirement met because the platform forces applications to write all data - within the application working directory (sandbox). For Windows Desktop Applications + within the application working directory (sandbox). For Windows Desktop Applications the evaluator shall run the program, mimicking normal usage, and note where all user-modifiable - files are written. The evaluator shall ensure that there are no executable files - stored in the same directories to which the application wrote user-modifiable files. + files are written. The evaluator shall ensure that there are no executable files + stored in the same directories to which the application wrote user-modifiable files.

    • Test FPT_AEX_EXT.1.4:4[conditional, Platforms:Linux: Linux-based operating systems other than Android.]: @@ -1897,9 +1901,9 @@

      5.1.5 Class: Protection of the TSF The evaluator shall run the program, mimicking normal usage, - and note where all user-modifiable files are written. + and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the - same directories to which the application wrote user-modifiable files. + same directories to which the application wrote user-modifiable files.

      @@ -1908,9 +1912,9 @@

      5.1.5 Class: Protection of the TSF The evaluator shall run the program, mimicking normal usage, - and note where all user-modifiable files are written. + and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the - same directories to which the application wrote user-modifiable files. + same directories to which the application wrote user-modifiable files.

      @@ -1918,47 +1922,47 @@

      5.1.5 Class: Protection of the TSF The evaluator shall run the program, mimicking normal - usage, and note where all user-modifiable files are written. The evaluator shall ensure that there + usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application - wrote user-modifiable files. + wrote user-modifiable files.

    -
    None.
    -
    Guidance
    None.
    +
    None.
    +
    Guidance
    None.
    Tests
    The evaluator will inspect every native executable included in the TOE to ensure that stack-based buffer - overflow protection is present. + overflow protection is present.
    • Test FPT_AEX_EXT.1.5:1[conditional, Platforms:Microsoft Windows: Microsoft Windows operating systems.]: Applications that run as Managed Code in the .NET Framework do not require - these stack protections. Applications developed in Object Pascal using the Delphi IDE compiled with RangeChecking enabled - comply with this element. For other code, - the evaluator shall review the TSS and verify that the /GS flag was used during compilation. The - evaluator shall run a tool like, BinScope, that can verify the correct usage of /GS.
    • + these stack protections. Applications developed in Object Pascal using the Delphi IDE compiled with RangeChecking enabled + comply with this element. For other code, + the evaluator shall review the TSS and verify that the /GS flag was used during compilation. The + evaluator shall run a tool like, BinScope, that can verify the correct usage of /GS.

    FPT_API_EXT.1 Use of Supported Services and APIs

    -
    The application shall use only documented platform APIs.
    Application +
    The application shall use only documented platform APIs.
    Application Note: The definition of "documented" may vary depending upon whether the application is provided by a third party (who relies upon documented platform APIs) or by a platform vendor - who may be able to guarantee support for platform APIs.
    + who may be able to guarantee support for platform APIs.
    The evaluator shall verify that the TSS lists the platform APIs - used in the application.

    -
    Guidance
    None.

    + used in the application.

    +
    Guidance
    None.

    Tests
    The evaluator shall then compare the list with the supported APIs - (available through e.g. developer accounts, platform developer groups) and ensure that all - APIs listed in the TSS are supported.
    + (available through e.g. developer accounts, platform developer groups) and ensure that all + APIs listed in the TSS are supported.

    @@ -1966,133 +1970,134 @@

    5.1.5 Class: Protection of the TSF

    FPT_IDV_EXT.1 Software Identification and Versions

    The application shall be versioned with[selection: SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 - , other version information ].
    Application + , [assignment: + other version information ]].
    Application Note: The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires - the use of SCAP which includes SWID tags per the NIST standard. The PP selection + the use of SCAP which includes SWID tags per the NIST standard. The PP selection of "other version information" will be removed in the next major release of - this protection profile. Vendors should begin to version software with valid SWID tags.

    + this protection profile. Vendors should begin to version software with valid SWID tags.

    Valid SWID tags must contain a SoftwareIdentity element and an Entity element as - defined in the ISO/IEC 19770-2:2015 standard. SWID tags must be stored with a .swidtag - file extensions as defined in the ISO/IEC 19770-2:2015.
    + defined in the ISO/IEC 19770-2:2015 standard. SWID tags must be stored with a .swidtag + file extensions as defined in the ISO/IEC 19770-2:2015.
    If "other version information" is selected the evaluator shall verify that the - TSS contains an explanation of the versioning methodology.

    -
    Guidance
    None.

    + TSS contains an explanation of the versioning methodology.

    +
    Guidance
    None.

    Tests
    The evaluator shall install the application, then check for the - existence of version information. If SWID tags is selected the evaluator shall - check for a .swidtag file. The evaluator shall open the file and verify that - is contains at least a SoftwareIdentity element and an Entity element.
    + existence of version information. If SWID tags is selected the evaluator shall + check for a .swidtag file. The evaluator shall open the file and verify that + is contains at least a SoftwareIdentity element and an Entity element.

    FPT_LIB_EXT.1 Use of Third Party Libraries

    The application shall be packaged with only[assignment: - list of third-party libraries].
    Application + list of third-party libraries].
    Application Note: The intention of this requirement is for the evaluator to discover and document whether the - application is including unnecessary or unexpected third-party libraries. This includes + application is including unnecessary or unexpected third-party libraries. This includes adware libraries which could present a privacy threat, as well as ensuring - documentation of such libraries in case vulnerabilities are later discovered.
    + documentation of such libraries in case vulnerabilities are later discovered.
    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
    The evaluator shall install the application and survey its installation directory for - dynamic libraries. + dynamic libraries. The evaluator shall verify that libraries found to be packaged with or employed by the - application are limited to those in the assignment.
    + application are limited to those in the assignment.

    FPT_TUD_EXT.1 Integrity for Installation and Update

    -
    The application shall[selection: provide the ability, leverage the platform]to check for updates and patches to the application software.
    Application +
    The application shall[selection: provide the ability, leverage the platform]to check for updates and patches to the application software.
    Application Note: - This requirement is about the ability to "check" for updates. The actual installation of any updates should be done by the platform. This requirement + This requirement is about the ability to "check" for updates. The actual installation of any updates should be done by the platform. This requirement is intended to ensure that the application can check for updates provided by the vendor, - as updates provided by another source may contain malicious code.
    -
    The application shall[selection: provide the ability, leverage the platform]to query the current version of the application software.
    -
    The application shall not download, modify, replace or update its own binary code.
    Application + as updates provided by another source may contain malicious code.
    +
    The application shall[selection: provide the ability, leverage the platform]to query the current version of the application software.
    +
    The application shall not download, modify, replace or update its own binary code.
    Application Note: This requirement applies to the code of the application; it does not apply to mobile code technologies that are designed for download and - execution by the application. + execution by the application.
    -
    Application updates shall be digitally signed such that the application platform can cryptographically verify them prior to installation.
    Application +
    Application updates shall be digitally signed such that the application platform can cryptographically verify them prior to installation.
    Application Note: The specifics of the verification of updates involves requirements on the platform (and not the - application), so these are not fully specified here. + application), so these are not fully specified here.
    -
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application +
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application Note: Application software that is distributed as part of the platform operating system is not - required to be package for installation or uninstallation. If "as an additional software - package to the OS" is selected the requirements from FPT_TUD_EXT.2 - must be included in the ST.
    + required to be package for installation or uninstallation. If "as an additional software + package to the OS" is selected the requirements from FPT_TUD_EXT.2 + must be included in the ST.
    -
    None.
    +
    None.
    Guidance
    The evaluator shall check to ensure the guidance includes a description of how updates are - performed.
    + performed.
    Tests
    The evaluator shall check for an update using procedures described in either the application documentation - or the platform documentation and verify that the application does not issue an error. If it is updated or if it reports that no update is available this requirement is considered to be met.
    + or the platform documentation and verify that the application does not issue an error. If it is updated or if it reports that no update is available this requirement is considered to be met.
    -
    None.
    +
    None.
    Guidance
    The evaluator shall verify guidance includes a description of how to query the current - version of the application.
    + version of the application.
    Tests
    The evaluator shall query the application for the current version of the software - according to the operational user guidance. The evaluator shall then verify that the - current version matches that of the documented and installed version.
    + according to the operational user guidance. The evaluator shall then verify that the + current version matches that of the documented and installed version.
    -
    None.
    -
    Guidance
    None.
    +
    None.
    +
    Guidance
    None.
    Tests
    The evaluator shall verify that the application's executable files are - not changed by the application. + not changed by the application.
      For all other platforms, the evaluator shall perform the following test:
    • Test FPT_TUD_EXT.1.3:2: - The evaluator shall install the application and then locate all of its executable files. + The evaluator shall install the application and then locate all of its executable files. The evaluator shall then, for each file, save off either a hash of the file or a copy of the file - itself. The evaluator shall then run the application and exercise all features of the application as - described in the ST. The evaluator shall then compare each executable file with the either the saved - hash or the saved copy of the files. The evaluator shall verify that these are identical.
    • + itself. The evaluator shall then run the application and exercise all features of the application as + described in the ST. The evaluator shall then compare each executable file with the either the saved + hash or the saved copy of the files. The evaluator shall verify that these are identical.
    The evaluator shall verify that the TSS identifies how updates to the application - are signed by an authorized source. The definition of an - authorized source must be contained in the TSS. The evaluator shall also ensure that the TSS (or the operational - guidance) describes how candidate updates are obtained.
    -
    Guidance
    None.
    -
    Tests
    None.
    + are signed by an authorized source. The definition of an + authorized source must be contained in the TSS. The evaluator shall also ensure that the TSS (or the operational + guidance) describes how candidate updates are obtained.
    +
    Guidance
    None.
    +
    Tests
    None.
    The evaluator shall verify that the TSS identifies how the application - is distributed. If "with the platform" is selected the evaluated shall perform + is distributed. If "with the platform" is selected the evaluated shall perform a clean installation or factory reset to confirm that TOE software is included - as part of the platform OS. If "as an additional package" is selected the evaluator - shall perform the tests in FPT_TUD_EXT.2.
    -
    Guidance
    None.
    -
    Tests
    None.
    + as part of the platform OS. If "as an additional package" is selected the evaluator + shall perform the tests in FPT_TUD_EXT.2.
    +
    Guidance
    None.
    +
    Tests
    None.
    @@ -2101,64 +2106,64 @@

    5.1.5 Class: Protection of the TSF

    5.1.6 Class: Trusted Path/Channel (FTP)

    FTP_DIT_EXT.1 Protection of Data in Transit

    -
    The application shall[selection: ]between itself and another trusted IT product.
    Application +
    The application shall[selection: ]between itself and another trusted IT product.
    Application Note: - Encryption is not required for applications transmitting data that is not sensitive.

    + Encryption is not required for applications transmitting data that is not sensitive.

    If "encrypt all transmitted" is selected and "TLS" is selected, then - evaluation of elements from either FCS_TLSC_EXT.1 or FCS_TLSS_EXT.1 is required.

    + evaluation of elements from either FCS_TLSC_EXT.1 or FCS_TLSS_EXT.1 is required.

    If "encrypt all transmitted" is selected, "HTTPS" is selected, and the - TOE acts as a client, then FCS_HTTPS_EXT.1/Client is required.

    + TOE acts as a client, then FCS_HTTPS_EXT.1/Client is required.

    If "encrypt all transmitted" is selected, "HTTPS" is selected, and the - TOE acts as a server, then FCS_HTTPS_EXT.1/Server is required.

    + TOE acts as a server, then FCS_HTTPS_EXT.1/Server is required.

    If the TOE acts as a server and if "mutual authentication" is selected in the TLS Package, - then FCS_HTTPS_EXT.2 is also required.

    + then FCS_HTTPS_EXT.2 is also required.

    If "encrypt all transmitted" is selected and "DTLS" is selected, then - FCS_DTLS_EXT.1 is required.

    + FCS_DTLS_EXT.1 is required.

    If "encrypt all transmitted" is selected and "SSH" is selected, then the - TSF shall be validated against the Functional Package for Secure Shell.

    + TSF shall be validated against the Functional Package for Secure Shell.

    If "encrypt all transmitted" is selected and "IPsec" is selected, then the TSF must claim conformance to a PP-Configuration that includes the VPN Client PP-Module

    If "encrypt all transmitted" is selected the corresponding FCS_COP.1 - requirements will be included.

    + requirements will be included.

    In addition to the above, FIA_X509_EXT.1 and FIA_X509_EXT.2 are required when the following is true:
    • "encrypt all transmitted" is selected and the TOE implements a protocol that requires certificates
    • "invoke platform-provided functionality to encrypt all transmitted sensitive data" is selected and the platform implements a protocol that requires certificates
    • "invoke platform-provided functionality to encrypt all transmitted data" is selected and the platform implements a protocol that requires certificates
    Note:FIA_X509_EXT.1 and FIA_X509_EXT.2 are not applicable when the TOE acts - as a HTTPS/TLS server with no mutual authentication.
    + as a HTTPS/TLS server with no mutual authentication.
    For platform-provided functionality, the evaluator shall verify the TSS contains - the calls to the platform that TOE is leveraging to invoke the functionality.

    -
    Guidance
    None.

    + the calls to the platform that TOE is leveraging to invoke the functionality.

    +
    Guidance
    None.

    Tests
    - The evaluator shall perform the following tests. + The evaluator shall perform the following tests.
      - The evaluator shall perform the following tests. + The evaluator shall perform the following tests.
    • Test FTP_DIT_EXT.1.1:1: The evaluator shall exercise the application (attempting to transmit data; for example by connecting to remote systems or websites) while capturing packets from - the application. The evaluator shall verify from the packet capture that the + the application. The evaluator shall verify from the packet capture that the traffic is encrypted with HTTPS, TLS, DTLS, SSH, or IPsec in accordance with the - selection in the ST.
    • + selection in the ST.
    • Test FTP_DIT_EXT.1.1:2: The evaluator shall exercise the application (attempting to transmit data; for example by connecting to remote systems or websites) while capturing packets from - the application. The evaluator shall review the packet capture and verify that no - sensitive data is transmitted in the clear.
    • + the application. The evaluator shall review the packet capture and verify that no + sensitive data is transmitted in the clear.
    • Test FTP_DIT_EXT.1.1:3: - The evaluator shall inspect the TSS to determine if user credentials are transmitted. If credentials are transmitted the evaluator shall set the credential to a known - value. The evaluator shall capture packets from the application while causing - credentials to be transmitted as described in the TSS. The evaluator shall perform + The evaluator shall inspect the TSS to determine if user credentials are transmitted. If credentials are transmitted the evaluator shall set the credential to a known + value. The evaluator shall capture packets from the application while causing + credentials to be transmitted as described in the TSS. The evaluator shall perform a string search of the captured network packets and verify that the plaintext - credential previously set by the evaluator is not found.
    • + credential previously set by the evaluator is not found.
    • Test FTP_DIT_EXT.1.1:4[conditional, Platforms:Android: Mobile operating systems based on Google Android.]: @@ -2167,9 +2172,9 @@

      5.1.6 Class: Trusted Path/Channel If "not transmit any data" is selected, the evaluator shall ensure that the application's AndroidManifest.xml file does not contain a uses-permission or uses-permission-sdk-23 tag - containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform + containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform the above Tests 1, 2, or 3, as the platform will not allow the application to perform any network - communication. + communication.

      @@ -2180,488 +2185,598 @@

      5.1.6 Class: Trusted Path/Channel If "encrypt all transmitted data" is selected, the evaluator shall ensure that the application's Info.plist file does not contain the NSAllowsArbitraryLoads or NSExceptionAllowsInsecureHTTPLoads keys, as these keys disable iOS's Application - Transport Security feature. + Transport Security feature.

    5.1.7 TOE Security Functional Requirements Rationale

    The following rationale provides justification for each security objective for the TOE, - showing that the SFRs are suitable to meet and achieve the security objectives:
    + showing that the SFRs are suitable to meet and achieve the security objectives:
    Table 2: SFR Rationale
    ObjectiveAddressed byRationale
    O.INTEGRITY
    FDP_DEC_EXT.1The PP includes FDP_DEC_EXT.1 to limit access to platform hardware resources, which limits the methods by which an attacker can attempt to compromise the integrity of the TOE.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 2: SFR Rationale
    ObjectiveAddressed byRationale
    O.INTEGRITY
    FDP_DEC_EXT.1The PP includes FDP_DEC_EXT.1 to limit access to platform hardware resources, which limits the methods by which an attacker can attempt to compromise the integrity of the TOE.
    FMT_CFG_EXT.1The PP includes FMT_CFG_EXT.1 for the TSP to limit unauthorized access to itself by preventing the use of default authentication credentials and by ensuring that the TOE uses appropriately restrictive platform permissions on its binaries and data
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.
    O.MANAGEMENT
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.
    O.PROTECTED_​COMMS
    FCS_CKM.1The PP includes FCS_CKM.1 to specify whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.
    FCS_CKM.1/AKThe PP includes FCS_CKM.1/AK to define whether the TSF or the platform generates asymmetric keys that are used in support of trusted communications.
    FCS_CKM.2The PP includes FCS_CKM.2 to define whether the TSF or the platform performs key establishment for trusted communications.
    FCS_COP.1/HashThe PP includes FCS_COP.1/Hash to define the hash algorithms used in support of trusted communications.
    FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define the HMAC algorithms used in support of trusted communications.
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the digital signature algorithms used in support of trusted communications.
    FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the symmetric encryption algorithms used in support of trusted communications.
    FCS_HTTPS_EXT.1/ClientThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a client.
    FCS_HTTPS_EXT.1/ServerThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a server.
    FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether the random bit generation services used in establishing trusted communications are implemented by the TSF or by the platform.
    FCS_RBG_EXT.2The PP includes FCS_RBG_EXT.2 to define the DRBG algorithms used in support of trusted communications.
    FDP_NET_EXT.1The PP includes FDP_NET_EXT.1 to define the TOE’s usage of network communications, which may include the transmission or receipt of data over a trusted channel.
    FIA_X509_EXT.1The PP includes FIA_X509_EXT.1 to define X.509 certificate validation activities in support of trusted communications.
    FIA_X509_EXT.2The PP includes FIA_X509_EXT.2 to define the trusted communications that X.509 certificate services support, as well as the extent to which trusted communications can be established when using a certificate with unknown validity.
    O.PROTECTED_​STORAGE
    FCS_CKM.1/PBKDFThe PP includes FCS_CKM.1/PBKDF to define the password-based key derivation function that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_CKM.1/SKThe PP includes FCS_CKM.1/SK to define the TOE’s capability to generate symmetric keys. These keys may subsequently be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_COP.1/HashThe PP includes FCS_COP.1/Hash to define integrity mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.
    FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define HMAC mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.
    FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the AES cryptographic algorithm that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether random bit generation services are implemented by the TSF or the platform. Depending on how data at rest is protected, the TOE may rely on the use of a random bit generator to create keys that are subsequently used for data protection.
    FCS_RBG_EXT.2The PP includes FCS_RBG_EXT.2 to define the TOE’s implementation of random bit generation functionality in the event that the TOE provides this function in support of generating keys that are used for data protection.
    FCS_STO_EXT.1The PP includes FCS_STO_EXT.1 to define the mechanism that the TSF uses or relies upon to protect stored credential data.
    FDP_DAR_EXT.1The PP includes FDP_DAR_EXT.1 to define the mechanism that the TSF uses or relies upon to protect sensitive data at rest.
    O.QUALITY
    FCS_CKM.1The PP supports this objective by allowing FCS_CKM.1 to specify that the TSF may rely on platform-provided key generation services.
    FCS_CKM.1/AKThe PP supports this objective by allowing FCS_CKM.1/AK to specify that the TSF may rely on platform-provided asymmetric key generation services.
    FCS_CKM.2The PP supports this objective by allowing FCS_CKM.2 to specify that the TSF may rely on platform-provided key establishment services.
    FCS_RBG_EXT.1The PP supports this objective by allowing FCS_RBG_EXT.1 to specify that the TSF may rely on platform-provided random bit generation services.
    FCS_STO_EXT.1The PP supports this objective by allowing FCS_STO_EXT.1 to specify that the TSF may rely on platform-provided credential storage services.
    FDP_DAR_EXT.1The PP supports this objective by allowing FDP_DAR_EXT.1 to specify that the TSF may rely on platform-provided data-at-rest protection services.
    FIA_X509_EXT.1The PP supports this objective by allowing FIA_X509_EXT.1 to specify that the TSF may rely on platform-provided X.509 certificate validation services.
    FMT_MEC_EXT.1The PP includes FMT_MEC_EXT.1 to ensure that the TOE can use platform services to store and set configuration options.
    FPT_API_EXT.1The PP includes FPT_API_EXT.1 to require the TOE to leverage platform functionality by using only documented and supported APIs.
    FPT_API_EXT.2The PP includes FPT_API_EXT.2 to permit the TOE to use platform-provided libraries for parsing IANA MIME media formats.
    FPT_LIB_EXT.1The PP includes FPT_LIB_EXT.1 to ensure that the TOE does not include any unnecessary or unexpected third-party libraries which could present a privacy threat or vulnerability.
    FPT_TUD_EXT.2The TSF includes FPT_TUD_EXT.2 to specify that the TOE may leverage the platform-supported package manager for application distribution and leverages platform-provided mechanisms to remove all traces of itself when removed from the platform system.
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.
    O.MANAGEMENT
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.
    O.PROTECTED_​COMMS
    FCS_CKM.1The PP includes FCS_CKM.1 to specify whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.
    FCS_CKM.1/AKThe PP includes FCS_CKM.1/AK to define whether the TSF or the platform generates asymmetric keys that are used in support of trusted communications.
    FCS_CKM.2The PP includes FCS_CKM.2 to define whether the TSF or the platform performs key establishment for trusted communications.
    FCS_COP.1/HashThe PP includes FCS_COP.1/Hash to define the hash algorithms used in support of trusted communications.
    FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define the HMAC algorithms used in support of trusted communications.
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the digital signature algorithms used in support of trusted communications.
    FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the symmetric encryption algorithms used in support of trusted communications.
    FCS_HTTPS_EXT.1/ClientThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a client.
    FCS_HTTPS_EXT.1/ServerThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a server.
    FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether the random bit generation services used in establishing trusted communications are implemented by the TSF or by the platform.
    FCS_RBG_EXT.2The PP includes FCS_RBG_EXT.2 to define the DRBG algorithms used in support of trusted communications.
    FDP_NET_EXT.1The PP includes FDP_NET_EXT.1 to define the TOE’s usage of network communications, which may include the transmission or receipt of data over a trusted channel.
    FIA_X509_EXT.1The PP includes FIA_X509_EXT.1 to define X.509 certificate validation activities in support of trusted communications.
    FIA_X509_EXT.2The PP includes FIA_X509_EXT.2 to define the trusted communications that X.509 certificate services support, as well as the extent to which trusted communications can be established when using a certificate with unknown validity.
    O.PROTECTED_​STORAGE
    FCS_CKM.1/PBKDFThe PP includes FCS_CKM.1/PBKDF to define the password-based key derivation function that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_CKM.1/SKThe PP includes FCS_CKM.1/SK to define the TOE’s capability to generate symmetric keys. These keys may subsequently be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_COP.1/HashThe PP includes FCS_COP.1/Hash to define integrity mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.
    FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define HMAC mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.
    FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the AES cryptographic algorithm that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether random bit generation services are implemented by the TSF or the platform. Depending on how data at rest is protected, the TOE may rely on the use of a random bit generator to create keys that are subsequently used for data protection.
    FCS_RBG_EXT.2The PP includes FCS_RBG_EXT.2 to define the TOE’s implementation of random bit generation functionality in the event that the TOE provides this function in support of generating keys that are used for data protection.
    FCS_STO_EXT.1The PP includes FCS_STO_EXT.1 to define the mechanism that the TSF uses or relies upon to protect stored credential data.
    FDP_DAR_EXT.1The PP includes FDP_DAR_EXT.1 to define the mechanism that the TSF uses or relies upon to protect sensitive data at rest.
    O.QUALITY
    FCS_CKM.1The PP supports this objective by allowing FCS_CKM.1 to specify that the TSF may rely on platform-provided key generation services.
    FCS_CKM.1/AKThe PP supports this objective by allowing FCS_CKM.1/AK to specify that the TSF may rely on platform-provided asymmetric key generation services.
    FCS_CKM.2The PP supports this objective by allowing FCS_CKM.2 to specify that the TSF may rely on platform-provided key establishment services.
    FCS_RBG_EXT.1The PP supports this objective by allowing FCS_RBG_EXT.1 to specify that the TSF may rely on platform-provided random bit generation services.
    FCS_STO_EXT.1The PP supports this objective by allowing FCS_STO_EXT.1 to specify that the TSF may rely on platform-provided credential storage services.
    FDP_DAR_EXT.1The PP supports this objective by allowing FDP_DAR_EXT.1 to specify that the TSF may rely on platform-provided data-at-rest protection services.
    FIA_X509_EXT.1The PP supports this objective by allowing FIA_X509_EXT.1 to specify that the TSF may rely on platform-provided X.509 certificate validation services.
    FMT_MEC_EXT.1The PP includes FMT_MEC_EXT.1 to ensure that the TOE can use platform services to store and set configuration options.
    FPT_API_EXT.1The PP includes FPT_API_EXT.1 to require the TOE to leverage platform functionality by using only documented and supported APIs.
    FPT_API_EXT.2The PP includes FPT_API_EXT.2 to permit the TOE to use platform-provided libraries for parsing IANA MIME media formats.
    FPT_LIB_EXT.1The PP includes FPT_LIB_EXT.1 to ensure that the TOE does not include any unnecessary or unexpected third-party libraries which could present a privacy threat or vulnerability.
    FPT_TUD_EXT.2The TSF includes FPT_TUD_EXT.2 to specify that the TOE may leverage the platform-supported package manager for application distribution and leverages platform-provided mechanisms to remove all traces of itself when removed from the platform system.

    5.2 Security Assurance Requirements

    - - The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in - Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal - instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements - (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation - and performs independent testing.

    - This section lists the set of SARs from CC part 3 that are required in evaluations against this - PP. Individual Evaluation Activities (EAs) to be performed are specified both - in Section 5 Security Requirements as well as in this section.

    - The general model for evaluation of TOEs against STs written to conform to this PP is as follows:

    - After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting - environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to - perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and - ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, - which are intended to be an interpretation of the other CEM assurance requirements as they - apply to the specific technology instantiated in the TOE. The evaluation activities that are - captured in Section 5 Security Requirements also provide clarification as to what the developer needs - to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented - and presented (along with the administrative guidance used) for validation. -

    5.2.1 Class ASE: Security Target

    - As per ASE activities defined in [CEM].

    5.2.2 Class ADV: Development

    The information about the TOE +


    +

    5.2.1 Class ASE: Security Target

    + As per ASE activities defined in [CEM]. +

    5.2.2 Class ADV: Development

    + The information about the TOE is contained in the guidance documentation available to the end user as - well as the TSS portion of the ST. The TOE developer + well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates - to the functional requirements. The evaluation activities contained in - Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to - determine the appropriate content for the TSS section. -

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    The functional - specification describes the TSFIs. It is not necessary - to have a formal or complete specification of these interfaces. Additionally, because + to the functional requirements. The evaluation activities contained in + Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to + determine the appropriate content for the TSS section. + +

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    + The functional + specification describes the TSFIs. It is not necessary + to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the Operational Environment that are not directly invocable by TOE users, there is little point specifying that such interfaces be described in and of themselves - since only indirect testing of such interfaces may be possible. For this PP, the + since only indirect testing of such interfaces may be possible. For this PP, the activities for this family should focus on understanding the interfaces presented in the TSS in response to the functional requirements and the interfaces - presented in the AGD documentation. No additional “functional specification” documentation - is necessary to satisfy the evaluation activities specified. The interfaces that need to be + presented in the AGD documentation. No additional “functional specification” documentation + is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance - activities listed, rather than as an independent, abstract list. -

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the - SFRs.
    Application + activities listed, rather than as an independent, abstract list. + + + + + + + + + +

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the + SFRs.
    Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and - AGD_PRE documentation. The developer may reference a website accessible to application - developers and the evaluator. The evaluation activities in the functional requirements + AGD_PRE documentation. The developer may reference a website accessible to application + developers and the evaluator. The evaluation activities in the functional requirements point to evidence that should exist in the documentation and TSS section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is - necessary.

    Content and presentation elements:

    The functional specification shall describe the purpose and method of use for - each SFR-enforcing and SFR-supporting TSFI.
    The functional specification shall identify all parameters associated with each - SFR-enforcing and SFR-supporting TSFI.
    The functional specification shall provide rationale for the implicit - categorization of interfaces as SFR-non-interfering.
    The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.
    The evaluator shall determine that the functional specification is an accurate - and complete instantiation of the SFRs.

    Content and presentation elements:

    The functional specification shall describe the purpose and method of use for + each SFR-enforcing and SFR-supporting TSFI.
    The functional specification shall identify all parameters associated with each + SFR-enforcing and SFR-supporting TSFI.
    The functional specification shall provide rationale for the implicit + categorization of interfaces as SFR-non-interfering.
    The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence.
    The evaluator shall determine that the functional specification is an accurate + and complete instantiation of the SFRs.
    There are no specific evaluation activities associated with these SARs, except - ensuring the information is provided. The functional specification documentation is - provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and - other activities described for AGD, ATE, and AVA SARs. The requirements on the content + ensuring the information is provided. The functional specification documentation is + provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and + other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate - functional specification has not been provided.

    5.2.3 Class AGD: Guidance Documentation

    + functional specification has not been provided.
    + +

    5.2.3 Class AGD: Guidance Documentation

    + The guidance documents will be - provided with the ST. Guidance must include a description of how the IT personnel verifies - that the Operational Environment can fulfill its role for the security functionality. The - documentation should be in an informal style and readable by the IT personnel. Guidance must + provided with the ST. Guidance must include a description of how the IT personnel verifies + that the Operational Environment can fulfill its role for the security functionality. The + documentation should be in an informal style and readable by the IT personnel. Guidance must be provided for every operational environment that the product supports as claimed in the - ST. This guidance includes instructions to successfully install the TSF in + ST. This guidance includes instructions to successfully install the TSF in that environment; and Instructions to manage the security of the TSF as a - product and as a component of the larger operational environment. Guidance pertaining to + product and as a component of the larger operational environment. Guidance pertaining to particular security functionality is also provided; requirements on such guidance are - contained in the evaluation activities specified with each requirement. -

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    Developer action elements:

    The developer shall provide operational user guidance.
    Application + contained in the evaluation activities specified with each requirement. + +

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    + + + + + + + + + +

    Developer action elements:

    The developer shall provide operational user guidance.
    Note: The operational user guidance does not have to be contained in a - single document. Guidance to users, administrators and application developers can be - spread among documents or web pages. Where appropriate, the guidance documentation is + single document. Guidance to users, administrators and application developers can be + spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to - support security automation. Rather than repeat information here, the developer should + support security automation. Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of the - guidance that the evaluator will be checking for. This will provide the necessary - information for the preparation of acceptable guidance.

    Content and presentation elements:

    The operational user guidance shall describe, for each user role, the + guidance that the evaluator will be checking for. This will provide the necessary + information for the preparation of acceptable guidance.

    Content and presentation elements:

    The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure - processing environment, including appropriate warnings.
    Application + processing environment, including appropriate warnings.
    Note: User and administrator are to be considered in the definition - of user role.
    The operational user guidance shall describe, for each user role, how to use the - available interfaces provided by the TOE in a secure manner.
    The operational user guidance shall describe, for each user role, the available + of user role.
    The operational user guidance shall describe, for each user role, how to use the + available interfaces provided by the TOE in a secure manner.
    The operational user guidance shall describe, for each user role, the available functions and interfaces, in particular all security parameters under the control of - the user, indicating secure values as appropriate.
    The operational user guidance shall, for each user role, clearly present each + the user, indicating secure values as appropriate.
    The operational user guidance shall, for each user role, clearly present each type of security-relevant event relative to the user-accessible functions that need to be performed, including changing the security characteristics of entities under the - control of the TSF.
    The operational user guidance shall identify all possible modes of operation of + control of the TSF.
    The operational user guidance shall identify all possible modes of operation of the TOE (including operation following failure or operational - error), their consequences, and implications for maintaining secure operation.
    The operational user guidance shall, for each user role, describe the security + error), their consequences, and implications for maintaining secure operation.
    The operational user guidance shall, for each user role, describe the security measures to be followed in order to fulfill the security objectives for the - operational environment as described in the ST.
    The operational user guidance shall be clear and reasonable.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.
    + operational environment as described in the ST.
    The operational user guidance shall be clear and reasonable.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence.
    Some of the contents of the operational guidance will be verified by the - evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE - according to the [CEM]. The following additional - information is also required.

    + evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE + according to the [CEM]. The following additional + information is also required.

    If cryptographic functions are provided by the TOE, the operational guidance shall contain instructions for configuring the cryptographic engine associated with the evaluated configuration of - the TOE. It shall provide a warning to the administrator that use of + the TOE. It shall provide a warning to the administrator that use of other cryptographic engines was not evaluated nor tested during the CC evaluation of - the TOE.

    + the TOE.

    The documentation must describe the process for verifying updates to the TOE by verifying a digital signature – this may - be done by the TOE or the underlying platform.

    + be done by the TOE or the underlying platform.

    The evaluator shall verify that this process includes the following steps:

    • Instructions for obtaining the - update itself. This should include instructions for making the update accessible to - the TOE (e.g., placement in a specific directory).
    • Instructions for initiating the update process, as well as discerning whether the process was - successful or unsuccessful. This includes generation of the digital signature. + update itself. This should include instructions for making the update accessible to + the TOE (e.g., placement in a specific directory).
    • Instructions for initiating the update process, as well as discerning whether the process was + successful or unsuccessful. This includes generation of the digital signature. The TOE will likely contain security functionality that does not - fall in the scope of evaluation under this PP. The operational guidance shall make it + fall in the scope of evaluation under this PP. The operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation - activities.

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Application + activities.
    +

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Note: As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative - procedures.

    Content and presentation elements:

    The preparative procedures shall describe all the steps necessary for secure + procedures.

    Content and presentation elements:

    The preparative procedures shall describe all the steps necessary for secure acceptance of the delivered TOE in accordance with the developer's - delivery procedures.
    The preparative procedures shall describe all the steps necessary for secure + delivery procedures.
    The preparative procedures shall describe all the steps necessary for secure installation of the TOE and for the secure preparation of the operational environment in accordance with the security objectives for the operational - environment as described in the ST.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.
    The evaluator shall apply the preparative procedures to confirm that the TOE - can be prepared securely for operation.
    + environment as described in the ST.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence.
    The evaluator shall apply the preparative procedures to confirm that the TOE + can be prepared securely for operation.
    As indicated in the introduction above, there are significant expectations with respect to the documentation—especially when configuring the operational - environment to support TOE functional requirements. The evaluator + environment to support TOE functional requirements. The evaluator shall check to ensure that the guidance provided for the TOE - adequately addresses all platforms claimed for the TOE in the ST.

    5.2.4 Class ALC: Life-cycle Support

    + adequately addresses all platforms claimed for the TOE in the ST.
    + +

    5.2.4 Class ALC: Life-cycle Support

    + At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s - development and configuration management process. This is not meant to diminish the + development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this - assurance level.

    ALC_CMC.1 Labeling of the TOE (ALC_CMC.1)

    + assurance level. +

    ALC_CMC.1 Labeling of the TOE (ALC_CMC.1)

    + This component is targeted at identifying the TOE such that it can be distinguished from other products or versions from the same vendor and can be easily specified when being - procured by an end user. -

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Application + procured by an end user. + + + + +

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Note: Unique reference information includes:
    • Application Name
    • Application Version
    • Application Description
    • Platform on which Application Runs
    • Software Identification (SWID) tags, if available

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all - requirements for content and presentation of evidence.
    + requirements for content and presentation of evidence.
    The evaluator shall check the ST to ensure that it contains an identifier (such as a product name/version number) that specifically identifies the version that - meets the requirements of the ST. Further, the evaluator shall check the AGD guidance + meets the requirements of the ST. Further, the evaluator shall check the AGD guidance and TOE samples received for testing to ensure that the version - number is consistent with that in the ST. If the vendor maintains a web site + number is consistent with that in the ST. If the vendor maintains a web site advertising the TOE, the evaluator shall examine the information on the web site to ensure that the information in the ST is sufficient to distinguish the - product.

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE - itself; and the evaluation evidence required by the SARs.
    The configuration list shall uniquely identify the configuration items.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.
    +

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    + + + + +

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE + itself; and the evaluation evidence required by the SARs.
    The configuration list shall uniquely identify the configuration items.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence.
    The "evaluation evidence required by the SARs" in this PP is limited to the information in the ST coupled with the guidance provided to administrators and users - under the AGD requirements. By ensuring that the TOE is specifically + under the AGD requirements. By ensuring that the TOE is specifically identified and that this identification is consistent in the ST and in the AGD guidance (as done in the evaluation activity for ALC_CMC.1), the evaluator implicitly - confirms the information required by this component. Life-cycle support is targeted + confirms the information required by this component. Life-cycle support is targeted aspects of the developer’s life-cycle and instructions to providers of applications for the developer’s devices, rather than an in-depth examination of the TSF - manufacturer’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in + manufacturer’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it’s a reflection on - the information to be made available for evaluation.
    The evaluator shall ensure that the developer has identified (in guidance documentation for application + the information to be made available for evaluation.
    The evaluator shall ensure that the developer has identified (in guidance documentation for application developers concerning the targeted platform) one or more development environments - appropriate for use in developing applications for the developer’s platform. For each + appropriate for use in developing applications for the developer’s platform. For each of these development environments, the developer shall provide information on how to configure the environment to ensure that buffer overflow protection mechanisms in the - environment(s) are invoked (e.g., compiler flags). The evaluator shall ensure that + environment(s) are invoked (e.g., compiler flags). The evaluator shall ensure that this documentation also includes an indication of whether such protections are on by - default, or have to be specifically enabled. The evaluator shall ensure that the + default, or have to be specifically enabled. The evaluator shall ensure that the TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the - TSF using this unique identification.

    ALC_TSU_EXT.1 Timely Security Updates

    + TSF using this unique identification.

    +

    ALC_TSU_EXT.1 Timely Security Updates

    + This component requires the TOE developer, in conjunction with any other necessary parties, to provide information as to how the end-user devices are updated to address security issues - in a timely manner. The documentation describes the process of providing updates to the - public from the time a security flaw is reported/discovered, to the time an update is released. This description includes the parties involved (e.g., the developer, carriers(s)) and the steps + in a timely manner. The documentation describes the process of providing updates to the + public from the time a security flaw is reported/discovered, to the time an update is released. This description includes the parties involved (e.g., the developer, carriers(s)) and the steps that are performed (e.g., developer testing, carrier testing), including worst case time periods, - before an update is made available to the public.

    Developer action elements:

    The developer shall provide a description in the TSS of how timely - security updates are made to the TOE.
    + before an update is made available to the public. + + + + + + +

    Developer action elements:

    The developer shall provide a description in the TSS of how timely + security updates are made to the TOE.
    Note: Application developers must support updates to their products for purposes of - fixing security vulnerabilities.
    + fixing security vulnerabilities.
    The developer shall provide a description in the TSS of how users are notified when - updates change security properties or the configuration of the product.

    Content and presentation elements:

    The description shall include the process for creating and deploying - security updates for the TOE software.
    The description shall express the time window as the length of time, + updates change security properties or the configuration of the product.

    Content and presentation elements:

    The description shall include the process for creating and deploying + security updates for the TOE software.
    The description shall express the time window as the length of time, in days, between public disclosure of a vulnerability and the public availability - of security updates to the TOE.
    The description shall include the mechanisms publicly available for - reporting security issues pertaining to the TOE.
    + of security updates to the TOE.
    The description shall include the mechanisms publicly available for + reporting security issues pertaining to the TOE.
    Note: The reporting mechanism could include web sites, email addresses, as well as a means to protect the sensitive nature of the report (e.g., public keys that could be - used to encrypt the details of a proof-of-concept exploit).

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all - requirements for content and presentation of evidence.
    + used to encrypt the details of a proof-of-concept exploit).

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all + requirements for content and presentation of evidence.
    The evaluator shall verify that the TSS contains a description of the timely security update - process used by the developer to create and deploy security updates. The evaluator shall - verify that this description addresses the entire application. The evaluator shall also + process used by the developer to create and deploy security updates. The evaluator shall + verify that this description addresses the entire application. The evaluator shall also verify that, in addition to the TOE developer’s process, any - third-party processes are also addressed in the description. The evaluator shall - also verify that each mechanism for deployment of security updates is described.

    + third-party processes are also addressed in the description. The evaluator shall + also verify that each mechanism for deployment of security updates is described.

    The evaluator shall verify that, for each deployment mechanism described for the update process, the TSS lists a time between public disclosure of a vulnerability and public availability of the security update to the TOE patching this vulnerability, to include any third-party - or carrier delays in deployment. The evaluator shall verify that this time is expressed in - a number or range of days.

    + or carrier delays in deployment. The evaluator shall verify that this time is expressed in + a number or range of days.

    The evaluator shall verify that this description includes the publicly available mechanisms - (including either an email address or website) for reporting security issues related to the TOE. The evaluator shall verify that the description of this mechanism includes a method for + (including either an email address or website) for reporting security issues related to the TOE. The evaluator shall verify that the description of this mechanism includes a method for protecting the report either using a public key for encrypting email or a trusted channel for a - website.

    5.2.5 Class ATE: Tests

    + website.
    + +

    5.2.5 Class ATE: Tests

    + Testing is specified for functional aspects of - the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN - family. At the assurance level specified in this PP, testing is based on advertised - functionality and interfaces with dependency on the availability of design information. One + the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN + family. At the assurance level specified in this PP, testing is based on advertised + functionality and interfaces with dependency on the availability of design information. One of the primary outputs of the evaluation process is the test report as specified in the - following requirements. + following requirements. + -

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    +

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + Testing is performed to confirm the functionality described in the TSS as well as the administrative - (including configuration and operational) documentation provided. The focus of the testing - is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, - although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these - components. The evaluator produces a test report documenting the plan for and results of + components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE - combinations that are claiming conformance to this PP. Given the scope of the + combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this - component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. -

    Developer action elements:

    The developer shall provide the TOE for testing.
    Application + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.
    Note: The developer must provide at least one product instance of the TOE for complete testing on at least - platform regardless of equivalency. See the Equivalency Appendix for more details.

    Content and presentation elements:

    The TOE shall be suitable for testing.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all - requirements for content and presentation of evidence.
    The evaluator shall test a subset of the TSF to confirm - that the TSF operates as specified.
    Application + platform regardless of equivalency. See the Equivalency Appendix for more details.

    Content and presentation elements:

    The TOE shall be suitable for testing.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all + requirements for content and presentation of evidence.
    The evaluator shall test a subset of the TSF to confirm + that the TSF operates as specified.
    Note: The evaluator shall test the application on the most current - fully patched version of the platform.
    + fully patched version of the platform.
    The evaluator shall prepare a test plan and report documenting the testing - aspects of the system, including any application crashes during testing. The evaluator + aspects of the system, including any application crashes during testing. The evaluator shall determine the root cause of any application crashes and include that information - in the report. The test plan covers all of the testing actions contained in - the [CEM] and the body of this PP’s evaluation activities.

    + in the report. The test plan covers all of the testing actions contained in + the [CEM] and the body of this PP’s evaluation activities.

    While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in - the ST is covered. The test plan identifies the platforms to be tested, and for those + the ST is covered. The test plan identifies the platforms to be tested, and for those platforms not included in the test plan but included in the ST, the test plan provides - a justification for not testing the platforms. This justification must address the + a justification for not testing the platforms. This justification must address the differences between the tested platforms and the untested platforms, and make an - argument that the differences do not affect the testing to be performed. It is not + argument that the differences do not affect the testing to be performed. It is not sufficient to merely assert that the differences have no effect; rationale must be - provided. If all platforms claimed in the ST are tested, then no rationale is - necessary. The test plan describes the composition of each platform to be tested, and - any setup that is necessary beyond what is contained in the AGD documentation. It + provided. If all platforms claimed in the ST are tested, then no rationale is + necessary. The test plan describes the composition of each platform to be tested, and + any setup that is necessary beyond what is contained in the AGD documentation. It should be noted that the evaluator is expected to follow the AGD documentation for installation and setup of each platform either as part of a test or as a standard - pre-test condition. This may include special test drivers or tools. For each driver or + pre-test condition. This may include special test drivers or tools. For each driver or tool, an argument (not just an assertion) should be provided that the driver or tool - will not adversely affect the performance of the functionality by the TOE and its platform.

    + will not adversely affect the performance of the functionality by the TOE and its platform.

    This also includes the configuration of the - cryptographic engine to be used. The cryptographic algorithms implemented by this + cryptographic engine to be used. The cryptographic algorithms implemented by this engine are those specified by this PP and used by the cryptographic protocols being - evaluated (e.g SSH). The test plan identifies high-level test objectives - as well as the test procedures to be followed to achieve those objectives. These - procedures include expected results.

    + evaluated (e.g SSH). The test plan identifies high-level test objectives + as well as the test procedures to be followed to achieve those objectives. These + procedures include expected results.

    The test report (which could just be an annotated version of the test plan) details the activities that took place when the test - procedures were executed, and includes the actual results of the tests. This shall be + procedures were executed, and includes the actual results of the tests. This shall be a cumulative account, so if there was a test run that resulted in a failure; a fix installed; and then a successful re-run of the test, the report would show a “fail” - and “pass” result (and the supporting details), and not just the “pass” result.

    5.2.6 Class AVA: Vulnerability Assessment

    + and “pass” result (and the supporting details), and not just the “pass” result.
    + +

    5.2.6 Class AVA: Vulnerability Assessment

    + For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover - what vulnerabilities have been discovered in these types of products. In most cases, these - vulnerabilities will require sophistication beyond that of a basic attacker. Until + what vulnerabilities have been discovered in these types of products. In most cases, these + vulnerabilities will require sophistication beyond that of a basic attacker. Until penetration tools are created and uniformly distributed to the evaluation labs, the - evaluator will not be expected to test for these vulnerabilities in the TOE. The labs will be expected to comment on the likelihood of these vulnerabilities given - the documentation provided by the vendor. This information will be used in the development - of penetration testing tools and for the development of future protection profiles. -

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Application + evaluator will not be expected to test for these vulnerabilities in the TOE. The labs will be expected to comment on the likelihood of these vulnerabilities given + the documentation provided by the vendor. This information will be used in the development + of penetration testing tools and for the development of future protection profiles. + +

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the - evaluator.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.
    The evaluator shall perform a search of public domain sources to identify - potential vulnerabilities in the TOE.
    Application + evaluator.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence.
    The evaluator shall perform a search of public domain sources to identify + potential vulnerabilities in the TOE.
    Note: Public domain sources include the Common Vulnerabilities - and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain - sources also include sites which provide free checking of files for viruses.
    The evaluator shall conduct penetration testing, based on the identified + and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain + sources also include sites which provide free checking of files for viruses.
    The evaluator shall conduct penetration testing, based on the identified potential vulnerabilities, to determine that the TOE is resistant to - attacks performed by an attacker possessing Basic attack potential.
    + attacks performed by an attacker possessing Basic attack potential.
    The evaluator shall generate a report to document their findings with respect to this - requirement. This report could physically be part of the overall test report mentioned in - ATE_IND, or a separate document. The evaluator performs a search of public information to find + requirement. This report could physically be part of the overall test report mentioned in + ATE_IND, or a separate document. The evaluator performs a search of public information to find vulnerabilities that have been found in similar applications with a particular focus on network - protocols the application uses and document formats it parses.

    - The evaluator documents the sources consulted and the vulnerabilities found in the report.

    + protocols the application uses and document formats it parses.

    + The evaluator documents the sources consulted and the vulnerabilities found in the report.

    For each vulnerability found, the evaluator either provides a rationale with respect to its non-applicability, or the evaluator formulates a test (using the guidelines provided in ATE_IND) - to confirm the vulnerability, if suitable. Suitability is determined by assessing the attack - vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires + to confirm the vulnerability, if suitable. Suitability is determined by assessing the attack + vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires expert skills and an electron microscope, for instance, then a test would not be suitable and - an appropriate justification would be formulated.

    For Windows, Linux, macOS and Solaris: + an appropriate justification would be formulated.

    The evaluator shall also run a virus scanner with the most current virus definitions against the - application files and verify that no files are flagged as malicious.

    + application files and verify that no files are flagged as malicious.

    + +

    Appendix A - Optional Requirements

    As indicated in the introduction to this PP, the baseline requirements (those that must be - performed by the TOE) are contained in the body of this PP. This appendix contains three other types of optional requirements:

    + performed by the TOE) are contained in the body of this PP. This appendix contains three other types of optional requirements:

    - The first type, defined in Appendix A.1 Strictly Optional Requirements, are strictly optional requirements. If the TOE meets any of these requirements the vendor is encouraged to claim the associated SFRs - in the ST, but doing so is not required in order to conform to this PP.

    + The first type, defined in Appendix A.1 Strictly Optional Requirements, are strictly optional requirements. If the TOE meets any of these requirements the vendor is encouraged to claim the associated SFRs + in the ST, but doing so is not required in order to conform to this PP.

    - The second type, defined in Appendix A.2 Objective Requirements, are objective requirements. These describe security functionality that is not yet - widely available in commercial technology. + The second type, defined in Appendix A.2 Objective Requirements, are objective requirements. These describe security functionality that is not yet + widely available in commercial technology. Objective requirements are not currently mandated by this PP, but will be mandated in - the future. Adoption by vendors is encouraged, but claiming these SFRs is not required in order to conform to this - PP.

    + the future. Adoption by vendors is encouraged, but claiming these SFRs is not required in order to conform to this + PP.

    - The third type, defined in Appendix A.3 Implementation-dependent Requirements, are Implementation-dependent requirements. If the TOE implements the product features associated with the listed SFRs, either the SFRs must be claimed - or the product features must be disabled in the evaluated ocnfiguration. + The third type, defined in Appendix A.3 Implementation-dependent Requirements, are Implementation-dependent requirements. If the TOE implements the product features associated with the listed SFRs, either the SFRs must be claimed + or the product features must be disabled in the evaluated ocnfiguration.

    A.1 Strictly Optional Requirements

    A.1.1 Class: Cryptographic Support (FCS)

    FCS_CKM.1/SK Cryptographic Symmetric Key Generation

    The application shall generate symmetric cryptographic keys using a Random Bit - Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes[selection: 128 bit, 256 bit].
    Application + Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes[selection: 128 bit, 256 bit].
    Application Note: - Symmetric keys may be used to generate keys along the key chain.
    + Symmetric keys may be used to generate keys along the key chain.
    The evaluator shall review the TSS to determine that it describes how the functionality described by - FCS_RBG_EXT.1 is invoked.

    + FCS_RBG_EXT.1 is invoked.

    If the application is relying on random bit generation from the host platform, the evaluator shall verify the TSS includes the name/manufacturer of the external RBG and describes the function call and parameters - used when calling the external DRBG function. If different external RBGs are used + used when calling the external DRBG function. If different external RBGs are used for different platforms, the evaluator shall verify the TSS identifies each RBG for - each platform. Also, the evaluator shall verify the TSS includes a short description - of the vendor's assumption for the amount of entropy seeding the external DRBG. The + each platform. Also, the evaluator shall verify the TSS includes a short description + of the vendor's assumption for the amount of entropy seeding the external DRBG. The evaluator uses the description of the RBG functionality in FCS_RBG_EXT or documentation available for the operational environment to determine that the key size being requested is identical to the key size and mode to be used for the - encryption/decryption of the user data.

    -
    Guidance
    None.

    -
    Tests
    None.
    + encryption/decryption of the user data.

    +
    Guidance
    None.

    +
    Tests
    None.

    A.2 Objective Requirements

    A.2.1 Class: Protection of the TSF (FPT)

    FPT_API_EXT.2 Use of Supported Services and APIs

    -
    The application[selection, choose one of: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: - list of formats parsed that are included in the IANA MIME media types].
    Application +
    The application[selection: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: + list of formats parsed that are included in the IANA MIME media types].
    Application Note: The IANA MIME types are listed at http://www.iana.org/assignments/media-types - and include many image, audio, video, and content file formats.

    + and include many image, audio, video, and content file formats.

    This requirement does not apply if providing parsing services is the purpose of the - application.
    + application.
    The evaluator shall verify that the TSS lists the IANA MIME media types (as described by http://www.iana.org/assignments/media-types ) for all formats the application processes - and that it maps those formats to parsing services provided by the platform.
    -
    Guidance
    None.

    -
    Tests
    None.

    + and that it maps those formats to parsing services provided by the platform.
    +
    Guidance
    None.

    +
    Tests
    None.

    A.3 Implementation-dependent Requirements

    This PP does not define any - Implementation-dependent requirements.

    Appendix B - Selection-based Requirements + Implementation-dependent requirements.

    Appendix B - Selection-based Requirements

    As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE or its underlying platform) - are contained in the body of this PP. There are additional requirements based on selections in the body of + are contained in the body of this PP. There are additional requirements based on selections in the body of the PP: - if certain selections are made, then additional requirements below must be included.

    + if certain selections are made, then additional requirements below must be included.

    B.1 Class: Cryptographic Support (FCS)

    FCS_CKM.1/AK Cryptographic Asymmetric Key Generation

    The inclusion of this selection-based component depends upon selection in - FCS_CKM.1.1.
    + FCS_CKM.1.1.
    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
    • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet - the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
    • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
    • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
      • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet + the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
      • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
      • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.1]
      • [FFC Schemes] using Diffie-Hellman group 14 that meet the following: - RFC 3526, Section 3
      • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
      ].
      Application + RFC 3526, Section 3
    • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
    ].
    Application Note: The ST author shall select all key generation schemes used for key - establishment and entity authentication. When key generation is used for key + establishment and entity authentication. When key generation is used for key establishment, the schemes in FCS_CKM.2.1 and selected cryptographic protocols must - match the selection. When key generation is used for entity authentication, the public - key is expected to be associated with an X.509v3 certificate.

    + match the selection. When key generation is used for entity authentication, the public + key is expected to be associated with an X.509v3 certificate.

    If the TOE acts as a receiver in the RSA key establishment scheme, - the TOE does not need to implement RSA key generation. + the TOE does not need to implement RSA key generation.
    The evaluator shall ensure that the TSS identifies the key sizes - supported by the TOE. If the ST specifies more + supported by the TOE. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that - it identifies the usage for each scheme.

    + it identifies the usage for each scheme.

    If the application "invokes platform-provided functionality for asymmetric key generation," then the evaluator shall examine the TSS to verify that it describes - how the key generation functionality is invoked.

    + how the key generation functionality is invoked.

    Guidance
    The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key generation scheme(s) and - key size(s) for all uses defined in this PP.

    + key size(s) for all uses defined in this PP.

    Tests
    If the application "implements asymmetric key generation," then the following test - activities shall be carried out.

    + activities shall be carried out.

    Evaluation Activity Note: The following tests may require the developer to provide access to a developer environment that provides the evaluator with tools that are typically available - to end-users of the application.

    Key Generation for FIPS PUB 186-4 RSA Schemes

    + to end-users of the application.

    Key Generation for FIPS PUB 186-4 RSA Schemes

    The evaluator shall verify the implementation of RSA Key Generation by the - TOE using the Key Generation test. This test verifies the ability of + TOE using the Key Generation test. This test verifies the ability of the TSF to correctly produce values for the key components including the public verification exponent e, the private prime factors p and q, the public - modulus n and the calculation of the private signature exponent d. Key Pair generation - specifies 5 ways (or methods) to generate the primes p and q. + modulus n and the calculation of the private signature exponent d. Key Pair generation + specifies 5 ways (or methods) to generate the primes p and q. These include:
    1. Random Primes:
      • Provable primes
      • Probable primes
    2. Primes with Conditions:
      • Primes p1, p2, q1,q2, p and q shall all be provable primes
      • Primes p1, p2, q1, and q2 shall be provable primes and p and q shall be @@ -2669,91 +2784,91 @@

        A.1 Strictly Optional R To test the key generation method for the Random Provable primes method and for all the Primes with Conditions methods, the evaluator must seed the TSF key generation routine with sufficient data to deterministically generate the RSA key - pair. This includes the random seed(s), the public exponent of the RSA key, and the - desired key length. For each key length supported, the evaluator shall have the - TSF generate 25 key pairs. The evaluator shall verify the + pair. This includes the random seed(s), the public exponent of the RSA key, and the + desired key length. For each key length supported, the evaluator shall have the + TSF generate 25 key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good - implementation.

        + implementation.

        If possible, the Random Probable primes method should also be verified against a - known good implementation as described above. Otherwise, the evaluator shall have + known good implementation as described above. Otherwise, the evaluator shall have the TSF generate 10 keys pairs for each supported key length nlen - and verify:
        • n = p⋅q,
        • p and q are probably prime according to Miller-Rabin tests,
        • GCD(p-1,e) = 1,
        • GCD(q-1,e) = 1,
        • 216 ≤ e ≤ 2256 and e is an odd integer,
        • |p-q| > 2nlen/2 - 100,
        • p ≥ 2nlen/2 -1/2,
        • q ≥ 2nlen/2 -1/2,
        • 2(nlen/2) < d < LCM(p-1,q-1),
        • e⋅d = 1 mod LCM(p-1,q-1).
        Key Generation for Elliptic Curve Cryptography (ECC)

        + and verify:
        • n = p⋅q,
        • p and q are probably prime according to Miller-Rabin tests,
        • GCD(p-1,e) = 1,
        • GCD(q-1,e) = 1,
        • 216 ≤ e ≤ 2256 and e is an odd integer,
        • |p-q| > 2nlen/2 - 100,
        • p ≥ 2nlen/2 -1/2,
        • q ≥ 2nlen/2 -1/2,
        • 2(nlen/2) < d < LCM(p-1,q-1),
        • e⋅d = 1 mod LCM(p-1,q-1).
        Key Generation for Elliptic Curve Cryptography (ECC)

        FIPS 186-4 ECC Key Generation Test For each supported NIST curve, i.e., P-256, P-384 and P-521, the evaluator shall - require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated using an approved random bit generator (RBG). To + require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated using an approved random bit generator (RBG). To determine correctness, the evaluator shall submit the generated key pairs to the - public key verification (PKV) function of a known good implementation.

        + public key verification (PKV) function of a known good implementation.

        FIPS 186-4 Public Key Verification (PKV) Test For each supported NIST curve, i.e., P-256, P-384 and P-521, the evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify five of the public key values so that they are - incorrect, leaving five values unchanged (i.e., correct). The evaluator shall obtain - in response a set of 10 PASS/FAIL values.

        Key Generation for Finite-Field Cryptography (FFC)

        + incorrect, leaving five values unchanged (i.e., correct). The evaluator shall obtain + in response a set of 10 PASS/FAIL values.

        Key Generation for Finite-Field Cryptography (FFC)

        The evaluator shall verify the implementation of the Parameters Generation and the Key Generation for FFC by the TOE using the Parameter Generation and - Key Generation test. This test verifies the ability of the TSF to + Key Generation test. This test verifies the ability of the TSF to correctly produce values for the field prime p, the cryptographic prime q (dividing p-1), the cryptographic group generator g, and the calculation of the private key x - and public key y. The Parameter generation specifies 2 ways (or methods) to generate + and public key y. The Parameter generation specifies 2 ways (or methods) to generate the cryptographic prime q and the field prime p:

        Cryptographic and Field Primes:
        • Primes q and p shall both be provable primes
        • Primes q and field prime p shall both be probable primes
        and two ways to generate the cryptographic group generator g:

        Cryptographic Group Generator: -
        • Generator g constructed through a verifiable process
        • Generator g constructed through an unverifiable process.
        +
        • Generator g constructed through a verifiable process
        • Generator g constructed through an unverifiable process.
        The Key generation specifies 2 ways to generate the private key x:

        Private Key:
        • len(q) bit output of RBG where 1 ≤x ≤ q-1
        • len(q) + 64 bit output of RBG, followed by a mod q-1 operation where - 1≤ x≤q-1.
        + 1≤ x≤q-1.

      The security strength of the RBG must be at least that of the security offered by the - FFC parameter set. To test the cryptographic and field prime generation method for the provable primes + FFC parameter set. To test the cryptographic and field prime generation method for the provable primes method and/or the group generator g for a verifiable process, the evaluator must seed the TSF parameter generation routine with sufficient data to - deterministically generate the parameter set. For each key length supported, the evaluator shall have the TSF - generate 25 parameter sets and key pairs. The evaluator shall verify the correctness + deterministically generate the parameter set. For each key length supported, the evaluator shall have the TSF + generate 25 parameter sets and key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the - TSF with those generated from a known good implementation. + TSF with those generated from a known good implementation. Verification must also confirm
      • g ≠ 0,1
      • q divides p-1
      • gq mod p = 1
      • gx mod p = y
      - for each FFC parameter set and key pair.

      Diffie-Hellman Group 14 and FFC Schemes using “safe-prime” groups

      + for each FFC parameter set and key pair.

      Diffie-Hellman Group 14 and FFC Schemes using “safe-prime” groups

      Testing for FFC Schemes using Diffie-Hellman group 14 and/or safe-prime groups is done as part of testing - in CKM.2.1.
    + in CKM.2.1.

    FCS_CKM.1/PBKDF Password Conditioning

    The inclusion of this selection-based component depends upon selection in - FCS_STO_EXT.1.1.
    + FCS_STO_EXT.1.1.
    A password/passphrase shall perform[assignment: Password-based Key Derivation Functions]in accordance with a specified cryptographic algorithm as specified in FCS_COP.1/KeyedHash, with[assignment: - positive integer of 1,000 or more]iterations, and output cryptographic key sizes[selection: 128, 256]that meet the following [NIST SP 800-132] .
    -
    The TSF shall generate salts using a RBG that meets FCS_RBG_EXT.1 and with entropy corresponding to the security strength selected for PBKDF in FCS_CKM.1.1/PBKDF.
    Application + positive integer of 1,000 or more]iterations, and output cryptographic key sizes[selection: 128, 256]that meet the following [NIST SP 800-132] .
    +
    The TSF shall generate salts using a RBG that meets FCS_RBG_EXT.1 and with entropy corresponding to the security strength selected for PBKDF in FCS_CKM.1.1/PBKDF.
    Application Note: This should be included if selected in FCS_STO_EXT.1

    Conditioning can be performed using one of the identified hash functions or the process described - in NIST SP 800-132; the method used is selected by the ST Author. SP 800-132 requires the use of a pseudo-random - function (PRF) consisting of HMAC with an approved hash function. The ST author selects the hash function used, - also includes the appropriate requirements for HMAC and the hash function.

    + in NIST SP 800-132; the method used is selected by the ST Author. SP 800-132 requires the use of a pseudo-random + function (PRF) consisting of HMAC with an approved hash function. The ST author selects the hash function used, + also includes the appropriate requirements for HMAC and the hash function.

    Appendix A of SP 800-132 recommends setting the iteration count in order to increase the computation needed to derive a - key from a password and, therefore, increase the workload of performing a password recovery attack. A significantly higher - value is recommended to ensure optimal security. This value is expected to increase to a minimum of 10,000 in a future - iteration based on SP800-63.
    + key from a password and, therefore, increase the workload of performing a password recovery attack. A significantly higher + value is recommended to ensure optimal security. This value is expected to increase to a minimum of 10,000 in a future + iteration based on SP800-63.
    Support for PBKDF: The evaluator shall examine the password hierarchy TSS to ensure that the formation of all password based derived keys is described and that the key sizes match that - described by the ST author. + described by the ST author. The evaluator shall check that the TSS describes the method by which the password/passphrase is first encoded and then fed to - the SHA algorithm. The settings for the algorithm (padding, blocking, etc.) shall be described, and the evaluator shall verify - that these are supported by the selections in this component as well as the selections concerning the hash function itself. + the SHA algorithm. The settings for the algorithm (padding, blocking, etc.) shall be described, and the evaluator shall verify + that these are supported by the selections in this component as well as the selections concerning the hash function itself. The evaluator shall verify that the TSS contains a description of how the output of the hash function is used to form the - submask that will be input into the function. For the NIST SP 800-132-based conditioning of the password/passphrase, the required evaluation activities will be performed when - doing the evaluation activities for the appropriate requirements (FCS_COP.1.1/KeyedHash). No explicit testing of the formation of the submask from the input password is required. - FCS_CKM.1.1/PBKDF: The ST author shall provide a description in the TSS regarding the salt generation. - The evaluator shall confirm that the salt is generated using an RBG described in FCS_RBG_EXT.1.

    -
    Guidance
    None.

    -
    Tests
    None.
    + submask that will be input into the function. For the NIST SP 800-132-based conditioning of the password/passphrase, the required evaluation activities will be performed when + doing the evaluation activities for the appropriate requirements (FCS_COP.1.1/KeyedHash). No explicit testing of the formation of the submask from the input password is required. + FCS_CKM.1.1/PBKDF: The ST author shall provide a description in the TSS regarding the salt generation. + The evaluator shall confirm that the salt is generated using an RBG described in FCS_RBG_EXT.1.

    +
    Guidance
    None.

    +
    Tests
    None.

    FCS_CKM.2 Cryptographic Key Establishment

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

    [selection:
    • [RSA-based key establishment schemes] that meets the following: [NIST +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

      [selection:
      • [RSA-based key establishment schemes] that meets the following: [NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]
      • [RSA-based key establishment schemes] that meet the following: RSAES-PKCS1-v1_5 as specified in Section 7.2 of RFC 8017, @@ -2762,349 +2877,349 @@

        A.1 Strictly Optional R Schemes Using Discrete Logarithm Cryptography”]

      • [Finite field-based key establishment schemes] that meets the following: [NIST Special Publication 800-56A, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]
      • [Key establishment scheme using Diffie-Hellman group 14] - that meets the following: RFC 3526, Section 3
      • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
      ].
      Application + that meets the following: RFC 3526, Section 3
    • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
    ].
    Application Note: The ST author shall select all key establishment schemes used for the selected cryptographic - protocols. TLS requires cipher suites that use RSA-based key establishment - schemes.

    + protocols. TLS requires cipher suites that use RSA-based key establishment + schemes.

    The RSA-based key establishment schemes are described in Section 9 of NIST SP 800-56B; - however, Section 9 relies on implementation of other sections in SP 800-56B. If the TOE acts + however, Section 9 relies on implementation of other sections in SP 800-56B. If the TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement - RSA key generation.

    + RSA key generation.

    The elliptic curves used for the key establishment scheme shall correlate with the curves - specified in FCS_CKM.1.1/AK.

    + specified in FCS_CKM.1.1/AK.

    The domain parameters used for the finite field-based key establishment scheme are specified - by the key generation according to FCS_CKM.1.1/AK.
    + by the key generation according to FCS_CKM.1.1/AK.
    The evaluator shall ensure that the supported key establishment schemes correspond to the - key generation schemes identified in FCS_CKM.1.1. If the ST specifies more than one + key generation schemes identified in FCS_CKM.1.1. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each - scheme.

    + scheme.

    Guidance
    The evaluator shall verify that the AGD guidance instructs the administrator how to configure - the TOE to use the selected key establishment scheme(s).

    + the TOE to use the selected key establishment scheme(s).

    Tests
    Evaluation Activity Note: The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory - products.

    Key Establishment Schemes

    + products.

    Key Establishment Schemes

    The evaluator shall verify the implementation of the key establishment schemes supported by - the TOE using the applicable tests below.

    SP800-56A Key Establishment Schemes

    + the TOE using the applicable tests below.

    SP800-56A Key Establishment Schemes

    The evaluator shall verify a TOE's implementation of SP800-56A key agreement schemes - using the following Function and Validity tests. These validation tests for each key agreement + using the following Function and Validity tests. These validation tests for each key agreement scheme verify that a TOE has implemented the components of the key agreement scheme - according to the specifications in the Recommendation. These components include the + according to the specifications in the Recommendation. These components include the calculation of the DLC primitives (the shared secret value Z) and the calculation of the - derived keying material (DKM) via the Key Derivation Function (KDF). If key confirmation + derived keying material (DKM) via the Key Derivation Function (KDF). If key confirmation is supported, the evaluator shall also verify that the components of key confirmation have - been implemented correctly, using the test procedures described below. This includes the - parsing of the DKM, the generation of MACdata and the calculation of MACtag.

    Function Test

    + been implemented correctly, using the test procedures described below. This includes the + parsing of the DKM, the generation of MACdata and the calculation of MACtag.

    Function Test

    The Function test verifies the ability of the TOE to implement the key agreement - schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors - from a known good implementation of the TOE supported schemes. For each supported + schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors + from a known good implementation of the TOE supported schemes. For each supported key agreement scheme-key agreement role combination, KDF type, and, if supported, key confirmation role- key confirmation type combination, the tester shall generate 10 - sets of test vectors. The data set consists of one set of domain parameter values (FFC) or - the NIST approved curve (ECC) per 10 sets of public keys. These keys are static, - ephemeral or both depending on the scheme being tested.

    + sets of test vectors. The data set consists of one set of domain parameter values (FFC) or + the NIST approved curve (ECC) per 10 sets of public keys. These keys are static, + ephemeral or both depending on the scheme being tested.

    The evaluator shall obtain the DKM, the corresponding TOE’s public keys (static and/or ephemeral), the MAC tag(s), and any inputs used in the KDF, such as the Other - Information (OtherInfo) and TOE id fields.

    + Information (OtherInfo) and TOE id fields.

    If the TOE does not use a KDF defined in SP 800-56A, the evaluator shall obtain only - the public keys and the hashed value of the shared secret.

    + the public keys and the hashed value of the shared secret.

    The evaluator shall verify the correctness of the TSF’s implementation of a given scheme by using a known good implementation to calculate the shared secret value, derive the keying material DKM, and compare hashes or MAC tags generated from - these values.

    + these values.

    If key confirmation is supported, the TSF shall perform the above for each implemented - approved MAC algorithm.

    Validity Test

    + approved MAC algorithm.

    Validity Test

    The Validity test verifies the ability of the TOE to recognize another party’s valid and - invalid key agreement results with or without key confirmation. To conduct this test, the + invalid key agreement results with or without key confirmation. To conduct this test, the evaluator shall obtain a list of the supporting cryptographic functions included in the SP800-56A key agreement implementation to determine which errors the TOE should - be able to recognize. The evaluator generates a set of 24 (FFC) or 30 (ECC) test vectors + be able to recognize. The evaluator generates a set of 24 (FFC) or 30 (ECC) test vectors consisting of data sets including domain parameter values or NIST approved curves, the evaluator’s public keys, the TOE’s public/private key pairs, MACTag, and any inputs - used in the KDF, such as the OtherInfo and TOE id fields.

    + used in the KDF, such as the OtherInfo and TOE id fields.

    The evaluator shall inject an error in some of the test vectors to test that the TOE recognizes invalid key agreement results caused by the following fields being incorrect: the shared secret value Z, the DKM, the OtherInfo field, the data to be - MACed, or the generated MACTag. If the TOE contains the full or partial (only ECC) + MACed, or the generated MACTag. If the TOE contains the full or partial (only ECC) public key validation, the evaluator will also individually inject errors in both parties’ static public keys, both parties’ ephemeral public keys and the TOE’s static private key to assure the TOE detects errors in the public key validation function and/or the partial - key validation function (in ECC only). At least two of the test vectors shall remain - unmodified and therefore should result in valid key agreement results (they should pass).

    + key validation function (in ECC only). At least two of the test vectors shall remain + unmodified and therefore should result in valid key agreement results (they should pass).

    The TOE shall use these modified test vectors to emulate the key agreement scheme - using the corresponding parameters. The evaluator shall compare the TOE’s results with - the results using a known good implementation verifying that the TOE detects these errors.

    SP800-56B Key Establishment Schemes

    + using the corresponding parameters. The evaluator shall compare the TOE’s results with + the results using a known good implementation verifying that the TOE detects these errors.

    SP800-56B Key Establishment Schemes

    The evaluator shall verify that the TSS describes whether the TOE acts as a sender, a - recipient, or both for RSA-based key establishment schemes.

    + recipient, or both for RSA-based key establishment schemes.

    If the TOE acts as a sender, the following evaluation activity shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme:

    If the TOE acts as a receiver, the following evaluation activities shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme:

    - The evaluator shall ensure that the TSS describes how the TOE handles decryption errors. In + The evaluator shall ensure that the TSS describes how the TOE handles decryption errors. In accordance with NIST Special Publication 800-56B, the TOE must not reveal the particular error that occurred, either through the contents of any outputted or logged error message or - through timing variations. If KTS-OAEP is supported, the evaluator shall create separate + through timing variations. If KTS-OAEP is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.2.3, ensure that each decryption attempt - results in an error, and ensure that any outputted or logged error message is identical for each. + results in an error, and ensure that any outputted or logged error message is identical for each. If KTS-KEM-KWS is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.3.3, ensure that each decryption attempt results in an error, - and ensure that any outputted or logged error message is identical for each.

    RSA-based key establishment

    + and ensure that any outputted or logged error message is identical for each.

    RSA-based key establishment

    The evaluator shall verify the correctness of the TSF’s implementation of RSAES-PKCS1-v1_5 by using a - known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses RSAES-PKCS1-v1_5.

    Diffie-Hellman Group 14

    + known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses RSAES-PKCS1-v1_5.

    Diffie-Hellman Group 14

    The evaluator shall verify the correctness of the TSF’s implementation of Diffie-Hellman group 14 by using - a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses Diffie-Hellman group 14.

    FFC Schemes using “safe-prime” groups

    + a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses Diffie-Hellman group 14.

    FFC Schemes using “safe-prime” groups

    The evaluator shall verify the correctness of the TSF’s implementation of safe-prime groups by using a - known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses safe-prime groups. This test - must be performed for each safe-prime group that each protocol uses.
    + known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses safe-prime groups. This test + must be performed for each safe-prime group that each protocol uses.

    FCS_COP.1/Hash Cryptographic Operation - Hashing

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall perform cryptographic hashing services in accordance with a specified cryptographic algorithm[selection: SHA-1, SHA-256, SHA-384, SHA-512, no other]and message digest sizes[selection: 160, 256, 384, 512, no other]bits that meet the following: FIPS Pub 180-4.
    Application +
    The application shall perform cryptographic hashing services in accordance with a specified cryptographic algorithm[selection: SHA-1, SHA-256, SHA-384, SHA-512, no other]and message digest sizes[selection: 160, 256, 384, 512, no other]bits that meet the following: FIPS Pub 180-4.
    Application Note: - This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    + This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    Per NIST SP 800-131A, SHA-1 for generating digital signatures is no longer allowed, and SHA-1 for verification of digital signatures is strongly discouraged as - there may be risk in accepting these signatures.

    - SHA-1 is currently included in order to comply with the TLS. If + there may be risk in accepting these signatures.

    + SHA-1 is currently included in order to comply with the TLS. If the TLS package is included in the ST, the hashing algorithms selection for FCS_COP.1/Hash must match the hashing algorithms used in the mandatory and selected cipher suites of - the TLS package. Vendors are strongly encouraged to implement updated protocols that + the TLS package. Vendors are strongly encouraged to implement updated protocols that support the SHA-2 family; until updated protocols are supported, this PP allows support for - SHA-1 implementations in compliance with SP 800-131A.

    - The intent of this requirement is to specify the hashing function. The hash selection must - support the message digest size selection. The hash selection should be consistent with the - overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).
    + SHA-1 implementations in compliance with SP 800-131A.

    + The intent of this requirement is to specify the hashing function. The hash selection must + support the message digest size selection. The hash selection should be consistent with the + overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).
    The evaluator shall check that the association of the hash function with other application cryptographic functions (for example, the digital signature verification - function) is documented in the TSS.

    -
    Guidance
    None.

    + function) is documented in the TSS.

    +
    Guidance
    None.

    Tests
      The following tests require the developer to provide access to a test application - that provides the evaluator with tools that are typically not found in the production application. + that provides the evaluator with tools that are typically not found in the production application.
    • Test FCS_COP.1.1/Hash:1: - Short Messages Test - Bit oriented Mode. The evaluators devise an input set - consisting of m+1 messages, where m is the block length of the hash algorithm. The - length of the messages range sequentially from 0 to m bits. The message text shall - be pseudorandomly generated. The evaluators compute the message digest for each of + Short Messages Test - Bit oriented Mode. The evaluators devise an input set + consisting of m+1 messages, where m is the block length of the hash algorithm. The + length of the messages range sequentially from 0 to m bits. The message text shall + be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are - provided to the TSF.
    • + provided to the TSF.
    • Test FCS_COP.1.1/Hash:2: - Short Messages Test - Byte oriented Mode. The evaluators devise an input set - consisting of m/8+1 messages, where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m/8 bytes, with each - message being an integral number of bytes. The message text shall be - pseudorandomly generated. The evaluators compute the message digest for each of + Short Messages Test - Byte oriented Mode. The evaluators devise an input set + consisting of m/8+1 messages, where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m/8 bytes, with each + message being an integral number of bytes. The message text shall be + pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are - provided to the TSF.
    • + provided to the TSF.
    • Test FCS_COP.1.1/Hash:3: - Selected Long Messages Test - Bit oriented Mode. The evaluators devise an input - set consisting of m messages, where m is the block length of the hash algorithm. The length of the ith message is 512 + 99*i, where 1 ≤ i ≤ m. The message text - shall be pseudorandomly generated. The evaluators compute the message digest for + Selected Long Messages Test - Bit oriented Mode. The evaluators devise an input + set consisting of m messages, where m is the block length of the hash algorithm. The length of the ith message is 512 + 99*i, where 1 ≤ i ≤ m. The message text + shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the - messages are provided to the TSF.
    • + messages are provided to the TSF.
    • Test FCS_COP.1.1/Hash:4: - Selected Long Messages Test - Byte oriented Mode. The evaluators devise an + Selected Long Messages Test - Byte oriented Mode. The evaluators devise an input set consisting of m/8 messages, where m is the block length of the hash - algorithm. The length of the ith message is 512 + 8*99*i, where 1 ≤ i ≤ m/8. The - message text shall be pseudorandomly generated. The evaluators compute the message + algorithm. The length of the ith message is 512 + 8*99*i, where 1 ≤ i ≤ m/8. The + message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced - when the messages are provided to the TSF.
    • + when the messages are provided to the TSF.
    • Test FCS_COP.1.1/Hash:5: - Pseudorandomly Generated Messages Test. This test is for byte-oriented - implementations only. The evaluators randomly generate a seed that is n bits long, + Pseudorandomly Generated Messages Test. This test is for byte-oriented + implementations only. The evaluators randomly generate a seed that is n bits long, where n is the length of the message digest produced by the hash function to be - tested. The evaluators then formulate a set of 100 messages and associated digests - by following the algorithm provided in Figure 1 of [SHAVS]. The evaluators then + tested. The evaluators then formulate a set of 100 messages and associated digests + by following the algorithm provided in Figure 1 of [SHAVS]. The evaluators then ensure that the correct result is produced when the messages are provided to the - TSF.
    • + TSF.

    FCS_COP.1/KeyedHash Cryptographic Operation - Keyed-Hash Message Authentication

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    The application shall perform keyed-hash message authentication in accordance with a specified cryptographic algorithm
    • HMAC-SHA-256
    and[selection: HMAC-SHA-1, HMAC-SHA-384, HMAC-SHA-512, no other algorithms]with key sizes[assignment: - key size (in bits) used in HMAC]and message digest sizes 256 and[selection: 160, 384, 512, no other size]bits that meet the following: FIPS Pub 198-1 The Keyed-Hash Message Authentication Code and FIPS Pub 180-4 Secure Hash Standard .
    Application + key size (in bits) used in HMAC]and message digest sizes 256 and[selection: 160, 384, 512, no other size]bits that meet the following: FIPS Pub 198-1 The Keyed-Hash Message Authentication Code and FIPS Pub 180-4 Secure Hash Standard .
    Application Note: - This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    + This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    The intent of this requirement is to specify the keyed-hash message authentication function used for key establishment purposes for the various cryptographic protocols - used by the application (e.g., trusted channel). The hash selection must - support the message digest size selection. The hash selection - should be consistent with the overall strength of the algorithm used for FCS_COP.1/SKC.
    + used by the application (e.g., trusted channel). The hash selection must + support the message digest size selection. The hash selection + should be consistent with the overall strength of the algorithm used for FCS_COP.1/SKC.
    - The evaluator shall perform the following activities based on the selections in the ST. -
    None.

    -
    Guidance
    None.

    + The evaluator shall perform the following activities based on the selections in the ST. +
    None.

    +
    Guidance
    None.

    Tests
    - For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The evaluator shall have the TSF generate - HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the - result of generating HMAC tags with the same key and IV using a known-good implementation.
    + For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The evaluator shall have the TSF generate + HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the + result of generating HMAC tags with the same key and IV using a known-good implementation.

    FCS_COP.1/Sig Cryptographic Operation - Signing

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm[selection:
    • RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the - following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
    • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
    ].
    Application + following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
  • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
  • ].
    Application Note: - This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    + This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    The ST Author should choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated - to specify the functionality. For the algorithm chosen, the ST author should make the + to specify the functionality. For the algorithm chosen, the ST author should make the appropriate assignments/selections to specify the parameters that are implemented for that - algorithm.
    + algorithm.
    - The evaluator shall perform the following activities based on the selections in the ST. -
    None.

    -
    Guidance
    None.

    + The evaluator shall perform the following activities based on the selections in the ST. +
    None.

    +
    Guidance
    None.

    Tests
      ECDSA Algorithm Tests
    • Test FCS_COP.1.1/Sig:1: - ECDSA FIPS 186-4 Signature Generation Test. For each + ECDSA FIPS 186-4 Signature Generation Test. For each supported NIST curve (i.e., P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate 10 1024-bit long messages and obtain for each message a - public key and the resulting signature values R and S. To determine correctness, + public key and the resulting signature values R and S. To determine correctness, the evaluator shall use the signature verification function of a known good - implementation. + implementation.
    • Test FCS_COP.1.1/Sig:2: - ECDSA FIPS 186-4 Signature Verification Test. For each supported + ECDSA FIPS 186-4 Signature Verification Test. For each supported NIST curve (i.e., P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate a set of 10 1024-bit message, public key and signature tuples and modify one of the values (message, public key or signature) in five of the 10 - tuples. The evaluator shall obtain in response a set of 10 PASS/FAIL values.
    • + tuples. The evaluator shall obtain in response a set of 10 PASS/FAIL values.
      RSA Signature Algorithm Tests
    • Test FCS_COP.1.1/Sig:3: - Signature Generation Test. The evaluator shall + Signature Generation Test. The evaluator shall verify the implementation of RSA Signature Generation by the TOE - using the Signature Generation Test. To conduct this test the evaluator must + using the Signature Generation Test. To conduct this test the evaluator must generate or obtain 10 messages from a trusted reference implementation for each - modulus size/SHA combination supported by the TSF. The evaluator + modulus size/SHA combination supported by the TSF. The evaluator shall have the TOE use their private key and modulus value to - sign these messages. The evaluator shall verify the correctness of the + sign these messages. The evaluator shall verify the correctness of the TSF’s signature using a known good implementation and the - associated public keys to verify the signatures.
    • + associated public keys to verify the signatures.
    • Test FCS_COP.1.1/Sig:4: - Signature Verification Test. The + Signature Verification Test. The evaluator shall perform the Signature Verification test to verify the ability of the TOE to recognize another party’s valid and invalid - signatures. The evaluator shall inject errors into the test vectors produced + signatures. The evaluator shall inject errors into the test vectors produced during the Signature Verification Test by introducing errors in some of the public - keys, e, messages, IR format, and/or signatures. The TOE attempts - to verify the signatures and returns success or failure.
    • + keys, e, messages, IR format, and/or signatures. The TOE attempts + to verify the signatures and returns success or failure.

    FCS_COP.1/SKC Cryptographic Operation - Encryption/Decryption

    The inclusion of this selection-based component depends upon selection in - FCS_STO_EXT.1.1, FTP_DIT_EXT.1.1.
    + FCS_STO_EXT.1.1, FTP_DIT_EXT.1.1.
    -
    The application shall perform encryption/decryption in accordance with a specified cryptographic algorithm[selection: AES-CBC (as defined in NIST SP 800-38A) mode, AES-GCM (as defined in NIST SP 800-38D) mode, AES-XTS (as defined in NIST SP 800-38E) mode, AES-CCM (as defined in NIST SP 800-38C) mode, AES-CTR (as defined in NIST SP 800-38A) mode]and cryptographic key sizes[selection: 128-bit, 256-bit].
    Application +
    The application shall perform encryption/decryption in accordance with a specified cryptographic algorithm[selection: AES-CBC (as defined in NIST SP 800-38A) mode, AES-GCM (as defined in NIST SP 800-38D) mode, AES-XTS (as defined in NIST SP 800-38E) mode, AES-CCM (as defined in NIST SP 800-38C) mode, AES-CTR (as defined in NIST SP 800-38A) mode]and cryptographic key sizes[selection: 128-bit, 256-bit].
    Application Note: - This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.
    + This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.
    For the first selection, the ST author should choose - the mode or modes in which AES operates. For the second selection, the ST author should - choose the key sizes that are supported by this functionality. 128-bit key size - is required in order to comply with certain TLS implementations.

    + the mode or modes in which AES operates. For the second selection, the ST author should + choose the key sizes that are supported by this functionality. 128-bit key size + is required in order to comply with certain TLS implementations.

    -
    None.

    +
    None.

    Guidance
    The evaluator checks the AGD documents to determine that any configuration that is required to be done to configure the functionality for the required modes - and key sizes is present.

    + and key sizes is present.

    Tests
    The evaluator shall perform all of the following tests for each algorithm implemented by the TSF and used to satisfy the requirements of this PP:

    AES-CBC Known Answer Tests

    - There are four Known Answer Tests (KATs), described below. In all KATs, the plaintext, ciphertext, and IV values shall be 128-bit - blocks. The results from each test may either be obtained by the + There are four Known Answer Tests (KATs), described below. In all KATs, the plaintext, ciphertext, and IV values shall be 128-bit + blocks. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer - and receiving the results in response. To determine correctness, + and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained - by submitting the same inputs to a known good implementation.
    • KAT-1. To test the encrypt functionality of AES-CBC, the + by submitting the same inputs to a known good implementation.
      • KAT-1. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from AES-CBC encryption of the given plaintext using a key value of all zeros and an IV of all - zeros. Five plaintext values shall be encrypted with a 128-bit + zeros. Five plaintext values shall be encrypted with a 128-bit all-zeros key, and the other five shall be encrypted with a - 256-bit all- zeros key. To test the decrypt functionality of + 256-bit all- zeros key. To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input and AES-CBC - decryption.
      • KAT-2. To test the encrypt functionality of AES-CBC, the + decryption.
      • KAT-2. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 key values and obtain the ciphertext value that results from AES-CBC encryption of an all-zeros plaintext using the given key value and an IV of all - zeros. Five of the keys shall be 128-bit keys, and the other five - shall be 256-bit keys. To test the decrypt functionality of + zeros. Five of the keys shall be 128-bit keys, and the other five + shall be 256-bit keys. To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using an all-zero ciphertext value as input and AES-CBC - decryption.
      • KAT-3. To test the encrypt functionality of AES-CBC, the + decryption.
      • KAT-3. To test the encrypt functionality of AES-CBC, the evaluator shall supply the two sets of key values described below and obtain the ciphertext value that results from AES encryption of an all-zeros plaintext using the given key value and an IV of - all zeros. The first set of keys shall have 128 128-bit keys, and - the second set shall have 256 256-bit keys. Key i in each set + all zeros. The first set of keys shall have 128 128-bit keys, and + the second set shall have 256 256-bit keys. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits - be zeros, for i in [1,N]. To test the decrypt functionality of + be zeros, for i in [1,N]. To test the decrypt functionality of AES-CBC, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from AES-CBC decryption of the given - ciphertext using the given key and an IV of all zeros. The first + ciphertext using the given key and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 - 256-bit key/ciphertext pairs. Key i in each set shall have the + 256-bit key/ciphertext pairs. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for - i in [1,N]. The ciphertext value in each pair shall be the value + i in [1,N]. The ciphertext value in each pair shall be the value that results in an all-zeros plaintext when decrypted with its - corresponding key.
      • KAT-4. To test the encrypt functionality of AES-CBC, the + corresponding key.
      • KAT-4. To test the encrypt functionality of AES-CBC, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from AES-CBC encryption of the given plaintext using a 128-bit key value of all zeros with an IV of all zeros and using a 256-bit - key value of all zeros with an IV of all zeros, respectively. Plaintext value i in each set shall have the leftmost i bits be + key value of all zeros with an IV of all zeros, respectively. Plaintext value i in each set shall have the leftmost i bits be ones and the rightmost 128-i bits be zeros, for i in - [1,128].
      To test the decrypt functionality of AES-CBC, the evaluator + [1,128].
    To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the encrypt test as input and - AES-CBC decryption.

    AES-CBC Multi-Block Message Test

    + AES-CBC decryption.

    AES-CBC Multi-Block Message Test

    The evaluator shall test the encrypt functionality by - encrypting an i-block message where 1 < i < = 10. The + encrypting an i-block message where 1 < i < = 10. The evaluator shall choose a key, an IV and plaintext message of length i blocks and encrypt the message, using the mode to be tested, with - the chosen key and IV. The ciphertext shall be compared to the + the chosen key and IV. The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key - and IV using a known good implementation. The evaluator shall also + and IV using a known good implementation. The evaluator shall also test the decrypt functionality for each mode by decrypting an - i-block message where 1 < i < =10. The evaluator shall choose + i-block message where 1 < i < =10. The evaluator shall choose a key, an IV and a ciphertext message of length i blocks and decrypt the message, using the mode to be tested, with the chosen - key and IV. The plaintext shall be compared to the result of + key and IV. The plaintext shall be compared to the result of decrypting the same ciphertext message with the same key and IV - using a known good implementation. AES-CBC Monte Carlo Tests The + using a known good implementation. AES-CBC Monte Carlo Tests The evaluator shall test the encrypt functionality using a set of 200 - plaintext, IV, and key 3- tuples. 100 of these shall use 128 bit - keys, and 100 shall use 256 bit keys. The plaintext and IV values - shall be 128-bit blocks. For each 3-tuple, 1000 iterations shall be + plaintext, IV, and key 3- tuples. 100 of these shall use 128 bit + keys, and 100 shall use 256 bit keys. The plaintext and IV values + shall be 128-bit blocks. For each 3-tuple, 1000 iterations shall be run as follows:
     						  # Input: PT, IV, Key
    @@ -3117,121 +3232,121 @@ 

    A.1 Strictly Optional R PT = CT[i-1]

    The ciphertext computed in the 1000th iteration (i.e., - CT[1000]) is the result for that trial. This result shall be + CT[1000]) is the result for that trial. This result shall be compared to the result of running 1000 iterations with the same - values using a known good implementation.

    + values using a known good implementation.

    The evaluator shall test the decrypt functionality using the same test as for encrypt, exchanging CT and PT and replacing - AES-CBC-Encrypt with AES-CBC-Decrypt.

    AES-GCM Monte Carlo Tests

    + AES-CBC-Encrypt with AES-CBC-Decrypt.

    AES-GCM Monte Carlo Tests

    The evaluator shall test the authenticated encrypt functionality of AES-GCM for each combination of the following - input parameter lengths:
    • 128 bit and 256 bit keys
    • Two plaintext lengths. One of the plaintext lengths shall be + input parameter lengths:
      • 128 bit and 256 bit keys
      • Two plaintext lengths. One of the plaintext lengths shall be a non-zero integer multiple of 128 bits, if - supported. The other plaintext length shall not be an integer - multiple of 128 bits, if supported.
      • Three AAD lengths. One AAD length shall be 0, if supported. One AAD length shall be a non-zero integer - multiple of 128 bits, if supported. One AAD length shall not be - an integer multiple of 128 bits, if supported.
      • Two IV lengths. If 96 bit IV is supported, 96 bits shall be - one of the two IV lengths tested.
      The evaluator shall test the encrypt functionality using a set + supported. The other plaintext length shall not be an integer + multiple of 128 bits, if supported.
    • Three AAD lengths. One AAD length shall be 0, if supported. One AAD length shall be a non-zero integer + multiple of 128 bits, if supported. One AAD length shall not be + an integer multiple of 128 bits, if supported.
    • Two IV lengths. If 96 bit IV is supported, 96 bits shall be + one of the two IV lengths tested.
    The evaluator shall test the encrypt functionality using a set of 10 key, plaintext, AAD, and IV tuples for each combination of parameter lengths above and obtain the ciphertext value and tag - that results from AES-GCM authenticated encrypt. Each supported tag - length shall be tested at least once per set of 10. The IV value + that results from AES-GCM authenticated encrypt. Each supported tag + length shall be tested at least once per set of 10. The IV value may be supplied by the evaluator or the implementation being - tested, as long as it is known.

    + tested, as long as it is known.

    The evaluator shall test the decrypt functionality using a set of 10 key, ciphertext, tag, AAD, and IV 5-tuples for each combination of parameter lengths above and obtain a Pass/Fail - result on authentication and the decrypted plaintext if Pass. The - set shall include five tuples that Pass and five that Fail.

    + result on authentication and the decrypted plaintext if Pass. The + set shall include five tuples that Pass and five that Fail.

    The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer - and receiving the results in response. To determine correctness, + and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good - implementation.

    AES-XTS Tests

    + implementation.

    AES-XTS Tests

    The evaluator shall test the encrypt functionality of XTS-AES for each combination of the following input parameter lengths:

    256 bit (for AES-128) and 512 bit (for AES-256) keys

    - Three data unit (i.e., plaintext) lengths. One of the data unit lengths shall be a - non-zero integer multiple of 128 bits, if supported. One of the data unit lengths - shall be an integer multiple of 128 bits, if supported. The third data unit length + Three data unit (i.e., plaintext) lengths. One of the data unit lengths shall be a + non-zero integer multiple of 128 bits, if supported. One of the data unit lengths + shall be an integer multiple of 128 bits, if supported. The third data unit length shall be either the longest supported data unit length or 216 bits, whichever is - smaller.

    + smaller.

    Using a set of 100 (key, plaintext and 128-bit random tweak value) 3-tuples and - obtain the ciphertext that results from XTS-AES encrypt.

    + obtain the ciphertext that results from XTS-AES encrypt.

    The evaluator may supply a data unit sequence number instead of the tweak value if - the implementation supports it. The data unit sequence number is a base-10 number - ranging between 0 and 255 that implementations convert to a tweak value internally.

    + the implementation supports it. The data unit sequence number is a base-10 number + ranging between 0 and 255 that implementations convert to a tweak value internally.

    The evaluator shall test the decrypt functionality of XTS-AES using the same test as for encrypt, replacing plaintext values with ciphertext values and XTS-AES encrypt - with XTS-AES decrypt.

    AES-CCM Tests + with XTS-AES decrypt.

    AES-CCM Tests It is not recommended that evaluators use values obtained from static sources such as http://csrc.nist.gov/groups/STM/cavp/documents/mac/ccmtestvectors.zip or use values not generated expressly - to exercise the AES-CCM implementation.

    + to exercise the AES-CCM implementation.

    The evaluator shall test the generation-encryption and decryption-verification functionality of AES-CCM for - the following input parameter and tag lengths:
    • Keys: All supported and selected key sizes (e.g., 128, 256 bits).
    • Associated Data: Two or three values for associated data length: The minimum (≥ 0 bytes) and - maximum (≤ 32 bytes) supported associated data lengths, and 2^16 (65536) bytes, if supported.
    • Payload: Two values for payload length: The minimum (≥ 0 bytes) and maximum (≤ 32 bytes) supported - payload lengths.
    • Nonces: All supported nonce lengths (7, 8, 9, 10, 11, 12, 13) in bytes.
    • Tag: All supported tag lengths (4, 6, 8, 10, 12, 14, 16) in bytes.
    - The testing for CCM consists of five tests. To determine correctness in each of the below tests, the evaluator - shall compare the ciphertext with the result of encryption of the same inputs with a known good implementation.

    Variable Associated Data Test

    + the following input parameter and tag lengths:
    • Keys: All supported and selected key sizes (e.g., 128, 256 bits).
    • Associated Data: Two or three values for associated data length: The minimum (≥ 0 bytes) and + maximum (≤ 32 bytes) supported associated data lengths, and 2^16 (65536) bytes, if supported.
    • Payload: Two values for payload length: The minimum (≥ 0 bytes) and maximum (≤ 32 bytes) supported + payload lengths.
    • Nonces: All supported nonce lengths (7, 8, 9, 10, 11, 12, 13) in bytes.
    • Tag: All supported tag lengths (4, 6, 8, 10, 12, 14, 16) in bytes.
    + The testing for CCM consists of five tests. To determine correctness in each of the below tests, the evaluator + shall compare the ciphertext with the result of encryption of the same inputs with a known good implementation.

    Variable Associated Data Test

    For each supported key size and associated data length, and any supported payload length, nonce length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload - values, and obtain the resulting ciphertext.

    Variable Payload Test

    + values, and obtain the resulting ciphertext.

    Variable Payload Test

    For each supported key size and payload length, and any supported associated data length, nonce length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload - values, and obtain the resulting ciphertext.

    Variable Nonce Test

    + values, and obtain the resulting ciphertext.

    Variable Nonce Test

    For each supported key size and nonce length, and any supported associated data length, payload length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload - values, and obtain the resulting ciphertext.

    Variable Tag Test

    + values, and obtain the resulting ciphertext.

    Variable Tag Test

    For each supported key size and tag length, and any supported associated data length, payload length, and nonce length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload - values, and obtain the resulting ciphertext.

    Decryption-Verification Process Test

    + values, and obtain the resulting ciphertext.

    Decryption-Verification Process Test

    To test the decryption-verification functionality of AES-CCM, for each combination of supported associated data length, payload length, nonce length, and tag length, the evaluator shall supply a key value and 15 sets of input - plus ciphertext, and obtain the decrypted payload. Ten of the 15 input sets supplied should fail verification and - five should pass.

    AES-CTR Tests

    Test 1: Known Answer Tests (KATs)

    - There are four Known Answer Tests (KATs) described below. For all KATs, the plaintext, IV, and ciphertext values - shall be 128-bit blocks. The results from each test may either be obtained by the validator directly or by - supplying the inputs to the implementer and receiving the results in response. To determine correctness, the + plus ciphertext, and obtain the decrypted payload. Ten of the 15 input sets supplied should fail verification and + five should pass.

    AES-CTR Tests

    Test 1: Known Answer Tests (KATs)

    + There are four Known Answer Tests (KATs) described below. For all KATs, the plaintext, IV, and ciphertext values + shall be 128-bit blocks. The results from each test may either be obtained by the validator directly or by + supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good - implementation.

    + implementation.

    To test the encrypt functionality, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from encryption of the given plaintext using a key value of all zeros and an IV of - all zeros. Five plaintext values shall be encrypted with a 128-bit all zeros key, and the other five shall be - encrypted with a 256-bit all zeros key. To test the decrypt functionality, the evaluator shall perform the same - test as for encrypt, using 10 ciphertext values as input.

    + all zeros. Five plaintext values shall be encrypted with a 128-bit all zeros key, and the other five shall be + encrypted with a 256-bit all zeros key. To test the decrypt functionality, the evaluator shall perform the same + test as for encrypt, using 10 ciphertext values as input.

    To test the encrypt functionality, the evaluator shall supply a set of 10 key values and obtain the ciphertext - value that results from encryption of an all zeros plaintext using the given key value and an IV of all zeros. Five of the key values shall be 128-bit keys, and the other five shall be 256-bit keys. To test the decrypt + value that results from encryption of an all zeros plaintext using the given key value and an IV of all zeros. Five of the key values shall be 128-bit keys, and the other five shall be 256-bit keys. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using an all zero ciphertext value as - input.

    + input.

    To test the encrypt functionality, the evaluator shall supply the two sets of key values described below and obtain the ciphertext values that result from AES encryption of an all zeros plaintext using the given key values - an an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second shall have 256 256-bit - keys. Key_i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i - in [1, N]. To test the decrypt functionality, the evaluator shall supply the two sets of key and ciphertext + an an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second shall have 256 256-bit + keys. Key_i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i + in [1, N]. To test the decrypt functionality, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from decryption of the given ciphertext - using the given key values and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit - key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit pairs. Key_i in each - set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros for i in [1, N]. The ciphertext + using the given key values and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit + key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit pairs. Key_i in each + set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros for i in [1, N]. The ciphertext value in each pair shall be the value that results in an all zeros plaintext when decrypted with its corresponding - key.

    + key.

    To test the encrypt functionality, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from encryption of the given plaintext using a 128-bit key value of - all zeros and using a 256 bit key value of all zeros, respectively, and an IV of all zeros. Plaintext value i in - each set shall have the leftmost bits be ones and the rightmost 128-i bits be zeros, for i in [1, 128]. To test + all zeros and using a 256 bit key value of all zeros, respectively, and an IV of all zeros. Plaintext value i in + each set shall have the leftmost bits be ones and the rightmost 128-i bits be zeros, for i in [1, 128]. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using ciphertext values of - the same form as the plaintext in the encrypt test as input.

    Test 2: Multi-Block Message Test

    + the same form as the plaintext in the encrypt test as input.

    Test 2: Multi-Block Message Test

    The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 less-than i - less-than-or-equal to 10. For each i the evaluator shall choose a key, IV, and plaintext message of length i - blocks and encrypt the message, using the mode to be tested, with the chosen key. The ciphertext shall be compared - to the result of encrypting the same plaintext message with the same key and IV using a known good implementation. The evaluator shall also test the decrypt functionality by decrypting an i-block message where 1 less-than i - less-than-or-equal to 10. For each i the evaluator shall choose a key and a ciphertext message of length i blocks - and decrypt the message, using the mode to be tested, with the chosen key. The plaintext shall be compared to the - result of decrypting the same ciphertext message with the same key using a known good implementation.

    Test 3: Monte-Carlo Test

    + less-than-or-equal to 10. For each i the evaluator shall choose a key, IV, and plaintext message of length i + blocks and encrypt the message, using the mode to be tested, with the chosen key. The ciphertext shall be compared + to the result of encrypting the same plaintext message with the same key and IV using a known good implementation. The evaluator shall also test the decrypt functionality by decrypting an i-block message where 1 less-than i + less-than-or-equal to 10. For each i the evaluator shall choose a key and a ciphertext message of length i blocks + and decrypt the message, using the mode to be tested, with the chosen key. The plaintext shall be compared to the + result of decrypting the same ciphertext message with the same key using a known good implementation.

    Test 3: Monte-Carlo Test

    For AES-CTR mode perform the Monte Carlo Test for ECB Mode on the encryption engine of the counter mode - implementation. There is no need to test the decryption engine.

    - The evaluator shall test the encrypt functionality using 200 plaintext/key pairs. 100 of these shall use 128 bit - keys, and 100 of these shall use 256 bit keys. The plaintext values shall be 128-bit blocks. For each pair, + implementation. There is no need to test the decryption engine.

    + The evaluator shall test the encrypt functionality using 200 plaintext/key pairs. 100 of these shall use 128 bit + keys, and 100 of these shall use 256 bit keys. The plaintext values shall be 128-bit blocks. For each pair, 1000 iterations shall be run as follows:

    For AES-ECB mode # Input: PT, Key @@ -3239,35 +3354,35 @@

    A.1 Strictly Optional R CT[i] = AES-ECB-Encrypt(Key, PT) PT = CT[i]

    - The ciphertext computed in the 1000th iteration is the result for that trial. This result shall be compared to - the result of running 1000 iterations with the same values using a known good implementation.

    + The ciphertext computed in the 1000th iteration is the result for that trial. This result shall be compared to + the result of running 1000 iterations with the same values using a known good implementation.

    FCS_HTTPS_EXT.1/Client HTTPS Protocol

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    -
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    -
    The application shall[selection, choose one of: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application +
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    +
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    +
    The application shall[selection: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the - revocation status in accordance with RFC 5280. + revocation status in accordance with RFC 5280.
    The evaluator shall examine the TSS and determine that enough detail is provided to - explain how the implementation complies with RFC 2818.

    + explain how the implementation complies with RFC 2818.

    Guidance
    - None.

    + None.

    Tests
    The evaluator shall attempt to establish an HTTPS connection with a webserver, observe the traffic with a packet analyzer, and verify that the connection succeeds - and that the traffic is identified as TLS or HTTPS.
    + and that the traffic is identified as TLS or HTTPS.
    None

    -
    Guidance
    None.

    -
    Tests
    Other tests are performed in conjunction with the TLS package.
    +
    Guidance
    None.

    +
    Tests
    Other tests are performed in conjunction with the TLS package.
    None

    -
    Guidance
    None.

    +
    Guidance
    None.

    Tests
      @@ -3277,48 +3392,48 @@

      A.1 Strictly Optional R
    • Test FCS_HTTPS_EXT.1.3/Client:1: The evaluator shall demonstrate that using a certificate without a valid - certification path results in the selected action in the SFR. If "notify the user" + certification path results in the selected action in the SFR. If "notify the user" is selected in the SFR, then the evaluator shall also determine that the user - is notified of the certificate validation failure. Using the administrative + is notified of the certificate validation failure. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate to be used in the - function, and demonstrate that the function succeeds. The evaluator then shall + function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that again, using a certificate without a valid certification path results in the selected action in the SFR, and if "notify the user" was selected in the SFR, the user is notified of the - validation failure.
    • + validation failure.

    FCS_HTTPS_EXT.1/Server HTTPS Protocol

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    -
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    +
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    +
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    The evaluator shall examine the TSS and determine that enough detail is provided to - explain how the implementation complies with RFC 2818.

    + explain how the implementation complies with RFC 2818.

    Guidance
    - None.

    + None.

    Tests
    The evaluator shall attempt to establish an HTTPS connection to the TOE using a client, observe the traffic with a packet analyzer, and verify that the connection - succeeds and that the traffic is identified as TLS or HTTPS.
    + succeeds and that the traffic is identified as TLS or HTTPS.
    None

    -
    Guidance
    None.

    -
    Tests
    Other tests are performed in conjunction with the TLS package.
    +
    Guidance
    None.

    +
    Tests
    Other tests are performed in conjunction with the TLS package.

    FCS_HTTPS_EXT.2 HTTPS Protocol with Mutual Authentication

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall[selection, choose one of: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the - revocation status in accordance with RFC 5280.
    + revocation status in accordance with RFC 5280.
    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
      @@ -3327,75 +3442,75 @@

      A.1 Strictly Optional R
    • Test FCS_HTTPS_EXT.2.1:1: The evaluator shall demonstrate that using a certificate without a - valid certification path results in the selected action in the SFR. Using the + valid certification path results in the selected action in the SFR. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate - to be used in the function, and demonstrate that the function succeeds. The + to be used in the function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that again, using a certificate without a valid certification path results in the selected - action in the SFR.
    • + action in the SFR.

    FCS_RBG_EXT.2 Random Bit Generation from Application

    The inclusion of this selection-based component depends upon selection in - FCS_RBG_EXT.1.1.
    + FCS_RBG_EXT.1.1.
    The application shall perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using[selection: Hash_DRBG (any), HMAC_DRBG (any), CTR_DRBG (AES)]
    Application Note: This requirement shall be included in STs in which - "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. + "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. The ST author should select the standard to which the RBG services comply (either SP 800-90A or FIPS - 140-2 Annex C).

    + 140-2 Annex C).

    SP 800-90A contains three different methods of generating random numbers; each of these, in turn, depends on underlying cryptographic primitives - (hash functions/ciphers). The ST author will select the function used (if SP 800-90A + (hash functions/ciphers). The ST author will select the function used (if SP 800-90A is selected), and include the specific underlying cryptographic primitives used in the - requirement or in the TSS. While any of the identified hash functions (SHA-1, SHA-224, + requirement or in the TSS. While any of the identified hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based - implementations for CTR_DRBG are allowed.
    -
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection, choose one of: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application + implementations for CTR_DRBG are allowed.
    +
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application Note: This requirement shall be included in STs in which - "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first + "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first selection in this requirement, the ST author selects "software-based noise source" if - any additional noise sources are used as input to the application's DRBG. Note that - the application must use the platform's DRBG to seed its DRBG.

    + any additional noise sources are used as input to the application's DRBG. Note that + the application must use the platform's DRBG to seed its DRBG.

    In the second selection in this requirement, the ST author selects the appropriate number of bits of entropy that corresponds to the greatest security - strength of the algorithms included in the ST. Security strength is defined in Tables - 2 and 3 of NIST SP 800-57A. For example, if the implementation includes 2048-bit RSA + strength of the algorithms included in the ST. Security strength is defined in Tables + 2 and 3 of NIST SP 800-57A. For example, if the implementation includes 2048-bit RSA (security strength of 112 bits) and AES 256 (security strength 256 bits), - then the ST author would select 256 bits.
    + then the ST author would select 256 bits.
    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
      The reference for the tests contained in this section is The Random Number Generator - Validation System (RNGVS). The evaluators shall conduct the following two tests. Note + Validation System (RNGVS). The evaluators shall conduct the following two tests. Note that the "expected values" are produced by a reference implementation of the algorithm - that is known to be correct. Proof of correctness is left to each Scheme. + that is known to be correct. Proof of correctness is left to each Scheme.
    • Test FCS_RBG_EXT.2.1:1: - The evaluators shall perform a Variable Seed Test. The evaluators shall + The evaluators shall perform a Variable Seed Test. The evaluators shall provide a set of 128 (Seed, DT) pairs to the TSF RBG function, - each 128 bits. The evaluators shall also provide a key (of the length appropriate - to the AES algorithm) that is constant for all 128 (Seed, DT) pairs. The DT value - is incremented by 1 for each set. The seed values shall have no repeats within - the set. The evaluators ensure that the values returned by the - TSF match the expected values.
    • + each 128 bits. The evaluators shall also provide a key (of the length appropriate + to the AES algorithm) that is constant for all 128 (Seed, DT) pairs. The DT value + is incremented by 1 for each set. The seed values shall have no repeats within + the set. The evaluators ensure that the values returned by the + TSF match the expected values.
    • Test FCS_RBG_EXT.2.1:2: - The evaluators shall perform a Monte Carlo Test. For this test, they supply + The evaluators shall perform a Monte Carlo Test. For this test, they supply an initial Seed and DT value to the TSF RBG function; each of - these is 128 bits. The evaluators shall also provide a key (of the length - appropriate to the AES algorithm) that is constant throughout the test. The + these is 128 bits. The evaluators shall also provide a key (of the length + appropriate to the AES algorithm) that is constant throughout the test. The evaluators then invoke the TSF RBG 10,000 times, with the DT value being incremented by 1 on each iteration, and the new seed for the subsequent iteration produced as specified in NIST-Recommended Random Number Generator Based on ANSI X9.31 Appendix A.2.4 Using the 3-Key Triple DES and AES - Algorithms, Section E.3. The evaluators ensure that the 10,000th value produced - matches the expected value.
    • + Algorithms, Section E.3. The evaluators ensure that the 10,000th value produced + matches the expected value.
      @@ -3403,232 +3518,232 @@

      A.1 Strictly Optional R
    • Test FCS_RBG_EXT.2.1:3: - The evaluator shall perform 15 trials for the RNG implementation. If the RNG is - configurable, the evaluator shall perform 15 trials for each configuration. The + The evaluator shall perform 15 trials for the RNG implementation. If the RNG is + configurable, the evaluator shall perform 15 trials for each configuration. The evaluator shall also confirm that the operational guidance contains appropriate - instructions for configuring the RNG functionality.

      + instructions for configuring the RNG functionality.

      If the RNG has prediction resistance enabled, each trial consists of (1) instantiate DRBG, (2) generate the first block of random bits (3) generate a - second block of random bits (4) uninstantiate. The evaluator verifies that the - second block of random bits is the expected value. The evaluator shall generate - eight input values for each trial. The first is a count (0 – 14). The next three + second block of random bits (4) uninstantiate. The evaluator verifies that the + second block of random bits is the expected value. The evaluator shall generate + eight input values for each trial. The first is a count (0 – 14). The next three are entropy input, nonce, and personalization string for the instantiate - operation. The next two are additional input and entropy input for the first call - to generate. The final two are additional input and entropy input for the second - call to generate. These values are randomly generated. “generate one block of + operation. The next two are additional input and entropy input for the first call + to generate. The final two are additional input and entropy input for the second + call to generate. These values are randomly generated. “generate one block of random bits” means to generate random bits with number of returned bits equal to - the Output Block Length (as defined in NIST SP 800-90A).

      + the Output Block Length (as defined in NIST SP 800-90A).

      If the RNG does not have prediction resistance, each trial consists of (1) instantiate DRBG, (2) generate the first block of random bits (3) reseed, (4) - generate a second block of random bits (5) uninstantiate. The evaluator verifies - that the second block of random bits is the expected value. The evaluator shall - generate eight input values for each trial. The first is a count (0 – 14). The + generate a second block of random bits (5) uninstantiate. The evaluator verifies + that the second block of random bits is the expected value. The evaluator shall + generate eight input values for each trial. The first is a count (0 – 14). The next three are entropy input, nonce, and personalization string for the - instantiate operation. The fifth value is additional input to the first call to - generate. The sixth and seventh are additional input and entropy input to the call - to reseed. The final value is additional input to the second generate call.

      + instantiate operation. The fifth value is additional input to the first call to + generate. The sixth and seventh are additional input and entropy input to the call + to reseed. The final value is additional input to the second generate call.

      The following paragraphs contain more information on some of the input values to - be generated/selected by the evaluator.

      Entropy input: the length of the entropy input value must equal the seed length.

      Nonce: If a nonce is supported (CTR_DRBG with no Derivation Function does not use - a nonce), the nonce bit length is one-half the seed length. + be generated/selected by the evaluator.

      Entropy input: the length of the entropy input value must equal the seed length.

      Nonce: If a nonce is supported (CTR_DRBG with no Derivation Function does not use + a nonce), the nonce bit length is one-half the seed length.

      Personalization string: The length of the personalization string must be - less then or equal to seed length. If the implementation only supports one - personalization string length, then the same length can be used for both values. + less then or equal to seed length. If the implementation only supports one + personalization string length, then the same length can be used for both values. If more than one string length is support, the evaluator shall use personalization - strings of two different lengths. If the implementation does not use a - personalization string, no value needs to be supplied.

      Additional input: the additional input bit lengths have the same defaults - and restrictions as the personalization string lengths.
    • + strings of two different lengths. If the implementation does not use a + personalization string, no value needs to be supplied.

      Additional input: the additional input bit lengths have the same defaults + and restrictions as the personalization string lengths.

    Documentation shall be produced - and the evaluator shall perform the activities - in accordance with Appendix C - Entropy Documentation and Assessment and the - Clarification to the Entropy Documentation and Assessment Annex.

    -
    Guidance
    None.

    + Clarification to the Entropy Documentation and Assessment Annex.

    +
    Guidance
    None.

    Tests
    In the future, specific statistical testing (in line with NIST SP 800-90B) will - be required to verify the entropy estimates.
    + be required to verify the entropy estimates.

    B.2 Class: Identification and Authentication (FIA)

    FIA_X509_EXT.1 X.509 Certificate Validation

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
    • RFC 5280 certificate validation and certificate path validation.
    • The certificate path must terminate with a trusted CA certificate.
    • The application shall validate a certificate path by ensuring the presence of the +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
      • RFC 5280 certificate validation and certificate path validation.
      • The certificate path must terminate with a trusted CA certificate.
      • The application shall validate a certificate path by ensuring the presence of the basicConstraints extension and that the CA flag is set to TRUE for all CA - certificates, and that any path constraints are met.
      • The application shall validate that any CA certificate includes caSigning purpose in the key + certificates, and that any path constraints are met.
      • The application shall validate that any CA certificate includes caSigning purpose in the key usage field
      • The application shall validate the revocation status of the certificate using - [selection: OCSP as specified in RFC 6960, CRL as specified in RFC 5280 Section 6.3, CRL as specified in RFC 8603, an OCSP TLS Status Request Extension (OCSP stapling) as specified in RFC 6066, OCSP TLS Multi-Certificate Status Request Extension (i.e., OCSP Multi-Stapling) as specified in RFC 6961].
      • The application shall validate the extendedKeyUsage (EKU) field according to the + [selection: OCSP as specified in RFC 6960, CRL as specified in RFC 5280 Section 6.3, CRL as specified in RFC 8603, an OCSP TLS Status Request Extension (OCSP stapling) as specified in RFC 6066, OCSP TLS Multi-Certificate Status Request Extension (i.e., OCSP Multi-Stapling) as specified in RFC 6961].
      • The application shall validate the extendedKeyUsage (EKU) field according to the following rules:
        • Certificates used for trusted updates and executable code integrity verification shall have the Code Signing Purpose (id-kp 3 with OID 1.3.6.1.5.5.7.3.3) in the - extendedKeyUsage field.
        • Server certificates presented for TLS shall have the Server Authentication - purpose (id-kp 1 with OID 1.3.6.1.5.5.7.3.1) in the EKU field.
        • + extendedKeyUsage field.
        • Server certificates presented for TLS shall have the Server Authentication + purpose (id-kp 1 with OID 1.3.6.1.5.5.7.3.1) in the EKU field.
        • Client certificates presented for TLS shall have the Client Authentication purpose - (id-kp 2 with OID 1.3.6.1.5.5.7.3.2) in the EKU field.
        • + (id-kp 2 with OID 1.3.6.1.5.5.7.3.2) in the EKU field.
        • S/MIME certificates presented for email encryption and signature shall have the - Email Protection purpose (id-kp 4 with OID 1.3.6.1.5.5.7.3.4) in the EKU field.
        • + Email Protection purpose (id-kp 4 with OID 1.3.6.1.5.5.7.3.4) in the EKU field.
        • OCSP certificates presented for OCSP responses shall have the OCSP Signing purpose - (id-kp 9 with OID 1.3.6.1.5.5.7.3.9) in the EKU field.
        • + (id-kp 9 with OID 1.3.6.1.5.5.7.3.9) in the EKU field.
        • Server certificates presented for EST shall have the CMC Registration Authority - (RA) purpose (id-kp-cmcRA with OID 1.3.6.1.5.5.7.3.28) in the EKU field.
      Application + (RA) purpose (id-kp-cmcRA with OID 1.3.6.1.5.5.7.3.28) in the EKU field.
    Application Note: - FIA_X509_EXT.1.1 lists the rules for validating certificates. The ST author shall select whether - revocation status is verified using OCSP or CRLs. FIA_X509_EXT.2 requires that certificates are - used for HTTPS, TLS, and DTLS; this use requires that the extendedKeyUsage rules are verified. If OCSP is not supported the EKU provision for checking the OCSP Signing purpose is met by - default.

    + FIA_X509_EXT.1.1 lists the rules for validating certificates. The ST author shall select whether + revocation status is verified using OCSP or CRLs. FIA_X509_EXT.2 requires that certificates are + used for HTTPS, TLS, and DTLS; this use requires that the extendedKeyUsage rules are verified. If OCSP is not supported the EKU provision for checking the OCSP Signing purpose is met by + default.

    This requirement is included if the protocol(s) selected in FTP_DIT_EXT.1.1 require the use of - certificates. If the TOE implements TLS as a HTTPS/TLS server with no mutual authentication, - this requirement is not applicable.

    - OCSP stapling and OCSP multi-stapling only support TLS server certificate validation. If other - certificate types are validated, either OCSP or CRL should be claimed.

    + certificates. If the TOE implements TLS as a HTTPS/TLS server with no mutual authentication, + this requirement is not applicable.

    + OCSP stapling and OCSP multi-stapling only support TLS server certificate validation. If other + certificate types are validated, either OCSP or CRL should be claimed.

    Regardless of the selection of "implement functionality or invoke platform-provided functionality," the validation is expected to end in a trusted root CA certificate in a root - store managed by the platform.
    -
    The application shall treat a certificate as a CA certificate only if the basicConstraints extension is present and the CA flag is set to TRUE.
    Application + store managed by the platform.
    +
    The application shall treat a certificate as a CA certificate only if the basicConstraints extension is present and the CA flag is set to TRUE.
    Application Note: This requirement applies to certificates that are used and processed by the - TSF and restricts the certificates that may be added as trusted CA certificates.
    + TSF and restricts the certificates that may be added as trusted CA certificates.
    The evaluator shall ensure the TSS describes where the check of validity of the certificates - takes place. The evaluator ensures the TSS also provides a description of the certificate - path validation algorithm.

    -
    Guidance
    None.

    + takes place. The evaluator ensures the TSS also provides a description of the certificate + path validation algorithm.

    +
    Guidance
    None.

    Tests
      The tests described must be performed in conjunction with the other certificate services evaluation - activities, including the functions in FIA_X509_EXT.2.1. The tests for the extendedKeyUsage rules are - performed in conjunction with the uses that require those rules. If the application supports chains of + activities, including the functions in FIA_X509_EXT.2.1. The tests for the extendedKeyUsage rules are + performed in conjunction with the uses that require those rules. If the application supports chains of length four or greater, the evaluator shall create a chain of at least four certificates: - the node certificate to be tested, two Intermediate CAs, and the self-signed Root CA. If + the node certificate to be tested, two Intermediate CAs, and the self-signed Root CA. If the application supports a maximum trust depth of two, then a chain with no Intermediate - CA should instead be created. + CA should instead be created.
    • Test FIA_X509_EXT.1.1:1: The evaluator shall demonstrate that validating a certificate without a valid certification path results in the function - failing, for each of the following reasons, in turn:
      • by establishing a certificate path in which one of the issuing certificates is not a CA certificate,
      • by omitting the basicConstraints field in one of the issuing certificates,
      • by setting the basicConstraints field in an issuing certificate to have CA=False,
      • by omitting the CA signing bit of the key usage field in an issuing certificate, and
      • by setting the path length field of a valid CA field to a value strictly less than the certificate path.
      + failing, for each of the following reasons, in turn:
      • by establishing a certificate path in which one of the issuing certificates is not a CA certificate,
      • by omitting the basicConstraints field in one of the issuing certificates,
      • by setting the basicConstraints field in an issuing certificate to have CA=False,
      • by omitting the CA signing bit of the key usage field in an issuing certificate, and
      • by setting the path length field of a valid CA field to a value strictly less than the certificate path.
      The evaluator shall then establish a valid certificate path consisting of valid CA certificates, and demonstrate that the - function succeeds. The evaluator shall then remove trust in one of the CA certificates, and show that the function fails.
    • + function succeeds. The evaluator shall then remove trust in one of the CA certificates, and show that the function fails.
    • Test FIA_X509_EXT.1.1:2: - The evaluator shall demonstrate that validating an expired certificate results in the function failing.
    • + The evaluator shall demonstrate that validating an expired certificate results in the function failing.
    • Test FIA_X509_EXT.1.1:3: The evaluator shall test that the TOE can properly handle revoked certificates-“conditional on whether CRL, OCSP, OCSP Stapling or OCSP Multi-stapling is selected; if multiple methods are selected, then the following tests shall be performed for each method: -
      • The evaluator shall test revocation of the node certificate.
      • The evaluator shall also test revocation of an intermediate CA certificate (i.e. the intermediate - CA certificate should be revoked by the root CA), if intermediate CA certificates are supported. If OCSP stapling per RFC 6066 is the only supported revocation method, this test is omitted.
      • The evaluator shall ensure that a valid certificate is used, and that the validation function - succeeds. The evaluator then attempts the test with a certificate that has been revoked (for each +
        • The evaluator shall test revocation of the node certificate.
        • The evaluator shall also test revocation of an intermediate CA certificate (i.e. the intermediate + CA certificate should be revoked by the root CA), if intermediate CA certificates are supported. If OCSP stapling per RFC 6066 is the only supported revocation method, this test is omitted.
        • The evaluator shall ensure that a valid certificate is used, and that the validation function + succeeds. The evaluator then attempts the test with a certificate that has been revoked (for each method chosen in the selection) to ensure when the certificate is no longer valid that the - validation function fails.
      • + validation function fails.
    • Test FIA_X509_EXT.1.1:4: If any OCSP option is selected, the evaluator shall configure the OCSP server or use a man-in-the-middle tool to present a certificate that does not have the OCSP signing purpose and verify - that validation of the OCSP response fails. If CRL is selected, the evaluator shall configure the CA + that validation of the OCSP response fails. If CRL is selected, the evaluator shall configure the CA to sign a CRL with a certificate that does not have the cRLsign key usage bit set, and verify that - validation of the CRL fails.
    • + validation of the CRL fails.
    • Test FIA_X509_EXT.1.1:5: The evaluator shall modify any byte in the first eight bytes of the certificate and demonstrate that - the certificate fails to validate. (The certificate will fail to parse correctly.) + the certificate fails to validate. (The certificate will fail to parse correctly.)
    • Test FIA_X509_EXT.1.1:6: The evaluator shall modify any byte in the last byte of the certificate and demonstrate that the - certificate fails to validate. (The signature on the certificate will not validate.) + certificate fails to validate. (The signature on the certificate will not validate.)
    • Test FIA_X509_EXT.1.1:7: The evaluator shall modify any byte in the public key of the certificate and demonstrate that the - certificate fails to validate. (The signature on the certificate will not validate.) + certificate fails to validate. (The signature on the certificate will not validate.)
    • Test FIA_X509_EXT.1.1:8: - (Conditional on support for EC certificates as indicated in FCS_COP.1/Sig). The evaluator shall establish a valid, + (Conditional on support for EC certificates as indicated in FCS_COP.1/Sig). The evaluator shall establish a valid, trusted certificate chain consisting of an EC leaf certificate, an EC Intermediate CA certificate not designated as a trust anchor, and an EC certificate designated as a trusted anchor, where the elliptic - curve parameters are specified as a named curve. The evaluator shall confirm that the TOE validates - the certificate chain.
    • + curve parameters are specified as a named curve. The evaluator shall confirm that the TOE validates + the certificate chain.
    • Test FIA_X509_EXT.1.1:9: - (Conditional on support for EC certificates as indicated in FCS_COP.1/Sig). The evaluator shall replace + (Conditional on support for EC certificates as indicated in FCS_COP.1/Sig). The evaluator shall replace the intermediate certificate in the certificate chain for Test 9 with a modified certificate, where the modified intermediate CA has a public key information field where the EC parameters uses an explicit format version of the Elliptic Curve parameters in the public key information field of the intermediate CA certificate from Test 9, and the modified Intermediate CA certificate is signed by - the trusted EC root CA, but having no other changes. The evaluator shall confirm the TOE treats the - certificate as invalid.
    • + the trusted EC root CA, but having no other changes. The evaluator shall confirm the TOE treats the + certificate as invalid.
    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
      The tests described must be performed in conjunction with the other certificate - services evaluation activities, including the functions in FIA_X509_EXT.2.1. If the application supports chains of length four or greater, + services evaluation activities, including the functions in FIA_X509_EXT.2.1. If the application supports chains of length four or greater, the evaluator shall create a chain of at least four certificates: the - node certificate to be tested, two Intermediate CAs, and the self-signed Root CA. If the application supports a maximum trust depth of two, then a chain with - no Intermediate CA should instead be created. + node certificate to be tested, two Intermediate CAs, and the self-signed Root CA. If the application supports a maximum trust depth of two, then a chain with + no Intermediate CA should instead be created.
    • Test FIA_X509_EXT.1.2:1: The evaluator shall ensure that the certificate of at least one of the CAs in the chain does not contain the - basicConstraints extension. The evaluator shall confirm that validation of the certificate path + basicConstraints extension. The evaluator shall confirm that validation of the certificate path fails (i) as part of the validation of the peer certificate belonging to this chain; and/or - (ii) when attempting to add the CA certificate without the basicConstraints extension to the TOE's trust store.
    • + (ii) when attempting to add the CA certificate without the basicConstraints extension to the TOE's trust store.
    • Test FIA_X509_EXT.1.2:2: The evaluator shall ensure that the certificate of at least one of the CAs in the chain has the CA flag in the - basicConstraints extension not set (or set to FALSE). The evaluator shall confirm that validation of the certificate + basicConstraints extension not set (or set to FALSE). The evaluator shall confirm that validation of the certificate path fails (i) as part of the validation of the peer certificate belonging to this chain; and/or (ii) when attempting - to add the CA certificate with the CA flag not set (or set to FALSE) in the basicConstraints extension to the TOE's trust store.
    • + to add the CA certificate with the CA flag not set (or set to FALSE) in the basicConstraints extension to the TOE's trust store.

    FIA_X509_EXT.2 X.509 Certificate Authentication

    The inclusion of this selection-based component depends upon selection in - FTP_DIT_EXT.1.1.
    + FTP_DIT_EXT.1.1.
    -
    The application shall use X.509v3 certificates as defined by RFC 5280 to support authentication for[selection: HTTPS, TLS, DTLS, SSH, IPsec].
    Application +
    The application shall use X.509v3 certificates as defined by RFC 5280 to support authentication for[selection: HTTPS, TLS, DTLS, SSH, IPsec].
    Application Note: This requirement is included if the protocol(s) selected in FTP_DIT_EXT.1.1 require the use of certificates - to authenticate the remote entity. For example, if the TOE or platform implements TLS as a HTTPS/TLS server - with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates - as a TLS client, X509 authentication must be claimed. + to authenticate the remote entity. For example, if the TOE or platform implements TLS as a HTTPS/TLS server + with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates + as a TLS client, X509 authentication must be claimed.
    -
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection, choose one of: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application +
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application Note: Often a connection must be established to perform a verification of the revocation - status of a certificate - either to download a CRL or to perform OCSP. The selection + status of a certificate - either to download a CRL or to perform OCSP. The selection is used to describe the behavior in the event that such a connection cannot be - established (for example, due to a network error). If the TOE has + established (for example, due to a network error). If the TOE has determined the certificate valid according to all other rules in FIA_X509_EXT.1, - the behavior indicated in the selection shall determine the validity. The + the behavior indicated in the selection shall determine the validity. The TOE must not accept the certificate if it fails any of the other - validation rules in FIA_X509_EXT.1.
    + validation rules in FIA_X509_EXT.1.
    The evaluator shall check the TSS to ensure that it describes how the TOE chooses which certificates to use, and any necessary instructions in the administrative guidance for configuring the operating environment - so that the TOE can use the certificates.

    + so that the TOE can use the certificates.

    The evaluator shall examine the TSS to confirm that it describes the behavior of the TOE when a connection cannot be established during - the validity check of a certificate used in establishing a trusted channel. The - evaluator shall verify that any distinctions between trusted channels are described. + the validity check of a certificate used in establishing a trusted channel. The + evaluator shall verify that any distinctions between trusted channels are described. If the requirement that the administrator is able to specify the default action, then the evaluator shall ensure that the operational guidance contains instructions on how - this configuration action is performed.

    -
    Guidance
    None.

    + this configuration action is performed.

    +
    Guidance
    None.

    Tests
      @@ -3638,49 +3753,49 @@

      A.1 Strictly Optional R The evaluator shall demonstrate that using a valid certificate that requires certificate validation checking to be performed in at least some part by - communicating with a non-TOE IT entity. The evaluator shall then + communicating with a non-TOE IT entity. The evaluator shall then manipulate the environment so that the TOE is unable to verify the validity of the certificate, and observe that the action selected in - FIA_X509_EXT.2.2 is performed. If the selected action is + FIA_X509_EXT.2.2 is performed. If the selected action is administrator-configurable, then the evaluator shall follow the operational guidance to determine that all supported administrator-configurable options behave - in their documented manner. + in their documented manner.
    • Test FIA_X509_EXT.2.2:2: The evaluator shall demonstrate that an invalid certificate that requires certificate validation checking to be performed in at least some part by - communicating with a non-TOE IT entity cannot be accepted. + communicating with a non-TOE IT entity cannot be accepted.

    B.3 Class: Protection of the TSF (FPT)

    FPT_TUD_EXT.2 Integrity for Installation and Update

    The inclusion of this selection-based component depends upon selection in - FPT_TUD_EXT.1.5.
    + FPT_TUD_EXT.1.5.
    -
    The application shall be distributed using the format of the platform-supported package manager.
    -
    The application shall be packaged such that its removal results in the deletion of all traces of the application, with the exception of configuration settings, output files, and audit/log events.
    Application +
    The application shall be distributed using the format of the platform-supported package manager.
    +
    The application shall be packaged such that its removal results in the deletion of all traces of the application, with the exception of configuration settings, output files, and audit/log events.
    Application Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through - means provided by the OS.
    -
    The application installation package shall be digitally signed such that its platform can cryptographically verify them prior to installation.
    Application + means provided by the OS.
    +
    The application installation package shall be digitally signed such that its platform can cryptographically verify them prior to installation.
    Application Note: The specifics of the verification of installation packages involves - requirements on the platform (and not the application), so these are not fully specified here.
    + requirements on the platform (and not the application), so these are not fully specified here.
    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
    The evaluator shall verify that application updates are distributed in the - format supported by the platform. This varies per platform: + format supported by the platform. This varies per platform:
      @@ -3690,9 +3805,9 @@

      A.1 Strictly Optional R The evaluator shall ensure that the application is packaged in the standard Windows Installer (.MSI) format, the Windows Application Software (.EXE) format signed using the Microsoft Authenticode process, or the - Windows Universal Application package (.APPX) format. See + Windows Universal Application package (.APPX) format. See https://msdn.microsoft.com/en-us/library/ms537364(v=vs.85).aspx for details - regarding Authenticode signing. + regarding Authenticode signing.

    @@ -3701,7 +3816,7 @@

    A.1 Strictly Optional R The evaluator shall ensure that the application is - packaged in the IPA format. + packaged in the IPA format.
      @@ -3710,9 +3825,9 @@

      A.1 Strictly Optional R The evaluator shall ensure that the application is packaged in the format of the package management infrastructure of the chosen - distribution. For example, applications running on Red Hat and Red Hat derivatives - shall be packaged in RPM format. Applications running on Debian and Debian - derivatives shall be packaged in DEB format. + distribution. For example, applications running on Red Hat and Red Hat derivatives + shall be packaged in RPM format. Applications running on Debian and Debian + derivatives shall be packaged in DEB format.

      @@ -3720,7 +3835,7 @@

      A.1 Strictly Optional R The evaluator shall ensure that the application is - packaged in the PKG format. + packaged in the PKG format.

      @@ -3728,13 +3843,13 @@

      A.1 Strictly Optional R The evaluator shall ensure that application is packaged - in the DMG format, the PKG format, or the MPKG format. + in the DMG format, the PKG format, or the MPKG format.

    -
    None.

    -
    Guidance
    None.

    +
    None.

    +
    Guidance
    None.

    Tests
    • Test FPT_TUD_EXT.2.2:2[conditional, Platforms:Microsoft Windows: Microsoft Windows operating systems.]: - The evaluator shall install the application and then locate all of its executable files. + The evaluator shall install the application and then locate all of its executable files. The evaluator shall then, for each file, save off either a hash of the file or a copy of the - file itself. The evaluator shall then run the application and exercise all features of - the application as described in the ST. The evaluator shall then compare each executable - file with the either the saved hash or the saved copy of the files. The evaluator shall - verify that these are identical.
    • + file itself. The evaluator shall then run the application and exercise all features of + the application as described in the ST. The evaluator shall then compare each executable + file with the either the saved hash or the saved copy of the files. The evaluator shall + verify that these are identical.
    • Test FPT_TUD_EXT.2.2:4[conditional, Platforms:Linux: Linux-based operating systems other than Android.]: - The evaluator shall install the application and then locate all of its executable files. + The evaluator shall install the application and then locate all of its executable files. The evaluator shall then, for each file, save off either a hash of the file or a copy of the - file itself. The evaluator shall then run the application and exercise all features of - the application as described in the ST. The evaluator shall then compare each executable - file with the either the saved hash or the saved copy of the files. The evaluator shall - verify that these are identical.
    • + file itself. The evaluator shall then run the application and exercise all features of + the application as described in the ST. The evaluator shall then compare each executable + file with the either the saved hash or the saved copy of the files. The evaluator shall + verify that these are identical.
    • Test FPT_TUD_EXT.2.2:5[conditional, Platforms:Oracle Solaris: Oracle's enterprise operating system.]: - The evaluator shall install the application and then locate all of its executable files. + The evaluator shall install the application and then locate all of its executable files. The evaluator shall then, for each file, save off either a hash of the file or a copy of the - file itself. The evaluator shall then run the application and exercise all features of - the application as described in the ST. The evaluator shall then compare each executable - file with the either the saved hash or the saved copy of the files. The evaluator shall - verify that these are identical.
    • + file itself. The evaluator shall then run the application and exercise all features of + the application as described in the ST. The evaluator shall then compare each executable + file with the either the saved hash or the saved copy of the files. The evaluator shall + verify that these are identical.
    • Test FPT_TUD_EXT.2.2:6[conditional, Platforms:Apple macOS: Apple's operating system for MACs.]: - The evaluator shall install the application and then locate all of its executable files. + The evaluator shall install the application and then locate all of its executable files. The evaluator shall then, for each file, save off either a hash of the file or a copy of the - file itself. The evaluator shall then run the application and exercise all features of - the application as described in the ST. The evaluator shall then compare each executable - file with the either the saved hash or the saved copy of the files. The evaluator shall - verify that these are identical.
    • + file itself. The evaluator shall then run the application and exercise all features of + the application as described in the ST. The evaluator shall then compare each executable + file with the either the saved hash or the saved copy of the files. The evaluator shall + verify that these are identical.
    The evaluator shall verify that the TSS identifies how the application installation package - is signed by an authorized source. The definition of an authorized source must be contained - in the TSS.

    -
    Guidance
    None.

    -
    Tests
    None.
    + is signed by an authorized source. The definition of an authorized source must be contained + in the TSS.

    +
    Guidance
    None.

    +
    Tests
    None.

    Appendix C - Entropy Documentation and Assessment

    This appendix describes the required supplementary information for the entropy - source used by the TOE.
    + source used by the TOE.
    The documentation of the entropy source should be detailed enough that, after reading, the evaluator will thoroughly understand the entropy source and why - it can be relied upon to provide sufficient entropy. This documentation should + it can be relied upon to provide sufficient entropy. This documentation should include multiple detailed sections: design description, entropy justification, - operating conditions, and health testing. This documentation is not required to - be part of the TSS. + operating conditions, and health testing. This documentation is not required to + be part of the TSS.

    C.1 Design Description

    Documentation shall include the design of the entropy source as a whole, - including the interaction of all entropy source components. Any information + including the interaction of all entropy source components. Any information that can be shared regarding the design should also be included for any - third-party entropy sources that are included in the product. + third-party entropy sources that are included in the product.
    The documentation will describe the operation of the entropy source to include, how entropy is produced, and how unprocessed (raw) data can be - obtained from within the entropy source for testing purposes. The documentation + obtained from within the entropy source for testing purposes. The documentation should walk through the entropy source design indicating where the entropy comes from, where the entropy output is passed next, any post-processing of the raw outputs (hash, XOR, etc.), if/where it is stored, and finally, - how it is output from the entropy source. Any conditions placed on the + how it is output from the entropy source. Any conditions placed on the process (e.g., blocking) should also be described in the entropy source - design. Diagrams and examples are encouraged. + design. Diagrams and examples are encouraged.
    This design must also include a description of the content of the security boundary of the entropy source and a description of how the security boundary ensures that an adversary outside the boundary - cannot affect the entropy rate.
    + cannot affect the entropy rate.
    If implemented, the design description shall include a description - of how third-party applications can add entropy to the RBG. A + of how third-party applications can add entropy to the RBG. A description of any RBG state saving between power-off and - power-on shall be included.

    C.2 Entropy Justification

    + power-on shall be included.

    C.2 Entropy Justification

    There should be a technical argument for where the unpredictability in the source comes from and why there is confidence in the entropy source delivering sufficient entropy for the uses made of the RBG output - (by this particular TOE). This argument will include a description of - the expected min-entropy rate (i.e. the minimum entropy (in bits) per + (by this particular TOE). This argument will include a description of + the expected min-entropy rate (i.e. the minimum entropy (in bits) per bit or byte of source data) and explain that sufficient entropy is - going into the TOE randomizer seeding process. This discussion will + going into the TOE randomizer seeding process. This discussion will be part of a justification for why the entropy source can be relied - upon to produce bits with entropy.
    + upon to produce bits with entropy.
    The amount of information necessary to justify the expected min-entropy rate depends on the type of entropy source included in the - product.
    + product.
    For developer provided entropy sources, in order to justify the min-entropy rate, it is expected that a large number of raw source bits will be collected, statistical tests will be performed, and the - min-entropy rate determined from the statistical tests. While no + min-entropy rate determined from the statistical tests. While no particular statistical tests are required at this time, it is expected that some testing is necessary in order to determine the amount of - min-entropy in each output.
    + min-entropy in each output.
    For third party provided entropy sources, in which the TOE vendor has limited access to the design and raw entropy data of the source, the documentation will indicate an estimate of the amount of min-entropy - obtained from this third-party source. It is acceptable for the vendor + obtained from this third-party source. It is acceptable for the vendor to “assume” an amount of min-entropy, however, this assumption must be - clearly stated in the documentation provided. In particular, the + clearly stated in the documentation provided. In particular, the min-entropy estimate must be specified and the assumption included - in the ST.
    + in the ST.
    Regardless of type of entropy source, the justification will also include how the DRBG is initialized with the entropy stated in the ST, for example by verifying that the min-entropy rate is multiplied by the amount of source data used to seed the DRBG or that the rate of entropy expected based on the amount of source data is explicitly stated and - compared to the statistical rate. If the amount of source data used to + compared to the statistical rate. If the amount of source data used to seed the DRBG is not clear or the calculated rate is not explicitly - related to the seed, the documentation will not be considered complete.
    + related to the seed, the documentation will not be considered complete.
    The entropy justification shall not include any data added from - any third-party application or from any state saving between restarts.

    C.3 Operating Conditions

    + any third-party application or from any state saving between restarts.

    C.3 Operating Conditions

    The entropy rate may be affected by conditions outside the control - of the entropy source itself. For example, voltage, frequency, + of the entropy source itself. For example, voltage, frequency, temperature, and elapsed time after power-on are just a few of the - factors that may affect the operation of the entropy source. As such, documentation will also include the range of operating conditions - under which the entropy source is expected to generate random data. It will clearly describe the measures that have been taken in the + factors that may affect the operation of the entropy source. As such, documentation will also include the range of operating conditions + under which the entropy source is expected to generate random data. It will clearly describe the measures that have been taken in the system design to ensure the entropy source continues to operate - under those conditions. Similarly, documentation shall describe + under those conditions. Similarly, documentation shall describe the conditions under which the entropy source is known to malfunction - or become inconsistent. Methods used to detect failure or degradation - of the source shall be included.

    C.4 Health Testing

    + or become inconsistent. Methods used to detect failure or degradation + of the source shall be included.

    C.4 Health Testing

    More specifically, all entropy source health tests and their rationale - will be documented. This will include a description of the health tests, + will be documented. This will include a description of the health tests, the rate and conditions under which each health test is performed (e.g., at startup, continuously, or on-demand), the expected results for each health test, and rationale indicating why each test is believed to be appropriate for detecting one or more failures in the - entropy source.

    Appendix D - Application Software Equivalency Guidelines

    D.1 Introduction

    + entropy source.

    Appendix D - Application Software Equivalency Guidelines

    D.1 Introduction

    The purpose of equivalence in PP-based evaluations is to find a balance between evaluation rigor and commercial practicability—to ensure that evaluations meet customer expectations while recognizing that there is little to be gained from requiring that every - variation in a product or platform be fully tested. If a product is found to be compliant with a PP on one platform, then all - equivalent products on equivalent platforms are also considered to be compliant with the PP.

    + variation in a product or platform be fully tested. If a product is found to be compliant with a PP on one platform, then all + equivalent products on equivalent platforms are also considered to be compliant with the PP.

    A Vendor can make a claim of equivalence if the Vendor believes that a particular instance of their Product implements PP-specified security functionality in a way equivalent to the implementation of the same functionality on another instance of their Product on - which the functionality was tested. The Product instances can differ in version number or feature level (model), or the instances may - run on different platforms. Equivalency can be used to reduce the testing required across claimed evaluated configurations. It can - also be used during Assurance Maintenance to reduce testing needed to add more evaluated configurations to a certification.

    - These equivalency guidelines do not replace Assurance Maintenance requirements or NIAP Policy #5 requirements for CAVP certificates. - Nor may equivalency be used to leverage evaluations with expired certifications.

    - These Equivalency Guidelines represent a shift from complete testing of all product instances to more of a risk-based approach. + which the functionality was tested. The Product instances can differ in version number or feature level (model), or the instances may + run on different platforms. Equivalency can be used to reduce the testing required across claimed evaluated configurations. It can + also be used during Assurance Maintenance to reduce testing needed to add more evaluated configurations to a certification.

    + These equivalency guidelines do not replace Assurance Maintenance requirements or NIAP Policy #5 requirements for CAVP certificates. + Nor may equivalency be used to leverage evaluations with expired certifications.

    + These Equivalency Guidelines represent a shift from complete testing of all product instances to more of a risk-based approach. Rather than require that every combination of product and platform be tested, these guidelines support an approach that recognizes that products are being used in a variety of environments—and often in cloud environments over where the vendor (and sometimes the - customer) have little or no control over the underlying hardware. Developers should be responsible for the security functionality of + customer) have little or no control over the underlying hardware. Developers should be responsible for the security functionality of their applications on the platforms they are developed for—whether that is an operating system, a virtual machine, or a software-based - execution environment such as a container. But those platforms may themselves run within other environments—virtual machines or - operating systems—that completely abstract away the underlying hardware from the application. The developer should not be held - accountable for security functionality that is implemented by platform layers that are abstracted away. The implication is that + execution environment such as a container. But those platforms may themselves run within other environments—virtual machines or + operating systems—that completely abstract away the underlying hardware from the application. The developer should not be held + accountable for security functionality that is implemented by platform layers that are abstracted away. The implication is that not all security functionality will necessarily be tested for all platform layers down to the hardware for all evaluated - configurations—especially for applications developed for software-based execution environments such as containers. For these cases, - the balancing of evaluation rigor and commercial practicability tips in favor of practicability. Note that this does not affect + configurations—especially for applications developed for software-based execution environments such as containers. For these cases, + the balancing of evaluation rigor and commercial practicability tips in favor of practicability. Note that this does not affect the requirement that at least one product instance be fully tested on at least one platform with cryptography mapped to a CAVP - certificate.

    + certificate.

    Equivalency has two aspects:
    1. Product Equivalence: Products may be considered equivalent if there are no - differences between Product Models and Product Versions with respect to PP-specified security functionality.
    2. Platform Equivalence: Platforms may be considered equivalent if there are no + differences between Product Models and Product Versions with respect to PP-specified security functionality.
    3. Platform Equivalence: Platforms may be considered equivalent if there are no significant differences in the services they provide to the Product—or in the way the platforms - provide those services—with respect to PP-specified security functionality.
    - The equivalency determination is made in accordance with these guidelines by the Validator and Scheme using information provided by the Evaluator/Vendor.

    D.2 Approach to Equivalency Analysis

    - There are two scenarios for performing equivalency analysis. One is when a product has been certified and the vendor - wants to show that a later product should be considered certified due to equivalence with the earlier product. The + provide those services—with respect to PP-specified security functionality. + The equivalency determination is made in accordance with these guidelines by the Validator and Scheme using information provided by the Evaluator/Vendor.

    D.2 Approach to Equivalency Analysis

    + There are two scenarios for performing equivalency analysis. One is when a product has been certified and the vendor + wants to show that a later product should be considered certified due to equivalence with the earlier product. The other is when multiple product variants are going though evaluation together and the vendor would like to reduce - the amount of testing that must be done. The basic rules for determining equivalence are the same in both cases. - But there is one additional consideration that applies to equivalence with previously certified products. That is, + the amount of testing that must be done. The basic rules for determining equivalence are the same in both cases. + But there is one additional consideration that applies to equivalence with previously certified products. That is, the product with which equivalence is being claimed must have a valid certification in accordance with scheme rules - and the Assurance Maintenance process must be followed. If a product’s certification has expired, then equivalence - cannot be claimed with that product.

    + and the Assurance Maintenance process must be followed. If a product’s certification has expired, then equivalence + cannot be claimed with that product.

    When performing equivalency analysis, the Evaluator/Vendor should first use the factors and guidelines for Product - Model equivalence to determine the set of Product Models to be evaluated. In general, Product Models that do not differ - in PP-specified security functionality are considered equivalent for purposes of evaluation against the AppPP.

    + Model equivalence to determine the set of Product Models to be evaluated. In general, Product Models that do not differ + in PP-specified security functionality are considered equivalent for purposes of evaluation against the AppPP.

    If multiple revision levels of Product Models are to be evaluated—or to determine whether a revision of an evaluated product needs re-evaluation—the Evaluator/Vendor and Validator should use the factors and guidelines for Product - Version equivalence to analyze whether Product Versions are equivalent.

    + Version equivalence to analyze whether Product Versions are equivalent.

    Having determined the set of Product Models and Versions to be evaluated, the next step is to determine the set of - Platforms that the Products must be tested on.

    + Platforms that the Products must be tested on.

    Each non-equivalent Product for which compliance is claimed must be fully tested on each non-equivalent platform - for which compliance is claimed. For non-equivalent Products on equivalent platforms, only the differences that - affect PP-specified security functionality must be tested for each product.

    “Differences in PP-Specified Security Functionality” Defined
    + for which compliance is claimed. For non-equivalent Products on equivalent platforms, only the differences that + affect PP-specified security functionality must be tested for each product.

    “Differences in PP-Specified Security Functionality” Defined
    If PP-specified security functionality is implemented by the TOE, then differences in the actual implementation - between versions or product models break equivalence for that feature. Likewise, if the TOE implements the + between versions or product models break equivalence for that feature. Likewise, if the TOE implements the functionality in one version or model and the functionality is implemented by the platform in another version - or model, then equivalence is broken. If the functionality is implemented by the platform in multiple models or + or model, then equivalence is broken. If the functionality is implemented by the platform in multiple models or versions on equivalent platforms, then the functionality is considered different if the product invokes the platform - differently to perform the function. + differently to perform the function.

    D.3 Specific Guidance for Determining Product Model Equivalence

    Product Model equivalence attempts to determine whether different feature levels of the same product across - a product line are equivalent for purposes of PP testing. For example, if a product has a “basic” edition and an “enterprise” + a product line are equivalent for purposes of PP testing. For example, if a product has a “basic” edition and an “enterprise” edition, is it necessary to test both models? Or does testing one model provide sufficient assurance that both models are compliant?

    Product models are considered equivalent if there are no differences that affect PP-specified security - functionality—as indicated in Table 1.

    FactorSame/DifferentGuidance
    PP-Specified FunctionalitySameIf the differences between Models affect only non-PP-specified functionality, then the Models are equivalent.
    DifferentIf PP-specified security functionality is affected by the differences between Models, - then the Models are not equivalent and must be tested separately. It is necessary only to test the functionality - affected by the software differences. If only differences are tested, then the differences must be enumerated, + functionality—as indicated in Table 1.

    FactorSame/DifferentGuidance
    PP-Specified FunctionalitySameIf the differences between Models affect only non-PP-specified functionality, then the Models are equivalent.
    DifferentIf PP-specified security functionality is affected by the differences between Models, + then the Models are not equivalent and must be tested separately. It is necessary only to test the functionality + affected by the software differences. If only differences are tested, then the differences must be enumerated, and for each difference the Vendor must provide an explanation of why each difference does or does not affect - PP-specified functionality. If the Product Models are separately tested fully, then there is no need to document the differences. -
    Table 1. Determining Product Model Equivalence

    D.4 Specific Guidance for Determining Product Version Equivalence

    + PP-specified functionality. If the Product Models are separately tested fully, then there is no need to document the differences. +
    Table 1. Determining Product Model Equivalence

    D.4 Specific Guidance for Determining Product Version Equivalence

    In cases of version equivalence, differences are expressed in terms of changes implemented in revisions - of an evaluated Product. In general, versions are equivalent if the changes have no effect on any - security-relevant claims about the TOE or assurance evidence. Non-security-relevant changes to TOE - functionality or the addition of non-security-relevant functionality does not affect equivalence.

    FactorSame/DifferentGuidance
    Product ModelsDifferentVersions of different Product Models are not equivalent unless the Models are equivalent as defined in Section 3.
    PP-Specified FunctionalitySameIf the differences affect only non-PP-specified functionality, then the Versions are equivalent.
    DifferentIf PP-specified security functionality is affected by the differences, then the - Versions are not considered equivalent and must be tested separately. It is necessary only to test - the functionality affected by the changes. If only the differences are tested, then for each + of an evaluated Product. In general, versions are equivalent if the changes have no effect on any + security-relevant claims about the TOE or assurance evidence. Non-security-relevant changes to TOE + functionality or the addition of non-security-relevant functionality does not affect equivalence.

    FactorSame/DifferentGuidance
    Product ModelsDifferentVersions of different Product Models are not equivalent unless the Models are equivalent as defined in Section 3.
    PP-Specified FunctionalitySameIf the differences affect only non-PP-specified functionality, then the Versions are equivalent.
    DifferentIf PP-specified security functionality is affected by the differences, then the + Versions are not considered equivalent and must be tested separately. It is necessary only to test + the functionality affected by the changes. If only the differences are tested, then for each difference the Vendor must provide an explanation of why the difference does or does not affect - PP-specified functionality. If the Product Versions are separately tested fully, then there is - no need to document the differences.
    Table 2. Factors for Determining Product Version Equivalence

    D.5 Specific Guidance for Determining Platform Equivalence

    - Platform equivalence is used to determine the platforms that equivalent versions of a Product must be tested on. - Platform equivalence analysis done for one software application cannot be applied to another software application. Platform equivalence is not general—it is with respect to a particular application. + PP-specified functionality. If the Product Versions are separately tested fully, then there is + no need to document the differences.
    Table 2. Factors for Determining Product Version Equivalence

    D.5 Specific Guidance for Determining Platform Equivalence

    + Platform equivalence is used to determine the platforms that equivalent versions of a Product must be tested on. + Platform equivalence analysis done for one software application cannot be applied to another software application. Platform equivalence is not general—it is with respect to a particular application.

    - Product Equivalency analysis must already have been done and Products have been determined to be equivalent.

    + Product Equivalency analysis must already have been done and Products have been determined to be equivalent.

    The platform can be hardware or virtual hardware, an operating system or similar entity, or a software execution - environment such as a container. For purposes of determining equivalence for software applications, we address each - type of platform separately. In general, platform equivalence is based on differences in the interfaces between the - TOE and Platform that are relevant to the implementation of PP-specified security functionality.

    D.5.1 Platform Equivalence—Hardware/Virtual Hardware Platforms

    + environment such as a container. For purposes of determining equivalence for software applications, we address each + type of platform separately. In general, platform equivalence is based on differences in the interfaces between the + TOE and Platform that are relevant to the implementation of PP-specified security functionality.

    D.5.1 Platform Equivalence—Hardware/Virtual Hardware Platforms

    If an Application runs directly on hardware without an operating system—or directly on virtualized hardware without an operating system—then platform equivalence is based on processor architecture and - instruction sets. In the case of virtualized hardware, it is the virtualized processor and architecture - that are presented to the application that matters—not the physical hardware.

    - Platforms with different processor architectures and instruction sets are not equivalent. This is not + instruction sets. In the case of virtualized hardware, it is the virtualized processor and architecture + that are presented to the application that matters—not the physical hardware.

    + Platforms with different processor architectures and instruction sets are not equivalent. This is not likely to be an issue for equivalency analysis for applications since there is likely to be a different - version of the application for different hardware environments. Equivalency analysis becomes important when comparing processors with the same architecture. Processors + version of the application for different hardware environments. Equivalency analysis becomes important when comparing processors with the same architecture. Processors with the same architecture that have instruction sets that are subsets or supersets of each other are not - disqualified from being equivalent for purposes of an App evaluation. If the application takes the same + disqualified from being equivalent for purposes of an App evaluation. If the application takes the same code paths when executing PP-specified security functionality on different processors of the same family, - then the processors can be considered equivalent with respect to that application. For example, if an application follows one code path on platforms that support the AES-NI instruction + then the processors can be considered equivalent with respect to that application. For example, if an application follows one code path on platforms that support the AES-NI instruction and another on platforms that do not, then those two platforms are not equivalent with respect to that - application functionality. But if the application follows the same code path whether or not the platform - supports AES-NI, then the platforms are equivalent with respect to that functionality.

    + application functionality. But if the application follows the same code path whether or not the platform + supports AES-NI, then the platforms are equivalent with respect to that functionality.

    The platforms are equivalent with respect to the application if the platforms are equivalent with respect to all PP-specified - security functionality.
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that present different processor architectures and instruction sets to the application are not equivalent.
    PP-Specified FunctionalitySameFor platforms with the same processor architecture, the platforms are equivalent with - respect to the application if execution of all PP-specified security functionality follows the same code path on both platforms.
    Table 3. Factors for Determining Hardware/Virtual Hardware Platform Equivalence

    D.5.2 Platform Equivalence—OS Platforms

    + security functionality.
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that present different processor architectures and instruction sets to the application are not equivalent.
    PP-Specified FunctionalitySameFor platforms with the same processor architecture, the platforms are equivalent with + respect to the application if execution of all PP-specified security functionality follows the same code path on both platforms.
    Table 3. Factors for Determining Hardware/Virtual Hardware Platform Equivalence

    D.5.2 Platform Equivalence—OS Platforms

    For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified - security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following + security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order: -
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that run on different processor architectures and instruction sets are not equivalent.
    Platform VendorsDifferentPlatforms from different vendors are not equivalent.
    Platform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are - differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified - security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are - no differences in device interfaces and OS APIs that are relevant to the way the platform +
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that run on different processor architectures and instruction sets are not equivalent.
    Platform VendorsDifferentPlatforms from different vendors are not equivalent.
    Platform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are + differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified + security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are + no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does - not provide such functionality to the application.
    Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    + not provide such functionality to the application.
    Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or - Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the - underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications - to be tested and run on software-based execution environments on any hardware—as in cloud deployments. + Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the + underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications + to be tested and run on software-based execution environments on any hardware—as in cloud deployments.
    FactorSame/Different/NoneGuidance
    Platform Type/VendorDifferentSoftware-based execution environments that are substantially different or come - from different vendors are not equivalent. For example, a java virtual machine is not the same as a - container. A Docker container is not the same as a CoreOS container.
    Platform VersionsDifferentExecution environments that are otherwise equivalent are not equivalent if they have - different major version numbers.
    PP-Specified Security FunctionalitySameAll other things being equal, execution environments are equivalent if there is no + from different vendors are not equivalent. For example, a java virtual machine is not the same as a + container. A Docker container is not the same as a CoreOS container.
    Platform VersionsDifferentExecution environments that are otherwise equivalent are not equivalent if they have + different major version numbers.
    PP-Specified Security FunctionalitySameAll other things being equal, execution environments are equivalent if there is no significant difference in the interfaces through which the environments provide PP-specified security - functionality to applications.
    Table 5. Factors for Software-based Execution Environment Platform Equivalence

    D.6 Level of Specificity for Tested Configurations and Claimed Equivalent Configurations

    - In order to make equivalency determinations, the vendor and evaluator must agree on the equivalency claims. They must + functionality to applications.
    Table 5. Factors for Software-based Execution Environment Platform Equivalence

    D.6 Level of Specificity for Tested Configurations and Claimed Equivalent Configurations

    + In order to make equivalency determinations, the vendor and evaluator must agree on the equivalency claims. They must then provide the scheme with sufficient information about the TOE instances and platforms that were evaluated, and the - TOE instances and platforms that are claimed to be equivalent.

    - The ST must describe all configurations evaluated down to processor manufacturer, model number, and microarchitecture version. + TOE instances and platforms that are claimed to be equivalent.

    + The ST must describe all configurations evaluated down to processor manufacturer, model number, and microarchitecture version.

    - The information regarding claimed equivalent configurations depends on the platform that the application was developed for and runs on.

    Bare-Metal Applications

    + The information regarding claimed equivalent configurations depends on the platform that the application was developed for and runs on.

    Bare-Metal Applications

    For applications that run without an operating system on bare-metal or virtual bare-metal, the claimed configuration must - describe the platform down to the specific processor manufacturer, model number, and microarchitecture version. The Vendor + describe the platform down to the specific processor manufacturer, model number, and microarchitecture version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences (e.g., instruction set extensions) in the tested configuration versus the - claimed equivalent configuration. + claimed equivalent configuration.

    Traditional Applications

    For applications that run with an operating system as their immediate platform, the claimed configuration must describe - the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed - configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the + the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed + configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage - platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences - could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security - functionality.

    Software-Based Execution Environments

    + platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences + could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security + functionality.

    Software-Based Execution Environments

    For applications that run in a software-based execution environment such as a Java virtual machine or a Container, then - the claimed configuration must describe the platform down to the specific version of the software execution environment. + the claimed configuration must describe the platform down to the specific version of the software execution environment. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent - configuration.

    Appendix E - Acronyms

    - - - + configuration.

    Appendix E - Acronyms

    Table 3: Acronyms -
    AcronymMeaning
    APIApplication Programming Interface
    appApplication
    ASLRAddress Space Layout Randomization
    Base-PPBase Protection Profile
    - - - @@ -4068,15 +4177,15 @@

    D.3 Specific Guidance for D

    Table 3: Acronyms +
    AcronymMeaning
    Base-PPBase Protection Profile
    CCCommon Criteria
    CEMCommon Evaluation Methodology
    cPPCollaborative Protection Profile
    DEPData Execution Prevention
    EPExtended Package
    FPFunctional Package
    OEOperational Environment
    OSOperating System
    PIIPersonally Identifiable Information
    PPProtection Profile
    PP-ConfigurationProtection Profile Configuration
    PP-ModuleProtection Profile Module

    Appendix F - Bibliography

    Table 4: Bibliography
    IdentifierTitle
    [CC]Common Criteria for Information Technology Security Evaluation -
    [CEM] Common Evaluation Methodology for Information Technology Security - Evaluation Methodology, - CCMB-2017-04-004, Version 3.1, Revision 5, April 2017.
    [OMB] Reporting Incidents Involving Personally Identifiable Information and Incorporating the + CCMB-2017-04-004, Version 3.1, Revision 5, April 2017.
    [OMB] Reporting Incidents Involving Personally Identifiable Information and Incorporating the Cost for Security in Agency Information Technology Investments, OMB M-06-19, July - 12, 2006.
    \ No newline at end of file + 12, 2006.
    \ No newline at end of file diff --git a/xml-builder-test/application-release.html b/xml-builder-test/application-release.html index f4bb4ba..3f2414f 100644 --- a/xml-builder-test/application-release.html +++ b/xml-builder-test/application-release.html @@ -668,23 +668,23 @@

    1.2.1 Common Criteria Terms
    Target of Evaluation (TOE)
    The product under evaluation.
    TOE Security Functionality (TSF)
    The security functionality of the product under evaluation.
    TOE Summary Specification (TSS)
    A description of how a TOE satisfies the SFRs in an ST. -

    1.2.2 Technical Terms

    Address Space Layout Randomization (ASLR)
    +

    1.2.2 Technical Terms

    - - - - -
    Address Space Layout Randomization
    An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process.
    Application (app)
    +
    Application
    Software that runs on a platform and performs tasks on behalf of the user or owner of the platform, as well as its supporting documentation. The terms TOE and application are interchangeable in this document.
    Application Programming Interface (API)
    +
    Application Programming Interface
    A specification of routines, data structures, object classes, and variables that allows an application to make use of services provided by another software component, such as a library. APIs are often provided for a set of libraries included with the platform.
    Credential
    Data that establishes the identity of a user, e.g. a cryptographic key or password.
    Data Execution Prevention (DEP)
    +
    Data Execution Prevention
    An anti-exploitation feature of modern operating systems executing on modern computer hardware, which enforces a non-execute permission on pages of memory. DEP prevents pages of memory from containing both data and instructions, which makes @@ -700,10 +700,10 @@

    1.2.1 Common Criteria Terms

    Operating System (OS)
    +
    Operating System
    Software that manages hardware resources and provides services for applications.
    Personally Identifiable Information (PII)
    +
    Personally Identifiable Information
    Any information about an individual maintained by an agency, including, but not limited to, education, financial transactions, medical history, and criminal or employment history and information which can be used to distinguish or trace an @@ -739,13 +739,13 @@

    1.3.1 TOE Boundary

    Th

    1.4 Platforms with Specific EAs

    This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on - other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.
    + other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.

    1.5 Use Cases

    Requirements in this Protection Profile are designed to address the security problem in the following use cases. These use cases are intentionally very broad, as many specific use cases exist for application software. Many applications may be used in combinations of these broad use cases, and evaluation against PP-Modules of this PP, when available, may be most appropriate for some application types.
    [USE CASE 1] Content Creation
    The application allows a user to create content, saving it to either local or remote storage. Example content includes text documents, presentations, and images.
    [USE CASE 2] Content Consumption
    The application allows a user to consume content, retrieving it from either local or remote storage. Example content includes web pages and video.
    [USE CASE 3] Communication
    The application allows for communication interactively or non-interactively with other users or applications over a communications channel. Example communications include instant messages, email, and voice.

    2 Conformance Claims

    -
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claim
    This PP does not claim conformance to any other Protection Profile. The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP.

    Protection Profile for Mobile Device Management Version 4.0

    PP-Module for File Encryption, Version 1.0

    PP-Module for File Encryption Enterprise Management, Version 1.0

    PP-Module for VPN Clients, Version 2.2

    PP-Module for VPN Clients, Version 2.3

    PP-Module for Endpoint Detection and Response, Version 1.0

    PP-Module for Host Agent, Version 1.0

    PP-Module for Voice and Video over IP (VVoIP), Version 1.0

    PP-Module for Email Clients, Version 1.0
    Package Claim
    • This PP is Functional Package for TLS Version 1.1 Conformant.
    • This PP is Functional Package for SSH Version 1.0 Conformant.
    +
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claims

    Package Claims

    3 Security Problem Definition

    The security problem is described in terms of the threats that the TOE is expected to address, assumptions about the operational environment, and any organizational security policies that the TOE is expected to enforce. @@ -766,7 +766,7 @@

    3.3 O

    4 Security Objectives

    4.1 Security Objectives for the TOE

    -
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.
    +
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.

    4.2 Security Objectives for the Operational Environment

    @@ -874,7 +874,7 @@

    5.1.1 Class: Cryptographic Support the TSS to confirm that it identifies all functions (as described by the SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator shall determine that for each of these functions, the TSS states which - platform interface (API) is used to obtain the random numbers. The evaluator shall confirm + platform interface (API) is used to obtain the random numbers. The evaluator shall confirm that each of these interfaces corresponds to the acceptable interfaces listed for each platform below.

    It should be noted that there is no expectation that the evaluators attempt to confirm @@ -887,12 +887,12 @@

    5.1.1 Class: Cryptographic Support If "invoke platform-provided DRBG functionality" is selected, the following tests shall be performed:

    The evaluator shall decompile the application binary using a decompiler suitable for the application (TOE). The evaluator shall search the output of the - decompiler to determine that, for each API listed in the TSS, that API - appears in the output. If the representation of the API does not correspond directly to + decompiler to determine that, for each API listed in the TSS, that API + appears in the output. If the representation of the API does not correspond directly to the strings in the following list, the evaluator shall provide a mapping from the - decompiled text to its corresponding API, with a description of why the API text does + decompiled text to its corresponding API, with a description of why the API text does not directly correspond to the decompiled text and justification that the decompiled text - corresponds to the associated API.

    + corresponds to the associated API.

    The following are the per-platform list of acceptable APIs:
      @@ -912,12 +912,12 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that rand_s, RtlGenRandom, BCryptGenRandom, or - CryptGenRandom API is used for classic desktop applications. The evaluator shall + CryptGenRandom API is used for classic desktop applications. The evaluator shall verify the application uses the RNGCryptoServiceProvider class or derives a class - from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal - Applications. It is only required that the API is called/invoked, there is no - requirement that the API be used directly. In future versions of this document, - CryptGenRandom may be removed as an option as it is no longer the preferred API per + from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal + Applications. It is only required that the API is called/invoked, there is no + requirement that the API be used directly. In future versions of this document, + CryptGenRandom may be removed as an option as it is no longer the preferred API per vendor documentation.

    @@ -965,9 +965,9 @@

    5.1.1 Class: Cryptographic Support

    FCS_STO_EXT.1 Storage of Credentials

    -
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: - list of credentials ]
    • implement functionality to securely store [assignment: - list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application +
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: + list of credentials ]
    • implement functionality to securely store [assignment: + list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application Note: This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) @@ -982,7 +982,7 @@

    5.1.1 Class: Cryptographic Support If "implement functionality to securely store credentials" is selected, then the following components must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding - requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store + requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store credentials, "implement functionality to securely store credentials" must be selected.

    @@ -1015,7 +1015,7 @@

    5.1.1 Class: Cryptographic Support The evaluator shall verify that all certificates are stored in the Windows Certificate Store. The evaluator shall verify that other credentials, like passwords, are stored in the Windows Credential Manager or stored - using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall + using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall verify that the application is using the ProtectData class and storing credentials in IsolatedStorage. @@ -1167,7 +1167,8 @@

    5.1.2 Class: User Data Protection

    FDP_DEC_EXT.1 Access to Platform Resources

    -
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, list of additional hardware resources ].
    Application +
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, [assignment: + list of additional hardware resources ]].
    Application Note: The intent is for the evaluator to ensure that the selection captures all @@ -1188,7 +1189,8 @@

    5.1.2 Class: User Data Protection main memory, displays, input devices (e.g. keyboards, mice), and persistent storage devices provided by the platform.

    -
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, list of additional sensitive information repositories ].
    Application +
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, [assignment: + list of additional sensitive information repositories ]].
    Application Note: "Sensitive information repositories" are defined as those collections of sensitive data that @@ -1348,9 +1350,10 @@

    5.1.2 Class: User Data Protection

    FDP_NET_EXT.1 Network Communications

    -
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: - list of functions for which the user can initiate network communication ], respond to [assignment: - list of remotely initiated communication ], list of application-initiated network communication ].
    Application +
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: + list of functions for which the user can initiate network communication ], respond to [assignment: + list of remotely initiated communication ], [assignment: + list of application-initiated network communication ]].
    Application Note: This requirement is intended to restrict both inbound and @@ -1592,7 +1595,7 @@

    5.1.3 Class: Security Management (
  • Test FMT_MEC_EXT.1.1:3[conditional, Platforms:Apple iOS: Apple's mobile operating system for iPhones.]: - The evaluator shall verify that the app uses the + The evaluator shall verify that the app uses the user defaults system or key-value store for storing all settings.
  • @@ -1641,9 +1644,10 @@

    5.1.3 Class: Security Management (

    FMT_SMF.1 Specification of Management Functions

    The TSF shall be capable of performing the following management functions[selection: no management functions, enable/disable the transmission of any information describing the - system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) - information, enable/disable network backup functionality to [assignment: - list of enterprise or commercial cloud backup systems ], list of other management functions to be provided bythe TSF ].
    Application + system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) + information, enable/disable network backup functionality to [assignment: + list of enterprise or commercial cloud backup systems ], [assignment: + list of other management functions to be provided bythe TSF ]].
    Application Note: This requirement stipulates that an application needs to provide the ability to @@ -1669,24 +1673,24 @@

    5.1.3 Class: Security Management (

    5.1.4 Class: Privacy (FPR)

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Information

    -
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: - list of functions that transmit PII over a network ]].
    Application +
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: + list of functions that transmit PII over a network ]].
    Application Note: - This requirement applies only to PII that is specifically requested by the application; - it does not apply if the user volunteers PII without prompting from the application + This requirement applies only to PII that is specifically requested by the application; + it does not apply if the user volunteers PII without prompting from the application into a general (or inappropriate) data field. - A dialog box that declares intent to send PII presented to the user + A dialog box that declares intent to send PII presented to the user at the time the application is started is sufficient to meet this requirement.
    The evaluator shall inspect the TSS documentation to identify functionality in the - application where PII can be transmitted.

    + application where PII can be transmitted.

    Guidance
    None.

    Tests
    If require user approval before executing is selected, the evaluator shall run the application and exercise the functionality responsibly - for transmitting PII and verify that user approval is required before transmission - of the PII. + for transmitting PII and verify that user approval is required before transmission + of the PII.
    @@ -1698,14 +1702,14 @@

    5.1.5 Class: Protection of the TSF list of explicit exceptions].
    Application Note: Requesting a memory mapping at an explicit address - subverts address space layout randomization (ASLR). + subverts address space layout randomization (ASLR).

    -
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: - list of functions performing just-in-time compilation ]].
    Application +
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: + list of functions performing just-in-time compilation ]].
    Application Note: Requesting a memory mapping with both write and execute permissions subverts the - platform protection provided by DEP. If the application performs no just-in-time + platform protection provided by DEP. If the application performs no just-in-time compiling, then the first selection must be chosen.
    The application shall be compatible with security features provided by the platform vendor.
    Application @@ -1732,7 +1736,7 @@

    5.1.5 Class: Protection of the TSF
    The application shall be built with stack-based buffer overflow protection enabled.
    The evaluator shall ensure that the TSS describes the compiler flags used to - enable ASLR when the application is compiled.
    + enable ASLR when the application is compiled.
    Guidance
    None.
    Tests
    @@ -1767,7 +1771,7 @@

    5.1.5 Class: Protection of the TSF share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to view memory addresses of a running application. The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application has - ASLR enabled. + ASLR enabled. @@ -1777,7 +1781,7 @@

    5.1.5 Class: Protection of the TSF The evaluator shall perform a static analysis to search - for any mmap calls (or API calls that call mmap), and ensure that + for any mmap calls (or API calls that call mmap), and ensure that no arguments are provided that request a mapping at a fixed address. @@ -1844,7 +1848,7 @@

    5.1.5 Class: Protection of the TSF The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application passes the NXCheck. The evaluator may also ensure that the /NXCOMPAT flag was used during - compilation to verify that DEP protections are enabled for the application. + compilation to verify that DEP protections are enabled for the application. @@ -1912,19 +1916,19 @@

    5.1.5 Class: Protection of the TSF - If the OS platform supports Windows Defender Exploit Guard + If the OS platform supports Windows Defender Exploit Guard (Windows 10 version 1709 or later), then the evaluator shall ensure that the application can run successfully with Windows Defender Exploit Guard Exploit Protection configured with the following minimum mitigations enabled; Control Flow Guard (CFG), Randomize memory allocations - (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and - Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, + (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and + Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection.

    - If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be + If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be installed on Windows 10 version 1703 and earlier, then the evaluator shall ensure that the application can run successfully with EMET configured with the following minimum - mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), - Export address filtering (EAF), and Data Execution Prevention (DEP). + mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), + Export address filtering (EAF), and Data Execution Prevention (DEP). @@ -2092,7 +2096,8 @@

    5.1.5 Class: Protection of the TSF

    FPT_IDV_EXT.1 Software Identification and Versions

    The application shall be versioned with[selection: SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 - , other version information ].
    Application + , [assignment: + other version information ]].
    Application Note: The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires @@ -2160,12 +2165,12 @@

    5.1.5 Class: Protection of the TSF The specifics of the verification of updates involves requirements on the platform (and not the application), so these are not fully specified here.

    -
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application +
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application Note: Application software that is distributed as part of the platform operating system is not required to be package for installation or uninstallation. If "as an additional software - package to the OS" is selected the requirements from FPT_TUD_EXT.2 + package to the OS" is selected the requirements from FPT_TUD_EXT.2 must be included in the ST.
    @@ -2227,7 +2232,7 @@

    5.1.5 Class: Protection of the TSF
    The evaluator shall verify that the TSS identifies how the application is distributed. If "with the platform" is selected the evaluated shall perform a clean installation or factory reset to confirm that TOE software is included - as part of the platform OS. If "as an additional package" is selected the evaluator + as part of the platform OS. If "as an additional package" is selected the evaluator shall perform the tests in FPT_TUD_EXT.2.
    Guidance
    None.
    Tests
    None.
    @@ -2239,7 +2244,7 @@

    5.1.5 Class: Protection of the TSF

    5.1.6 Class: Trusted Path/Channel (FTP)

    FTP_DIT_EXT.1 Protection of Data in Transit

    -
    The application shall[selection: ]between itself and another trusted IT product.
    Application +
    The application shall[selection: ]between itself and another trusted IT product.
    Application Note: Encryption is not required for applications transmitting data that is not sensitive.

    @@ -2336,11 +2341,11 @@

    5.1.6 Class: Trusted Path/Channel

    5.1.7 TOE Security Functional Requirements Rationale

    The following rationale provides justification for each security objective for the TOE, showing that the SFRs are suitable to meet and achieve the security objectives:
    - + - + @@ -2381,36 +2386,21 @@

    5.1.7 TOE Security Functio

    Table 2: SFR Rationale
    ObjectiveAddressed byRationale
    O.INTEGRITY
    FDP_DEC_EXT.1The PP includes FDP_DEC_EXT.1 to limit access to platform hardware resources, which limits the methods by which an attacker can attempt to compromise the integrity of the TOE.
    FMT_CFG_EXT.1The PP includes FMT_CFG_EXT.1 for the TSP to limit unauthorized access to itself by preventing the use of default authentication credentials and by ensuring that the TOE uses appropriately restrictive platform permissions on its binaries and data
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.
    O.MANAGEMENT
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.
    O.PROTECTED_​COMMS
    FCS_CKM.1The PP includes FCS_CKM.1 to specify whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.

    5.2 Security Assurance Requirements

    - - The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in - Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal - instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements - (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation - and performs independent testing.

    - This section lists the set of SARs from CC part 3 that are required in evaluations against this - PP. Individual Evaluation Activities (EAs) to be performed are specified both - in Section 5 Security Requirements as well as in this section.

    - The general model for evaluation of TOEs against STs written to conform to this PP is as follows:

    - After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting - environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to - perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and - ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, - which are intended to be an interpretation of the other CEM assurance requirements as they - apply to the specific technology instantiated in the TOE. The evaluation activities that are - captured in Section 5 Security Requirements also provide clarification as to what the developer needs - to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented - and presented (along with the administrative guidance used) for validation. - -

    5.2.1 Class ASE: Security Target

    - As per ASE activities defined in [CEM]. -

    5.2.2 Class ADV: Development

    The information about the TOE +


    +

    5.2.1 Class ASE: Security Target

    + As per ASE activities defined in [CEM]. + +

    5.2.2 Class ADV: Development

    + The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in - Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to + Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section. -

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    The functional + +

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    + The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the @@ -2423,8 +2413,17 @@

    5.2.2 Class ADV: Development

    T is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list. -

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the - SFRs.
    Application + + + + + + + + + +

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the + SFRs.
    Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and @@ -2442,13 +2441,16 @@

    Developer action elements:

    There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is - provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and + provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided. -

    5.2.3 Class AGD: Guidance Documentation

    +
    + +

    5.2.3 Class AGD: Guidance Documentation

    + The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The @@ -2460,7 +2462,18 @@

    Developer action elements:

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    Developer action elements:

    The developer shall provide operational user guidance.
    Application + +

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    + + + + + + + + + +

    Developer action elements:

    The developer shall provide operational user guidance.
    Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be @@ -2472,7 +2485,7 @@

    Developer action elements:

    The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure - processing environment, including appropriate warnings.
    Application + processing environment, including appropriate warnings.
    Note: User and administrator are to be considered in the definition of user role.
    The operational user guidance shall describe, for each user role, how to use the @@ -2488,8 +2501,8 @@

    Developer action elements:

    The operational user guidance shall be clear and reasonable.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    Some of the contents of the operational guidance will be verified by the - evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE - according to the [CEM]. The following additional + evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE + according to the [CEM]. The following additional information is also required.

    If cryptographic functions are provided by the TOE, the operational guidance shall contain instructions for @@ -2507,7 +2520,14 @@

    Developer action elements:

    TOE will likely contain security functionality that does not fall in the scope of evaluation under this PP. The operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation - activities.

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Application + activities.
    +

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Note: As with the operational guidance, the developer should look to @@ -2525,18 +2545,27 @@

    Developer action elements:

    TOE functional requirements. The evaluator shall check to ensure that the guidance provided for the TOE adequately addresses all platforms claimed for the TOE in the ST. -

    5.2.4 Class ALC: Life-cycle Support

    +
    + +

    5.2.4 Class ALC: Life-cycle Support

    + At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level. +

    ALC_CMC.1 Labeling of the TOE (ALC_CMC.1)

    + This component is targeted at identifying the TOE such that it can be distinguished from other products or versions from the same vendor and can be easily specified when being procured by an end user. -

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Application + + + + +

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Note: Unique reference information includes: @@ -2550,7 +2579,13 @@

    Developer action elements:

    TOE, the evaluator shall examine the information on the web site to ensure that the information in the ST is sufficient to distinguish the product. -

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE +
    +

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    + + + + +

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE itself; and the evaluation evidence required by the SARs.
    The configuration list shall uniquely identify the configuration items.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The "evaluation evidence required by the SARs" in this PP is limited to the @@ -2576,7 +2611,9 @@

    Developer action elements:

    TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the - TSF using this unique identification.

    ALC_TSU_EXT.1 Timely Security Updates

    + TSF using this unique identification.

    +

    ALC_TSU_EXT.1 Timely Security Updates

    + This component requires the TOE developer, in conjunction with any other necessary parties, to provide information as to how the end-user devices are updated to address security issues in a timely manner. The documentation describes the process of providing updates to the @@ -2584,7 +2621,14 @@

    Developer action elements:

    The developer shall provide a description in the TSS of how timely + + + + + + + +

    Developer action elements:

    The developer shall provide a description in the TSS of how timely security updates are made to the TOE.
    Note: @@ -2621,7 +2665,10 @@

    Developer action elements:

    5.2.5 Class ATE: Tests

    +

    + +

    5.2.5 Class ATE: Tests

    + Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN @@ -2630,25 +2677,80 @@

    Developer action elements:

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + +

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing - is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, - although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. -

    Developer action elements:

    The developer shall provide the TOE for testing.
    Application + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.
    Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details.

    Content and presentation elements:

    The TOE shall be suitable for testing.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The evaluator shall test a subset of the TSF to confirm - that the TSF operates as specified.
    Application + that the TSF operates as specified.
    Note: The evaluator shall test the application on the most current fully patched version of the platform.
    @@ -2656,7 +2758,7 @@

    Developer action elements:

    [CEM] and the body of this PP’s evaluation activities.

    + the [CEM] and the body of this PP’s evaluation activities.

    While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in the ST is covered. The test plan identifies the platforms to be tested, and for those @@ -2685,7 +2787,10 @@

    Developer action elements:

    5.2.6 Class AVA: Vulnerability Assessment

    +
    + +

    5.2.6 Class AVA: Vulnerability Assessment

    + For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover what vulnerabilities have been discovered in these types of products. In most cases, these @@ -2695,13 +2800,20 @@

    Developer action elements:

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Application + +

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The evaluator shall perform a search of public domain sources to identify - potential vulnerabilities in the TOE.
    Application + potential vulnerabilities in the TOE.
    Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain @@ -2719,10 +2831,12 @@

    Developer action elements:

    For Windows, Linux, macOS and Solaris: + an appropriate justification would be formulated.

    The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious.

    + +

    Appendix A - Optional Requirements

    As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE) are contained in the body of this PP. @@ -2766,7 +2880,7 @@

    A.1 Strictly Optional R
    Tests
    None.

    A.2 Objective Requirements

    A.2.1 Class: Protection of the TSF (FPT)

    FPT_API_EXT.2 Use of Supported Services and APIs

    -
    The application[selection, choose one of: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: +
    The application[selection: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types].
    Application Note: @@ -2801,10 +2915,10 @@

    A.1 Strictly Optional R

    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
    • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet - the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
    • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
    • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
      • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet + the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
      • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
      • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.1]
      • [FFC Schemes] using Diffie-Hellman group 14 that meet the following: - RFC 3526, Section 3
      • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
      ].
      Application + RFC 3526, Section 3
    • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
    ].
    Application Note: The ST author shall select all key generation schemes used for key @@ -2939,7 +3053,7 @@

    A.1 Strictly Optional R FTP_DIT_EXT.1.1.

    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

    [selection:
    • [RSA-based key establishment schemes] that meets the following: [NIST +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

      [selection:
      • [RSA-based key establishment schemes] that meets the following: [NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]
      • [RSA-based key establishment schemes] that meet the following: RSAES-PKCS1-v1_5 as specified in Section 7.2 of RFC 8017, @@ -2948,7 +3062,7 @@

        A.1 Strictly Optional R Schemes Using Discrete Logarithm Cryptography”]

      • [Finite field-based key establishment schemes] that meets the following: [NIST Special Publication 800-56A, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]
      • [Key establishment scheme using Diffie-Hellman group 14] - that meets the following: RFC 3526, Section 3
      • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
      ].
      Application + that meets the following: RFC 3526, Section 3
    • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
    ].
    Application Note: The ST author shall select all key establishment schemes used for the selected cryptographic @@ -3155,7 +3269,7 @@

    A.1 Strictly Optional R
    The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm[selection:
    • RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the - following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
    • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
    ].
    Application + following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
  • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
  • ].
    Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    @@ -3456,7 +3570,7 @@

    A.1 Strictly Optional R
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    -
    The application shall[selection, choose one of: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the @@ -3526,7 +3640,7 @@

    A.1 Strictly Optional R FTP_DIT_EXT.1.1.

    -
    The application shall[selection, choose one of: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the @@ -3570,7 +3684,7 @@

    A.1 Strictly Optional R SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based implementations for CTR_DRBG are allowed.

    -
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection, choose one of: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application +
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first @@ -3680,7 +3794,7 @@

    A.1 Strictly Optional R -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
    • RFC 5280 certificate validation and certificate path validation.
    • The certificate path must terminate with a trusted CA certificate.
    • The application shall validate a certificate path by ensuring the presence of the +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
      • RFC 5280 certificate validation and certificate path validation.
      • The certificate path must terminate with a trusted CA certificate.
      • The application shall validate a certificate path by ensuring the presence of the basicConstraints extension and that the CA flag is set to TRUE for all CA certificates, and that any path constraints are met.
      • The application shall validate that any CA certificate includes caSigning purpose in the key @@ -3854,7 +3968,7 @@

        A.1 Strictly Optional R with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates as a TLS client, X509 authentication must be claimed.

    -
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection, choose one of: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application +
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application Note: Often a connection must be established to perform a verification of the revocation @@ -3913,7 +4027,7 @@

    A.1 Strictly Optional R Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through - means provided by the OS. + means provided by the OS.

    The application installation package shall be digitally signed such that its platform can cryptographically verify them prior to installation.
    Application Note: @@ -4293,18 +4407,18 @@

    D.3 Specific Guidance for D respect to the application if execution of all PP-specified security functionality follows the same code path on both platforms.

    Table 3. Factors for Determining Hardware/Virtual Hardware Platform Equivalence

    D.5.2 Platform Equivalence—OS Platforms

    For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified - security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following + security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order:
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that run on different processor architectures and instruction sets are not equivalent.
    Platform VendorsDifferentPlatforms from different vendors are not equivalent.
    Platform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are - differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified + differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are - no differences in device interfaces and OS APIs that are relevant to the way the platform + no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does - not provide such functionality to the application.
    Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    + not provide such functionality to the application.Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the - underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications + underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments.
    FactorSame/Different/NoneGuidance
    Platform Type/VendorDifferentSoftware-based execution environments that are substantially different or come @@ -4332,7 +4446,7 @@

    D.3 Specific Guidance for D configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences - could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security + could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality.

    Software-Based Execution Environments

    For applications that run in a software-based execution environment such as a Java virtual machine or a Container, then @@ -4341,19 +4455,13 @@

    D.3 Specific Guidance for D functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration.

    Appendix E - Acronyms

    - - - + - - - diff --git a/xml-builder-test/application.html b/xml-builder-test/application.html index ceea023..8870bc5 100644 --- a/xml-builder-test/application.html +++ b/xml-builder-test/application.html @@ -664,23 +664,23 @@

    1.2.1 Common Criteria Terms

    -
    Table 3: Acronyms -
    AcronymMeaning
    APIApplication Programming Interface
    appApplication
    ASLRAddress Space Layout Randomization
    Base-PPBase Protection Profile
    AcronymMeaning
    Base-PPBase Protection Profile
    CCCommon Criteria
    CEMCommon Evaluation Methodology
    cPPCollaborative Protection Profile
    DEPData Execution Prevention
    EPExtended Package
    FPFunctional Package
    OEOperational Environment
    OSOperating System
    PIIPersonally Identifiable Information
    PPProtection Profile
    PP-ConfigurationProtection Profile Configuration
    PP-ModuleProtection Profile Module
    Target of Evaluation (TOE)
    The product under evaluation.
    TOE Security Functionality (TSF)
    The security functionality of the product under evaluation.
    TOE Summary Specification (TSS)
    A description of how a TOE satisfies the SFRs in an ST.

    1.2.2 Technical Terms

    Address Space Layout Randomization (ASLR)
    +

    1.2.2 Technical Terms

    - - - - -
    Address Space Layout Randomization
    An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process.
    Application (app)
    +
    Application
    Software that runs on a platform and performs tasks on behalf of the user or owner of the platform, as well as its supporting documentation. The terms TOE and application are interchangeable in this document.
    Application Programming Interface (API)
    +
    Application Programming Interface
    A specification of routines, data structures, object classes, and variables that allows an application to make use of services provided by another software component, such as a library. APIs are often provided for a set of libraries included with the platform.
    Credential
    Data that establishes the identity of a user, e.g. a cryptographic key or password.
    Data Execution Prevention (DEP)
    +
    Data Execution Prevention
    An anti-exploitation feature of modern operating systems executing on modern computer hardware, which enforces a non-execute permission on pages of memory. DEP prevents pages of memory from containing both data and instructions, which makes @@ -696,10 +696,10 @@

    1.2.1 Common Criteria Terms

    Operating System (OS)
    +
    Operating System
    Software that manages hardware resources and provides services for applications.
    Personally Identifiable Information (PII)
    +
    Personally Identifiable Information
    Any information about an individual maintained by an agency, including, but not limited to, education, financial transactions, medical history, and criminal or employment history and information which can be used to distinguish or trace an @@ -735,13 +735,13 @@

    1.3.1 TOE Boundary

    Th

    1.4 Platforms with Specific EAs

    This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on - other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.
    + other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    • Android: Mobile operating systems based on Google Android.
    • Microsoft Windows: Microsoft Windows operating systems.
    • Apple iOS: Apple's mobile operating system for iPhones.
    • Linux: Linux-based operating systems other than Android.
    • Oracle Solaris: Oracle's enterprise operating system.
    • Apple macOS: Apple's operating system for MACs.

    1.5 Use Cases

    Requirements in this Protection Profile are designed to address the security problem in the following use cases. These use cases are intentionally very broad, as many specific use cases exist for application software. Many applications may be used in combinations of these broad use cases, and evaluation against PP-Modules of this PP, when available, may be most appropriate for some application types.
    [USE CASE 1] Content Creation
    The application allows a user to create content, saving it to either local or remote storage. Example content includes text documents, presentations, and images.
    [USE CASE 2] Content Consumption
    The application allows a user to consume content, retrieving it from either local or remote storage. Example content includes web pages and video.
    [USE CASE 3] Communication
    The application allows for communication interactively or non-interactively with other users or applications over a communications channel. Example communications include instant messages, email, and voice.

    2 Conformance Claims

    -
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claim
    This PP does not claim conformance to any other Protection Profile. The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP.

    Protection Profile for Mobile Device Management Version 4.0

    PP-Module for File Encryption, Version 1.0

    PP-Module for File Encryption Enterprise Management, Version 1.0

    PP-Module for VPN Clients, Version 2.2

    PP-Module for VPN Clients, Version 2.3

    PP-Module for Endpoint Detection and Response, Version 1.0

    PP-Module for Host Agent, Version 1.0

    PP-Module for Voice and Video over IP (VVoIP), Version 1.0

    PP-Module for Email Clients, Version 1.0
    Package Claim
    • This PP is Functional Package for TLS Version 1.1 Conformant.
    • This PP is Functional Package for SSH Version 1.0 Conformant.
    +
    Conformance Statement
    An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    CC Conformance Claims
    This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    PP Claims

    Package Claims

    3 Security Problem Definition

    The security problem is described in terms of the threats that the TOE is expected to address, assumptions about the operational environment, and any organizational security policies that the TOE is expected to enforce. @@ -762,7 +762,7 @@

    3.3 O

    4 Security Objectives

    4.1 Security Objectives for the TOE

    -
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.
    +
    O.INTEGRITY
    Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    O.MANAGEMENT
    To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    O.PROTECTED_COMMS
    To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    O.PROTECTED_STORAGE
    To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    O.QUALITY
    To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.

    4.2 Security Objectives for the Operational Environment

    @@ -828,10 +828,10 @@

    5.1.1 Class: Cryptographic Support -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
    • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet - the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
    • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
    • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection:
      • [RSA schemes] using cryptographic key sizes of [2048-bit or greater] that meet + the following FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"
      • [ECC schemes] using [“NIST curves” P-256, P-384 and [selection: P-521 , no other curves ] ]that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]
      • [FFC schemes] using cryptographic key sizes of [2048-bit or greater] that meet the following: [FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.1]
      • [FFC Schemes] using Diffie-Hellman group 14 that meet the following: - RFC 3526, Section 3
      • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
      ].
      Application + RFC 3526, Section 3
    • [FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919]
    ].
    Application Note: The ST author shall select all key generation schemes used for key @@ -994,7 +994,7 @@

    5.1.1 Class: Cryptographic Support FTP_DIT_EXT.1.1.

    -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

    [selection:
    • [RSA-based key establishment schemes] that meets the following: [NIST +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

      [selection:
      • [RSA-based key establishment schemes] that meets the following: [NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]
      • [RSA-based key establishment schemes] that meet the following: RSAES-PKCS1-v1_5 as specified in Section 7.2 of RFC 8017, @@ -1003,7 +1003,7 @@

        5.1.1 Class: Cryptographic Support Schemes Using Discrete Logarithm Cryptography”]

      • [Finite field-based key establishment schemes] that meets the following: [NIST Special Publication 800-56A, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]
      • [Key establishment scheme using Diffie-Hellman group 14] - that meets the following: RFC 3526, Section 3
      • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
      ].
      Application + that meets the following: RFC 3526, Section 3
    • [FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and [selection: RFC 3526, RFC 7919].
    ].
    Application Note: The ST author shall select all key establishment schemes used for the selected cryptographic @@ -1216,7 +1216,7 @@

    5.1.1 Class: Cryptographic Support
    The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm[selection:
    • RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the - following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
    • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
    ].
    Application + following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
  • ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
  • ].
    Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    @@ -1521,7 +1521,7 @@

    5.1.1 Class: Cryptographic Support
    The application shall implement the HTTPS protocol that complies with RFC 2818.
    The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    -
    The application shall[selection, choose one of: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the @@ -1595,7 +1595,7 @@

    5.1.1 Class: Cryptographic Support FTP_DIT_EXT.1.1.

    -
    The application shall[selection, choose one of: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application +
    The application shall[selection: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    Application Note: Validity is determined by the certificate path, the expiration date, and the @@ -1648,7 +1648,7 @@

    5.1.1 Class: Cryptographic Support the TSS to confirm that it identifies all functions (as described by the SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator shall determine that for each of these functions, the TSS states which - platform interface (API) is used to obtain the random numbers. The evaluator shall confirm + platform interface (API) is used to obtain the random numbers. The evaluator shall confirm that each of these interfaces corresponds to the acceptable interfaces listed for each platform below.

    It should be noted that there is no expectation that the evaluators attempt to confirm @@ -1661,12 +1661,12 @@

    5.1.1 Class: Cryptographic Support If "invoke platform-provided DRBG functionality" is selected, the following tests shall be performed:

    The evaluator shall decompile the application binary using a decompiler suitable for the application (TOE). The evaluator shall search the output of the - decompiler to determine that, for each API listed in the TSS, that API - appears in the output. If the representation of the API does not correspond directly to + decompiler to determine that, for each API listed in the TSS, that API + appears in the output. If the representation of the API does not correspond directly to the strings in the following list, the evaluator shall provide a mapping from the - decompiled text to its corresponding API, with a description of why the API text does + decompiled text to its corresponding API, with a description of why the API text does not directly correspond to the decompiled text and justification that the decompiled text - corresponds to the associated API.

    + corresponds to the associated API.

    The following are the per-platform list of acceptable APIs:
      @@ -1686,12 +1686,12 @@

      5.1.1 Class: Cryptographic Support The evaluator shall verify that rand_s, RtlGenRandom, BCryptGenRandom, or - CryptGenRandom API is used for classic desktop applications. The evaluator shall + CryptGenRandom API is used for classic desktop applications. The evaluator shall verify the application uses the RNGCryptoServiceProvider class or derives a class - from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal - Applications. It is only required that the API is called/invoked, there is no - requirement that the API be used directly. In future versions of this document, - CryptGenRandom may be removed as an option as it is no longer the preferred API per + from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal + Applications. It is only required that the API is called/invoked, there is no + requirement that the API be used directly. In future versions of this document, + CryptGenRandom may be removed as an option as it is no longer the preferred API per vendor documentation.

    @@ -1754,7 +1754,7 @@

    5.1.1 Class: Cryptographic Support SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based implementations for CTR_DRBG are allowed.

    -
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection, choose one of: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application +
    The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first @@ -1859,9 +1859,9 @@

    5.1.1 Class: Cryptographic Support

    FCS_STO_EXT.1 Storage of Credentials

    -
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: - list of credentials ]
    • implement functionality to securely store [assignment: - list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application +
    The application shall[selection:
    • not store any credentials
    • invoke the functionality provided by the platform to securely store [assignment: + list of credentials ]
    • implement functionality to securely store [assignment: + list of credentials ] according to [selection: FCS_COP.1/SKC, FCS_CKM.1/PBKDF]
    ]to non-volatile memory.
    Application Note: This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) @@ -1876,7 +1876,7 @@

    5.1.1 Class: Cryptographic Support If "implement functionality to securely store credentials" is selected, then the following components must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding - requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store + requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store credentials, "implement functionality to securely store credentials" must be selected.

    @@ -1909,7 +1909,7 @@

    5.1.1 Class: Cryptographic Support The evaluator shall verify that all certificates are stored in the Windows Certificate Store. The evaluator shall verify that other credentials, like passwords, are stored in the Windows Credential Manager or stored - using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall + using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall verify that the application is using the ProtectData class and storing credentials in IsolatedStorage. @@ -2061,7 +2061,8 @@

    5.1.2 Class: User Data Protection

    FDP_DEC_EXT.1 Access to Platform Resources

    -
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, list of additional hardware resources ].
    Application +
    The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, [assignment: + list of additional hardware resources ]].
    Application Note: The intent is for the evaluator to ensure that the selection captures all @@ -2082,7 +2083,8 @@

    5.1.2 Class: User Data Protection main memory, displays, input devices (e.g. keyboards, mice), and persistent storage devices provided by the platform.

    -
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, list of additional sensitive information repositories ].
    Application +
    The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, [assignment: + list of additional sensitive information repositories ]].
    Application Note: "Sensitive information repositories" are defined as those collections of sensitive data that @@ -2242,9 +2244,10 @@

    5.1.2 Class: User Data Protection

    FDP_NET_EXT.1 Network Communications

    -
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: - list of functions for which the user can initiate network communication ], respond to [assignment: - list of remotely initiated communication ], list of application-initiated network communication ].
    Application +
    The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: + list of functions for which the user can initiate network communication ], respond to [assignment: + list of remotely initiated communication ], [assignment: + list of application-initiated network communication ]].
    Application Note: This requirement is intended to restrict both inbound and @@ -2308,7 +2311,7 @@

    5.1.3 Class: Identification and Au -
    The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
    • RFC 5280 certificate validation and certificate path validation.
    • The certificate path must terminate with a trusted CA certificate.
    • The application shall validate a certificate path by ensuring the presence of the +
      The application shall[selection: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
      • RFC 5280 certificate validation and certificate path validation.
      • The certificate path must terminate with a trusted CA certificate.
      • The application shall validate a certificate path by ensuring the presence of the basicConstraints extension and that the CA flag is set to TRUE for all CA certificates, and that any path constraints are met.
      • The application shall validate that any CA certificate includes caSigning purpose in the key @@ -2484,7 +2487,7 @@

        5.1.3 Class: Identification and Au with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates as a TLS client, X509 authentication must be claimed.

    -
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection, choose one of: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application +
    When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    Application Note: Often a connection must be established to perform a verification of the revocation @@ -2723,7 +2726,7 @@

    5.1.4 Class: Security Management (
  • Test FMT_MEC_EXT.1.1:3[conditional, Platforms:Apple iOS: Apple's mobile operating system for iPhones.]: - The evaluator shall verify that the app uses the + The evaluator shall verify that the app uses the user defaults system or key-value store for storing all settings.
  • @@ -2772,9 +2775,10 @@

    5.1.4 Class: Security Management (

    FMT_SMF.1 Specification of Management Functions

    The TSF shall be capable of performing the following management functions[selection: no management functions, enable/disable the transmission of any information describing the - system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) - information, enable/disable network backup functionality to [assignment: - list of enterprise or commercial cloud backup systems ], list of other management functions to be provided bythe TSF ].
    Application + system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) + information, enable/disable network backup functionality to [assignment: + list of enterprise or commercial cloud backup systems ], [assignment: + list of other management functions to be provided bythe TSF ]].
    Application Note: This requirement stipulates that an application needs to provide the ability to @@ -2800,24 +2804,24 @@

    5.1.4 Class: Security Management (

    5.1.5 Class: Privacy (FPR)

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Information

    -
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: - list of functions that transmit PII over a network ]].
    Application +
    The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: + list of functions that transmit PII over a network ]].
    Application Note: - This requirement applies only to PII that is specifically requested by the application; - it does not apply if the user volunteers PII without prompting from the application + This requirement applies only to PII that is specifically requested by the application; + it does not apply if the user volunteers PII without prompting from the application into a general (or inappropriate) data field. - A dialog box that declares intent to send PII presented to the user + A dialog box that declares intent to send PII presented to the user at the time the application is started is sufficient to meet this requirement.
    The evaluator shall inspect the TSS documentation to identify functionality in the - application where PII can be transmitted.

    + application where PII can be transmitted.

    Guidance
    None.

    Tests
    If require user approval before executing is selected, the evaluator shall run the application and exercise the functionality responsibly - for transmitting PII and verify that user approval is required before transmission - of the PII. + for transmitting PII and verify that user approval is required before transmission + of the PII.
    @@ -2829,14 +2833,14 @@

    5.1.6 Class: Protection of the TSF list of explicit exceptions].
    Application Note: Requesting a memory mapping at an explicit address - subverts address space layout randomization (ASLR). + subverts address space layout randomization (ASLR).

    -
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: - list of functions performing just-in-time compilation ]].
    Application +
    The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: + list of functions performing just-in-time compilation ]].
    Application Note: Requesting a memory mapping with both write and execute permissions subverts the - platform protection provided by DEP. If the application performs no just-in-time + platform protection provided by DEP. If the application performs no just-in-time compiling, then the first selection must be chosen.
    The application shall be compatible with security features provided by the platform vendor.
    Application @@ -2863,7 +2867,7 @@

    5.1.6 Class: Protection of the TSF
    The application shall be built with stack-based buffer overflow protection enabled.
    The evaluator shall ensure that the TSS describes the compiler flags used to - enable ASLR when the application is compiled.
    + enable ASLR when the application is compiled.
    Guidance
    None.
    Tests
    @@ -2898,7 +2902,7 @@

    5.1.6 Class: Protection of the TSF share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to view memory addresses of a running application. The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application has - ASLR enabled. + ASLR enabled. @@ -2908,7 +2912,7 @@

    5.1.6 Class: Protection of the TSF The evaluator shall perform a static analysis to search - for any mmap calls (or API calls that call mmap), and ensure that + for any mmap calls (or API calls that call mmap), and ensure that no arguments are provided that request a mapping at a fixed address. @@ -2975,7 +2979,7 @@

    5.1.6 Class: Protection of the TSF The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application passes the NXCheck. The evaluator may also ensure that the /NXCOMPAT flag was used during - compilation to verify that DEP protections are enabled for the application. + compilation to verify that DEP protections are enabled for the application. @@ -3043,19 +3047,19 @@

    5.1.6 Class: Protection of the TSF - If the OS platform supports Windows Defender Exploit Guard + If the OS platform supports Windows Defender Exploit Guard (Windows 10 version 1709 or later), then the evaluator shall ensure that the application can run successfully with Windows Defender Exploit Guard Exploit Protection configured with the following minimum mitigations enabled; Control Flow Guard (CFG), Randomize memory allocations - (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and - Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, + (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and + Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection.

    - If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be + If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be installed on Windows 10 version 1703 and earlier, then the evaluator shall ensure that the application can run successfully with EMET configured with the following minimum - mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), - Export address filtering (EAF), and Data Execution Prevention (DEP). + mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), + Export address filtering (EAF), and Data Execution Prevention (DEP). @@ -3220,7 +3224,7 @@

    5.1.6 Class: Protection of the TSF

    FPT_API_EXT.2 Use of Supported Services and APIs

    This is an objective component.
    -
    The application[selection, choose one of: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: +
    The application[selection: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types].
    Application Note: @@ -3243,7 +3247,8 @@

    5.1.6 Class: Protection of the TSF

    FPT_IDV_EXT.1 Software Identification and Versions

    The application shall be versioned with[selection: SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 - , other version information ].
    Application + , [assignment: + other version information ]].
    Application Note: The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires @@ -3311,12 +3316,12 @@

    5.1.6 Class: Protection of the TSF The specifics of the verification of updates involves requirements on the platform (and not the application), so these are not fully specified here.

    -
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application +
    The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    Application Note: Application software that is distributed as part of the platform operating system is not required to be package for installation or uninstallation. If "as an additional software - package to the OS" is selected the requirements from FPT_TUD_EXT.2 + package to the OS" is selected the requirements from FPT_TUD_EXT.2 must be included in the ST.
    @@ -3378,7 +3383,7 @@

    5.1.6 Class: Protection of the TSF
    The evaluator shall verify that the TSS identifies how the application is distributed. If "with the platform" is selected the evaluated shall perform a clean installation or factory reset to confirm that TOE software is included - as part of the platform OS. If "as an additional package" is selected the evaluator + as part of the platform OS. If "as an additional package" is selected the evaluator shall perform the tests in FPT_TUD_EXT.2.
    Guidance
    None.
    Tests
    None.
    @@ -3393,7 +3398,7 @@

    5.1.6 Class: Protection of the TSF Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through - means provided by the OS. + means provided by the OS.

    The application installation package shall be digitally signed such that its platform can cryptographically verify them prior to installation.
    Application Note: @@ -3553,7 +3558,7 @@

    5.1.6 Class: Protection of the TSF

    5.1.7 Class: Trusted Path/Channel (FTP)

    FTP_DIT_EXT.1 Protection of Data in Transit

    -
    The application shall[selection: ]between itself and another trusted IT product.
    Application +
    The application shall[selection: ]between itself and another trusted IT product.
    Application Note: Encryption is not required for applications transmitting data that is not sensitive.

    @@ -3650,11 +3655,11 @@

    5.1.7 Class: Trusted Path/Channel

    5.1.8 TOE Security Functional Requirements Rationale

    The following rationale provides justification for each security objective for the TOE, showing that the SFRs are suitable to meet and achieve the security objectives:
    - + - + @@ -3695,36 +3700,21 @@

    5.1.8 TOE Security Functio

    Table 2: SFR Rationale
    ObjectiveAddressed byRationale
    O.INTEGRITY
    FDP_DEC_EXT.1The PP includes FDP_DEC_EXT.1 to limit access to platform hardware resources, which limits the methods by which an attacker can attempt to compromise the integrity of the TOE.
    FMT_CFG_EXT.1The PP includes FMT_CFG_EXT.1 for the TSP to limit unauthorized access to itself by preventing the use of default authentication credentials and by ensuring that the TOE uses appropriately restrictive platform permissions on its binaries and data
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.
    O.MANAGEMENT
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.
    O.PROTECTED_​COMMS
    FCS_CKM.1The PP includes FCS_CKM.1 to specify whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.

    5.2 Security Assurance Requirements

    - - The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in - Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal - instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements - (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation - and performs independent testing.

    - This section lists the set of SARs from CC part 3 that are required in evaluations against this - PP. Individual Evaluation Activities (EAs) to be performed are specified both - in Section 5 Security Requirements as well as in this section.

    - The general model for evaluation of TOEs against STs written to conform to this PP is as follows:

    - After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting - environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to - perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and - ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, - which are intended to be an interpretation of the other CEM assurance requirements as they - apply to the specific technology instantiated in the TOE. The evaluation activities that are - captured in Section 5 Security Requirements also provide clarification as to what the developer needs - to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented - and presented (along with the administrative guidance used) for validation. - -

    5.2.1 Class ASE: Security Target

    - As per ASE activities defined in [CEM]. -

    5.2.2 Class ADV: Development

    The information about the TOE +


    +

    5.2.1 Class ASE: Security Target

    + As per ASE activities defined in [CEM]. + +

    5.2.2 Class ADV: Development

    + The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in - Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to + Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section. -

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    The functional + +

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    + The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the @@ -3737,8 +3727,17 @@

    5.2.2 Class ADV: Development

    T is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list. -

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the - SFRs.
    Application + + + + + + + + + +

    Developer action elements:

    The developer shall provide a functional specification.
    The developer shall provide a tracing from the functional specification to the + SFRs.
    Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and @@ -3756,13 +3755,16 @@

    Developer action elements:

    There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is - provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and + provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided. -

    5.2.3 Class AGD: Guidance Documentation

    +
    + +

    5.2.3 Class AGD: Guidance Documentation

    + The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The @@ -3774,7 +3776,18 @@

    Developer action elements:

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    Developer action elements:

    The developer shall provide operational user guidance.
    Application + +

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    + + + + + + + + + +

    Developer action elements:

    The developer shall provide operational user guidance.
    Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be @@ -3786,7 +3799,7 @@

    Developer action elements:

    The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure - processing environment, including appropriate warnings.
    Application + processing environment, including appropriate warnings.
    Note: User and administrator are to be considered in the definition of user role.
    The operational user guidance shall describe, for each user role, how to use the @@ -3802,8 +3815,8 @@

    Developer action elements:

    The operational user guidance shall be clear and reasonable.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    Some of the contents of the operational guidance will be verified by the - evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE - according to the [CEM]. The following additional + evaluation activities in Section 5.1 Security Functional Requirements and evaluation of the TOE + according to the [CEM]. The following additional information is also required.

    If cryptographic functions are provided by the TOE, the operational guidance shall contain instructions for @@ -3821,7 +3834,14 @@

    Developer action elements:

    TOE will likely contain security functionality that does not fall in the scope of evaluation under this PP. The operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation - activities.

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Application + activities.
    +

    AGD_PRE.1 Preparative Procedures (AGD_PRE.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    Note: As with the operational guidance, the developer should look to @@ -3839,18 +3859,27 @@

    Developer action elements:

    TOE functional requirements. The evaluator shall check to ensure that the guidance provided for the TOE adequately addresses all platforms claimed for the TOE in the ST. -

    5.2.4 Class ALC: Life-cycle Support

    +
    + +

    5.2.4 Class ALC: Life-cycle Support

    + At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level. +

    ALC_CMC.1 Labeling of the TOE (ALC_CMC.1)

    + This component is targeted at identifying the TOE such that it can be distinguished from other products or versions from the same vendor and can be easily specified when being procured by an end user. -

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Application + + + + +

    Developer action elements:

    The developer shall provide the TOE and a reference for the TOE.

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    Note: Unique reference information includes: @@ -3864,7 +3893,13 @@

    Developer action elements:

    TOE, the evaluator shall examine the information on the web site to ensure that the information in the ST is sufficient to distinguish the product. -

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE +
    +

    ALC_CMS.1 TOE CM Coverage (ALC_CMS.1)

    + + + + +

    Developer action elements:

    The developer shall provide a configuration list for the TOE.

    Content and presentation elements:

    The configuration list shall include the following: the TOE itself; and the evaluation evidence required by the SARs.
    The configuration list shall uniquely identify the configuration items.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The "evaluation evidence required by the SARs" in this PP is limited to the @@ -3890,7 +3925,9 @@

    Developer action elements:

    TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the - TSF using this unique identification.

    ALC_TSU_EXT.1 Timely Security Updates

    + TSF using this unique identification.

    +

    ALC_TSU_EXT.1 Timely Security Updates

    + This component requires the TOE developer, in conjunction with any other necessary parties, to provide information as to how the end-user devices are updated to address security issues in a timely manner. The documentation describes the process of providing updates to the @@ -3898,7 +3935,14 @@

    Developer action elements:

    The developer shall provide a description in the TSS of how timely + + + + + + + +

    Developer action elements:

    The developer shall provide a description in the TSS of how timely security updates are made to the TOE.
    Note: @@ -3935,7 +3979,10 @@

    Developer action elements:

    5.2.5 Class ATE: Tests

    +
    + +

    5.2.5 Class ATE: Tests

    + Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN @@ -3944,25 +3991,80 @@

    Developer action elements:

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + +

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    + Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing - is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, - although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. -

    Developer action elements:

    The developer shall provide the TOE for testing.
    Application + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, + although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.
    Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details.

    Content and presentation elements:

    The TOE shall be suitable for testing.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The evaluator shall test a subset of the TSF to confirm - that the TSF operates as specified.
    Application + that the TSF operates as specified.
    Note: The evaluator shall test the application on the most current fully patched version of the platform.
    @@ -3970,7 +4072,7 @@

    Developer action elements:

    [CEM] and the body of this PP’s evaluation activities.

    + the [CEM] and the body of this PP’s evaluation activities.

    While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in the ST is covered. The test plan identifies the platforms to be tested, and for those @@ -3999,7 +4101,10 @@

    Developer action elements:

    5.2.6 Class AVA: Vulnerability Assessment

    +

    + +

    5.2.6 Class AVA: Vulnerability Assessment

    + For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover what vulnerabilities have been discovered in these types of products. In most cases, these @@ -4009,13 +4114,20 @@

    Developer action elements:

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Application + +

    AVA_VAN.1 Vulnerability Survey (AVA_VAN.1)

    + + + + + +

    Developer action elements:

    The developer shall provide the TOE for testing.

    Content and presentation elements:

    The application shall be suitable for testing.
    Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator.

    Evaluator action elements:

    The evaluator shall confirm that the information provided meets all requirements for content and presentation of evidence.
    The evaluator shall perform a search of public domain sources to identify - potential vulnerabilities in the TOE.
    Application + potential vulnerabilities in the TOE.
    Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain @@ -4033,10 +4145,12 @@

    Developer action elements:

    For Windows, Linux, macOS and Solaris: + an appropriate justification would be formulated.

    The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious.

    + +

    Appendix A - Implementation-dependent Requirements

    Implementation-dependent Requirements Appendix defines requirements that must be claimed in the ST @@ -4268,18 +4382,18 @@

    C.3 Specific Guidance for D respect to the application if execution of all PP-specified security functionality follows the same code path on both platforms.

    Table 3. Factors for Determining Hardware/Virtual Hardware Platform Equivalence

    C.5.2 Platform Equivalence—OS Platforms

    For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified - security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following + security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order:
    FactorSame/Different/NoneGuidance
    Platform ArchitecturesDifferentPlatforms that run on different processor architectures and instruction sets are not equivalent.
    Platform VendorsDifferentPlatforms from different vendors are not equivalent.
    Platform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are - differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified + differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are - no differences in device interfaces and OS APIs that are relevant to the way the platform + no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does - not provide such functionality to the application.
    Table 4. Factors for Determining OS/VS Platform Equivalence

    C.5.3 Software-based Execution Environment Platform Equivalence

    + not provide such functionality to the application.
    Table 4. Factors for Determining OS/VS Platform Equivalence

    C.5.3 Software-based Execution Environment Platform Equivalence

    If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the - underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications + underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments.
    FactorSame/Different/NoneGuidance
    Platform Type/VendorDifferentSoftware-based execution environments that are substantially different or come @@ -4307,7 +4421,7 @@

    C.3 Specific Guidance for D configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences - could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security + could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality.

    Software-Based Execution Environments

    For applications that run in a software-based execution environment such as a Java virtual machine or a Container, then @@ -4316,19 +4430,13 @@

    C.3 Specific Guidance for D functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration.

    Appendix D - Acronyms

    - - - + - - - diff --git a/xml-builder-test/diff-v1.4.html b/xml-builder-test/diff-v1.4.html index d8ac498..e956232 100644 --- a/xml-builder-test/diff-v1.4.html +++ b/xml-builder-test/diff-v1.4.html @@ -12,8 +12,8 @@ + Click on the changed parts for a detailed description. Use the left and right arrow keys to walk through the modifications.
    Table 3: Acronyms -
    AcronymMeaning
    APIApplication Programming Interface
    appApplication
    ASLRAddress Space Layout Randomization
    Base-PPBase Protection Profile
    AcronymMeaning
    Base-PPBase Protection Profile
    CCCommon Criteria
    CEMCommon Evaluation Methodology
    cPPCollaborative Protection Profile
    DEPData Execution Prevention
    EPExtended Package
    FPFunctional Package
    OEOperational Environment
    OSOperating System
    PIIPersonally Identifiable Information
    PPProtection Profile
    PP-ConfigurationProtection Profile Configuration
    PP-ModuleProtection Profile Module
     firstDaisy Diff compare report.
    - Click on the changed parts for a detailed description. Use the left and right arrow keys to walk through the modifications.
    - last  + last 
    @@ -257,122 +257,194 @@

    + + +
    - Address Space Layout Randomization (ASLR) + Address Space Layout Randomization
    -
    An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process.
    +
    + (ASLR) + + (app) + + (API) + + (DEP) + + (OS) + - [OMB] + (PII) + [OMB] +

    1.3 Compliant Targets of Evaluation

    - The requirements in this document apply to application software which runs on any type of platform. Some application types are covered by more specific PPs, which may be expressed as PP-Modules of this PP. Such applications are subject to the requirements of both this PP and the PP-Module that addresses their special functionality. PPs for some particularly specialized applications may not be expressed as PP-Modules at this time, though the requirements in this document should be seen as objectives for those highly specialized applications. + The requirements in this document apply to application software which runs on any type of platform. Some application types are covered by more specific PPs, which may be expressed as PP-Modules of this PP. Such applications are subject to the requirements of both this PP and the PP-Module that addresses their special functionality. PPs for some particularly specialized applications may not be expressed as PP-Modules at this time, though the requirements in this document should be seen as objectives for those highly specialized applications.

    - +

    Although the requirements in this document apply to a wide range of application software, consult guidance from the relevant national schemes to determine when formal Common Criteria evaluation is expected for a particular type of application. This may vary depending upon the nature of the security functionality of the application.

    1.3.1 TOE Boundary

    - The application, which consists of the software provided by its vendor, is installed onto the platform(s) it operates on. It executes on the platform, which may be an operating system ( Figure 1), hardware environment, a software based execution environment, or some combination of these ( Figure 2). Those platforms may themselves run within other environments, such as virtual machines or operating systems, that completely abstract away the underlying hardware from the application. The TOE is not accountable for security functionality that is implemented by platform layers that are abstracted away. Some evaluation activities are specific to the particular platform on which the application runs, in order to provide precision and repeatability. The only platforms currently recognized by the AppPP are those specified in SFR Evaluation Activities. To test on a platform for which there are no EAs, a Vendor should contact NIAP with recommended EAs. NIAP will determine if the proposed platform is appropriate for the PP and accept, reject, or develop EAs as necessary in coordination with the technical community. + The application, which consists of the software provided by its vendor, is installed onto the platform(s) it operates on. It executes on the platform, which may be an operating system ( Figure 1), hardware environment, a software based execution environment, or some combination of these ( Figure 2). Those platforms may themselves run within other environments, such as virtual machines or operating systems, that completely abstract away the underlying hardware from the application. The TOE is not accountable for security functionality that is implemented by platform layers that are abstracted away. Some evaluation activities are specific to the particular platform on which the application runs, in order to provide precision and repeatability. The only platforms currently recognized by the AppPP are those specified in SFR Evaluation Activities. To test on a platform for which there are no EAs, a Vendor should contact NIAP with recommended EAs. NIAP will determine if the proposed platform is appropriate for the PP and accept, reject, or develop EAs as necessary in coordination with the technical community.

    - +

    - Applications include a diverse range of software such as office suites, thin clients, PDF readers, downloadable smartphone apps, and apps running in a cloud container. The TOE includes any software in the application installation package, even those pieces that may extend or modify the functionality of the underlying platform, such as kernel drivers. Many platforms come bundled with applications such as web browsers, email clients and media players and these too should be considered subject to the requirements defined in this document although the expectation of formal Common Criteria evaluation depends upon the national scheme. BIOS and other firmware, the operating system kernel, and other systems software (and drivers) provided as part of the platform are outside the scope of this document. + Applications include a diverse range of software such as office suites, thin clients, PDF readers, downloadable smartphone apps, and apps running in a cloud container. The TOE includes any software in the application installation package, even those pieces that may extend or modify the functionality of the underlying platform, such as kernel drivers. Many platforms come bundled with applications such as web browsers, email clients and media players and these too should be considered subject to the requirements defined in this document although the expectation of formal Common Criteria evaluation depends upon the national scheme. BIOS and other firmware, the operating system kernel, and other systems software (and drivers) provided as part of the platform are outside the scope of this document.

    @@ -384,317 +456,329 @@

    1.3.1 TOE Boundary

    Figure 2: TOE as an Application Running in an Execution Environment Plus Native Code

    - 1.4 Platforms with Specific EAs + 1.4 Platforms with Specific EAs

    - This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance. + This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    - +

    - 1.5 Use Cases + 1.5 Use Cases

    Requirements in this Protection Profile are designed to address the security problem in the following use cases. These use cases are intentionally very broad, as many specific use cases exist for application software. Many applications may be used in combinations of these broad use cases, and evaluation against PP-Modules of this PP, when available, may be most appropriate for some application types.
    [USE CASE 1] Content Creation
    - The application allows a user to create content, saving it to either local or remote storage. Example content includes text documents, presentations, and images. + The application allows a user to create content, saving it to either local or remote storage. Example content includes text documents, presentations, and images.
    [USE CASE 2] Content Consumption
    - The application allows a user to consume content, retrieving it from either local or remote storage. Example content includes web pages and video. + The application allows a user to consume content, retrieving it from either local or remote storage. Example content includes web pages and video.
    [USE CASE 3] Communication
    - The application allows for communication interactively or non-interactively with other users or applications over a communications channel. Example communications include instant messages, email, and voice. + The application allows for communication interactively or non-interactively with other users or applications over a communications channel. Example communications include instant messages, email, and voice.
    - +

    - +

    - 1.5 Platforms with Specific EAs This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance. + 1.5 Platforms with Specific EAs This PP includes platform-specific EAs for the below-listed operating system platforms. For "bare-metal" applications, applications that run on other OS platforms, and applications that run in software-based execution environments contact the Technical Community for guidance.

    - +

    2 Conformance Claims

    -
    - Conformance Statement + Conformance Statement
    - An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017). + An ST must claim exact conformance to this PP, as defined in the CC and CEM addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).
    - CC Conformance Claims + CC Conformance Claims
    - This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5. + This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5.
    -
    - PP Claim +
    + PP
    + Claim
    - This PP does not claim conformance to any other Protection Profile. + This PP does not claim conformance to any other Protection Profile.

    - +

    - The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP. -

    - -

    - Protection Profile for Mobile Device Management Version 4.0 -

    - -

    - PP-Module for File Encryption, Version 1.0 -

    - -

    - PP-Module for File Encryption Enterprise Management, Version 1.0 -

    - -

    - PP-Module for VPN Clients, Version 2.2 -

    - -

    - PP-Module for VPN Clients, Version 2.3 -

    - -

    - PP-Module for Endpoint Detection and Response, Version 1.0 -

    - -

    - PP-Module for Host Agent, Version 1.0 -

    - -

    - PP-Module for Voice and Video over IP (VVoIP), Version 1.0 -

    - -

    - PP-Module for Email Clients, Version 1.0
    + The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP. +
    + +
    +
    +
  • + Protection Profile for Mobile Device Management Version 4.0 +
  • +
  • + PP-Module for File Encryption, Version 1.0 +
  • +
  • + PP-Module for File Encryption Enterprise Management, Version 1.0 +
  • +
  • + PP-Module for VPN Clients, Version 2.2 +
  • +
  • + PP-Module for VPN Clients, Version 2.3 +
  • +
  • + PP-Module for Endpoint Detection and Response, Version 1.0 +
  • +
  • + PP-Module for Host Agent, Version 1.0 +
  • +
  • + PP-Module for Voice and Video over IP (VVoIP), Version 1.0 +
  • +
  • + PP-Module for Email Clients, Version 1.0 +
  • +
    -
    - Package Claim +
    + Package Claim +
    +
    +
      + +
    • + This PP is Functional Package for TLS Version 1.1 Conformant. +
    • +
    • + This PP is Functional Package for SSH Version 1.0 Conformant. +
    • +
    +
    +
    + 3 Security Problem Description +
    +
    + Claims
    -
      - -
    • - This PP is Functional Package for TLS Version 1.1 Conformant. -
    • -
    • - This PP is Functional Package for SSH Version 1.0 Conformant. -
    • -
    +
    + +
    +
    +
    +
    + Package Claims +
    +
    + +
    + +
    - -

    - 3 Security Problem -

    - Description

    - Definition + 3 Security Problem Definition

    The security problem is described in terms of the threats that the TOE is expected to address, assumptions about the operational environment, and any organizational security policies that the TOE is expected to enforce.

    3.1 Threats

    - +
    - T.LOCAL_ATTACK + T.LOCAL_ATTACK
    - An attacker can act through unprivileged software on the same computingplatform on which the application executes. Attackers may provide maliciously formattedinput to the application in the form of files or other localcommunications. + An attacker can act through unprivileged software on the same computingplatform on which the application executes. Attackers may provide maliciously formattedinput to the application in the form of files or other localcommunications.
    - T.NETWORK_ATTACK + T.NETWORK_ATTACK
    - An attacker is positioned on a communications channel or elsewhere on the network thenetwork infrastructure. Attackers may engage in communications with the application software applicationsoftware or alter communications between the application software and other endpoints in order inorder to compromise it. + An attacker is positioned on a communications channel or elsewhere on the network thenetwork infrastructure. Attackers may engage in communications with the application software applicationsoftware or alter communications between the application software and other endpoints in order inorder to compromise it.
    - T.NETWORK_EAVESDROP + T.NETWORK_EAVESDROP
    - An attacker is positioned on a communications channel or elsewhere on the network thenetwork infrastructure. Attackers may monitor and gain access to data exchanged between the betweenthe application and other endpoints. + An attacker is positioned on a communications channel or elsewhere on the network thenetwork infrastructure. Attackers may monitor and gain access to data exchanged between the betweenthe application and other endpoints.
    - T. + T.
    - LOCAL_ATTACK + LOCAL_ATTACK
    - An attacker can act through unprivileged software on the same computing platform on which the application executes. Attackers may provide maliciously formatted input to the application in the form of files or other local communications. + An attacker can act through unprivileged software on the same computing platform on which the application executes. Attackers may provide maliciously formatted input to the application in the form of files or other local communications.
    - T. + T.
    - PHYSICAL_ACCESS + PHYSICAL_ACCESS
    - An attacker may try to access sensitive data at rest. + An attacker may try to access sensitive data at rest.
    - +

    3.2 Assumptions

    - +
    - A.PLATFORM + A.PLATFORM
    - The TOE relies upon a trustworthy computing platform with a reliable time clock for its execution. This includes the underlying platform and whatever runtime environment it provides to the TOE. + The TOE relies upon a trustworthy computing platform with a reliable time clock for its execution. This includes the underlying platform and whatever runtime environment it provides to the TOE.
    - A.PROPER_ + A.PROPER_
    - USER + USER
    - ADMIN + ADMIN
    - The user administrator of the application software is not careless, willfully negligent or hostile, and uses administers the software in compliance with the applied enterprise security policy. + The user administrator of the application software is not careless, willfully negligent or hostile, and uses administers the software in compliance with the applied enterprise security policy.
    - A.PROPER_ + A.PROPER_
    - ADMIN + ADMIN
    - USER + USER
    - The administrator user of the application software is not careless, willfully negligent or hostile, and administers uses the software in compliance with the applied enterprise security policy. + The administrator user of the application software is not careless, willfully negligent or hostile, and administers uses the software in compliance with the applied enterprise security policy.
    - +

    3.3 Organizational Security Policies

    This document does not define any additional OSPs.

    4 Security Objectives

    4.1 Security Objectives for the TOE

    - +
    - O.INTEGRITY + O.INTEGRITY
    - Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options. + Conformant TOEs ensure the integrity of their installation and update packages, and also leverage execution environment-based mitigations. Software is seldom, if ever, shipped without errors. The ability to deploy patches and updates to fielded software with integrity is critical to enterprise network security. Processor manufacturers, compiler developers, execution environment vendors, and operating system vendors have developed execution environment-based mitigations that increase the cost to attackers by adding complexity to the task of compromising systems. Application software can often take advantage of these mechanisms by using APIs provided by the runtime environment or by enabling the mechanism through compiler or linker options.
    - O. + O.
    - QUALITY + QUALITY
    - To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs. + To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.
    - O. + O.
    - MANAGEMENT + MANAGEMENT
    - To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII. + To facilitate management by users and the enterprise, conformant TOEs provide consistent and supported interfaces for their security-relevant configuration and maintenance. This includes the deployment of applications and application updates through the use of platform-supported deployment mechanisms and formats, as well as providing mechanisms for configuration. This also includes providing control to the user regarding disclosure of any PII.
    - O.PROTECTED_COMMS + O.PROTECTED_COMMS
    - To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application. + To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    - O.PROTECTED_STORAGE + O.PROTECTED_STORAGE
    - To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data. + To address the issue of loss of confidentiality of user data in the event of loss of physical control of the storage medium, conformant TOEs will use data-at-rest protection. This involves encrypting data and keys stored by the TOE in order to prevent unauthorized access to this data. This also includes unnecessary network communications whose consequence may be the loss of data.
    - O. + O.
    - PROTECTED_COMMS + PROTECTED_COMMS
    - To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application. + To address both passive (eavesdropping) and active (packet modification) network attack threats, conformant TOEs will use a trusted channel for sensitive data. Sensitive data includes cryptographic keys, passwords, and any other data specific to the application that should not be exposed outside of the application.
    - QUALITY + QUALITY
    - To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs. + To ensure quality of implementation, conformant TOEs leverage services and APIs provided by the runtime environment rather than implementing their own versions of these services and APIs. This is especially important for cryptographic services and other complex operations such as file and media parsing. Leveraging this platform behavior relies upon using only documented and supported APIs.
    - +

    4.2 Security Objectives for the Operational Environment

    - The following security objectives for the operational environment assist the TOE in correctly providing its security functionality. These track with the assumptions about the environment. + The following security objectives for the operational environment assist the TOE in correctly providing its security functionality. These track with the assumptions about the environment.
    - OE.PLATFORM + OE.PLATFORM
    - The TOE relies upon a trustworthy computing platform for its execution. This includes the underlying operating system and any discrete execution environment provided to the TOE. + The TOE relies upon a trustworthy computing platform for its execution. This includes the underlying operating system and any discrete execution environment provided to the TOE.
    - OE.PROPER_ + OE.PROPER_
    - USER + USER
    - ADMIN + ADMIN
    - The user administrator of the application software is not careless, willfully negligent or hostile, and uses administers the software within compliance of the applied enterprise security policy. + The user administrator of the application software is not careless, willfully negligent or hostile, and uses administers the software within compliance of the applied enterprise security policy.
    - OE.PROPER_ + OE.PROPER_
    - ADMIN + ADMIN
    - USER + USER
    - The administrator user of the application software is not careless, willfully negligent or hostile, and administers uses the software within compliance of the applied enterprise security policy. + The administrator user of the application software is not careless, willfully negligent or hostile, and administers uses the software within compliance of the applied enterprise security policy.
    - +

    4.3 Security Objectives Rationale

    This section describes how the assumptions, threats, and organizational security policies map to the security objectives. @@ -705,119 +789,119 @@

    4.3 Security Objectives Rationale<

    - NETWORKATTACK + NETWORKATTACK - ATTACK is countered by O.PROTECTED_COMMS as this provides for integrity of transmitted data. + ATTACK is countered by O.PROTECTED_COMMS as this provides for integrity of transmitted data. - provides for + provides for - + - the network + the network - + - + - - + - COMMS + COMMS - + - EAVESDROP + EAVESDROP - + - this provides + this provides - + - confidentiality + confidentiality - + - + - QUALITY + QUALITY - + - The objective + The objective - + - QUALITY ensures use of mechanisms that provide protection against network-based attack.O. + QUALITY ensures use of mechanisms that provide protection against network-based attack.O. - + - this provides + this provides - + - the confidentiality + the confidentiality - + - + - LOCAL_ATTACK + LOCAL_ATTACK - + - + - protects against the + protects against the - + - weaken the TOE with regard to attack by other software on the platform + weaken the TOE with regard to attack by other software on the platform - + - + - + - + - +
    Threat, Assumption, or OSPSecurity ObjectivesRationale
    T.LOCAL_​ATTACKO.PROTECTED_COMMSThe threat QUALITYThe objective O.QUALITY protects against the use ofmechanisms that weaken the TOE with regard toattack by other software on the platform.T.LOCAL_​ATTACKO.PROTECTED_COMMSThe threat QUALITYThe objective O.QUALITY protects against the use ofmechanisms that weaken the TOE with regard toattack by other software on the platform.
    T.NETWORK_​ATTACKO.INTEGRITYThe threat T.NETWORK_ATTACK is countered by O.INTEGRITY as this T.NETWORK_​ATTACKO.INTEGRITYThe threat T.NETWORK_ATTACK is countered by O.INTEGRITY as this
    providesfor integrity of software that is installed onto the system from providesfor integrity of software that is installed onto the system from
    thenetwork.thenetwork.
    O.MANAGEMENTThe threat T.NETWORK_ATTACK is countered by O.MANAGEMENT as this provides thisprovides for the ability to configure the application to defend against network attack.O.MANAGEMENTThe threat T.NETWORK_ATTACK is countered by O.MANAGEMENT as this provides thisprovides for the ability to configure the application to defend against network attack.
    T.NETWORK_EAVESDROP + T.NETWORK_EAVESDROP
    - +
    O.PROTECTED_O.PROTECTED_
    ​COMMSThe threat T.NETWORK_​COMMSThe threat T.NETWORK_
    ATTACK is countered by O.PROTECTED_COMMS as ATTACK is countered by O.PROTECTED_COMMS as
    thisprovides for thisprovides for
    integrity of transmitted data.Ointegrity of transmitted data.O
    T.T.
    NETWORK_​EAVESDROPNETWORK_​EAVESDROP
    O.O.
    MANAGEMENTThe threat T.NETWORK_EAVESDROP is countered by O.MANAGEMENT as MANAGEMENTThe threat T.NETWORK_EAVESDROP is countered by O.MANAGEMENT as
    thisprovides for the ability to configure the application to protect thisprovides for the ability to configure the application to protect
    theconfidentiality of its transmitted data.theconfidentiality of its transmitted data.
    O.PROTECTED_​COMMSThe threat T.O.PROTECTED_​COMMSThe threat T.
    NETWORK_EAVESDROP is countered by O.PROTECTED_COMMS as thisprovides for confidentiality of transmitted data.NETWORK_EAVESDROP is countered by O.PROTECTED_COMMS as thisprovides for confidentiality of transmitted data.
    O.QUALITYThe objective O.QUALITYO.QUALITYThe objective O.QUALITY
    ensures use of mechanisms that ensures use of mechanisms that
    provide protection against network-based attack.provide protection against network-based attack.
    T.PHYSICAL_ACCESS​ACCESSO.PROTECTED_STORAGE​STORAGEThe objective O.PROTECTED_STORAGE protects against unauthorized attempts to access physical accessphysical storage used by the TOE.T.PHYSICAL_ACCESS​ACCESSO.PROTECTED_STORAGE​STORAGEThe objective O.PROTECTED_STORAGE protects against unauthorized attempts to access physical accessphysical storage used by the TOE.
    A.PLATFORMOE.PLATFORMThe operational environment objective OE.PLATFORM is realized through A.PLATFORM.A.PLATFORMOE.PLATFORMThe operational environment objective OE.PLATFORM is realized through A.PLATFORM.
    A.PROPER_USER​ADMINOE.PROPER_USER​ADMINThe operational environment objective OE.PROPER_USERADMIN is realized through A.PROPER_USERADMIN.A.PROPER_USER​ADMINOE.PROPER_USER​ADMINThe operational environment objective OE.PROPER_USERADMIN is realized through A.PROPER_USERADMIN.
    A.PROPER_ADMIN​USEROE.PROPER_ADMIN​USERThe operational environment objective OE.PROPER_ADMINUSER is realized through A.PROPER_ADMINUSER.A.PROPER_ADMIN​USEROE.PROPER_ADMIN​USERThe operational environment objective OE.PROPER_ADMINUSER is realized through A.PROPER_ADMINUSER.

    5 Security Requirements

    This chapter describes the security requirements which have to be fulfilled by the product under evaluation. Those requirements comprise functional components from Part 2 and assurance components from Part 3 of [CC]. The following conventions are used for the completion of operations:

    5.1 Security Functional Requirements

    - 5.1.1 Class: Cryptographic Support (FCS) + 5.1.1 Class: Cryptographic Support (FCS)

    FCS_CKM.1 Cryptographic Key Generation Services

    @@ -826,7 +910,7 @@

    FCS_CKM.1 Cryptographic Key Generation Services

    FCS_CKM.1.1
    - The application shall[selection: generate no asymmetric cryptographic keys, invoke platform-provided functionality for asymmetric key generation, implement asymmetric key generation]. + The application shall[selection: generate no asymmetric cryptographic keys, invoke platform-provided functionality for asymmetric key generation, implement asymmetric key generation].
    Application Note: If "implement asymmetric key generation" or "invoke platform-provided functionality for asymmetric key generation" is chosen, then additional FCS_CKM.1/AK elements shall be included in the ST.
    @@ -844,21 +928,21 @@

    FCS_CKM.1 Cryptographic Key Generation Services

    TSS
    - The evaluator shall inspect the application and its developer documentation to determine if the application needs asymmetric key generation services. If not, the evaluator shall verify the generate no asymmetric cryptographic keys selection is present in the ST. Otherwise, the evaluation activities shall be performed as stated in the selection-based requirements. + The evaluator shall inspect the application and its developer documentation to determine if the application needs asymmetric key generation services. If not, the evaluator shall verify the generate no asymmetric cryptographic keys selection is present in the ST. Otherwise, the evaluation activities shall be performed as stated in the selection-based requirements.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - None. + None.
    @@ -870,11 +954,11 @@

    FCS_RBG_EXT.1 Random Bit Generation Services

    FCS_RBG_EXT.1.1
    - The application shall[selection: use no DRBG functionality, invoke platform-provided DRBG functionality, implement DRBG functionality]for its cryptographic operations. + The application shall[selection: use no DRBG functionality, invoke platform-provided DRBG functionality, implement DRBG functionality]for its cryptographic operations.
    - Application Note: The selection "invoke platform-provided DRBG functionality" should only be chosen for direct invocations of the platform DRBG, calls to platform protocols that may then call the platform's DRBG are not directly using DRBG functionality and should select "use no DRBG functionality." + Application Note: The selection "invoke platform-provided DRBG functionality" should only be chosen for direct invocations of the platform DRBG, calls to platform protocols that may then call the platform's DRBG are not directly using DRBG functionality and should select "use no DRBG functionality."

    - If "implement DRBG functionality" is chosen, then additional FCS_RBG_EXT.2 elements shall be included in the ST. + If "implement DRBG functionality" is chosen, then additional FCS_RBG_EXT.2 elements shall be included in the ST.

    In this requirement, cryptographic operations include all cryptographic key generation/derivation/agreement, IVs (for certain modes), as well as protocol-specific random values. Cryptographic operations in this requirement refer to the other cryptographic requirements in this PP, not additional functionality that is not in scope.
    @@ -886,146 +970,146 @@

    FCS_RBG_EXT.1 Random Bit Generation Services

    - FCS_RBG_EXT.1.1 + FCS_RBG_EXT.1.1
    TSS
    - If "use no DRBG functionality" is selected, the evaluator shall inspect the application and its developer documentation and verify that the application needs no random bit generation services. + If "use no DRBG functionality" is selected, the evaluator shall inspect the application and its developer documentation and verify that the application needs no random bit generation services.

    - +

    - If "implement DRBG functionality" is selected, the evaluator shall ensure that additional FCS_RBG_EXT.2 elements are included in the ST. + If "implement DRBG functionality" is selected, the evaluator shall ensure that additional FCS_RBG_EXT.2 elements are included in the ST.

    - +

    - If "invoke platform-provided DRBG functionality" is selected, the evaluator performs the following activities. The evaluator shall examine the TSS to confirm that it identifies all functions (as described by the SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator shall determine that for each of these functions, the TSS states which platform interface (API) is used to obtain the random numbers. The evaluator shall confirm that each of these interfaces corresponds to the acceptable interfaces listed for each platform below. + If "invoke platform-provided DRBG functionality" is selected, the evaluator performs the following activities. The evaluator shall examine the TSS to confirm that it identifies all functions (as described by the SFRs included in the ST) that obtain random numbers from the platform RBG. The evaluator shall determine that for each of these functions, the TSS states which platform interface (API) is used to obtain the random numbers. The evaluator shall confirm that each of these interfaces corresponds to the acceptable interfaces listed for each platform below.

    - +

    - It should be noted that there is no expectation that the evaluators attempt to confirm that the APIs are being used correctly for the functions identified in the TSS; the activity is to list the used APIs and then do an existence check via decompilation. + It should be noted that there is no expectation that the evaluators attempt to confirm that the APIs are being used correctly for the functions identified in the TSS; the activity is to list the used APIs and then do an existence check via decompilation.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - If "invoke platform-provided DRBG functionality" is selected, the following tests shall be performed: + If "invoke platform-provided DRBG functionality" is selected, the following tests shall be performed:

    - +

    - The evaluator shall decompile the application binary using a decompiler suitable for the application (TOE). The evaluator shall search the output of the decompiler to determine that, for each API listed in the TSS, that API appears in the output. If the representation of the API does not correspond directly to the strings in the following list, the evaluator shall provide a mapping from the decompiled text to its corresponding API, with a description of why the API text does not directly correspond to the decompiled text and justification that the decompiled text corresponds to the associated API. + The evaluator shall decompile the application binary using a decompiler suitable for the application (TOE). The evaluator shall search the output of the decompiler to determine that, for each API listed in the TSS, that API appears in the output. If the representation of the API does not correspond directly to the strings in the following list, the evaluator shall provide a mapping from the decompiled text to its corresponding API, with a description of why the API text does not directly correspond to the decompiled text and justification that the decompiled text corresponds to the associated API.

    - +

    - The following are the per-platform list of acceptable APIs: + The following are the per-platform list of acceptable APIs:
    - ... + ...
    - ... + ...
    • - : Microsoft Windows operating systems.]: The evaluator shall verify that rand_s, RtlGenRandom, BCryptGenRandom, or CryptGenRandom API is used for classic desktop applications. The evaluator shall verify the application uses the RNGCryptoServiceProvider class or derives a class from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal Applications. It is only required that the API is called/invoked, there is no requirement that the API be used directly. In future versions of this document, CryptGenRandom may be removed as an option as it is no longer the preferred API per vendor documentation. + : Microsoft Windows operating systems.]: The evaluator shall verify that rand_s, RtlGenRandom, BCryptGenRandom, or CryptGenRandom API is used for classic desktop applications. The evaluator shall verify the application uses the RNGCryptoServiceProvider class or derives a class from System.Security.Cryptography.RandomNumberGenerator API for Windows Universal Applications. It is only required that the API is called/invoked, there is no requirement that the API be used directly. In future versions of this document, CryptGenRandom may be removed as an option as it is no longer the preferred API per vendor documentation.
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    • - : Apple's operating system for MACs.]: The evaluator shall verify that the application invokes either CCRandomGenerateBytes or CCRandomCopyBytes, or collects random from /dev/random. + : Apple's operating system for MACs.]: The evaluator shall verify that the application invokes either CCRandomGenerateBytes or CCRandomCopyBytes, or collects random from /dev/random.
    - If invocation of platform-provided functionality is achieved in another way, the evaluator shall ensure the TSS describes how this is carried out, and how it is equivalent to the methods listed here (e.g. higher-level API invokes identical low-level API). + If invocation of platform-provided functionality is achieved in another way, the evaluator shall ensure the TSS describes how this is carried out, and how it is equivalent to the methods listed here (e.g. higher-level API invokes identical low-level API).
    @@ -1039,18 +1123,18 @@

    FCS_STO_EXT.1 Storage of Credentials

    The application shall[selection: ]to non-volatile memory.
    - Application Note: This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) are stored securely, and never persisted in cleartext form. Application developers are encouraged to use platform mechanisms for the secure storage of credentials. Depending on the platform that may include hardware-backed protection for credential storage. Application developers must choose a selection, or multiple selections, based on all credentials that the application stores. If "not store any credentials" is selected then the application must not store any credentials. If "invoke the functionality provided by the platform to securely store" is selected then the Application developer must closely review the EA for their platform and provide documentation indicating which platform mechanisms are used to store credentials. If "implement functionality to securely store credentials" is selected, then the following components must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store credentials, "implement functionality to securely store credentials" must be selected. + Application Note: This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) are stored securely, and never persisted in cleartext form. Application developers are encouraged to use platform mechanisms for the secure storage of credentials. Depending on the platform that may include hardware-backed protection for credential storage. Application developers must choose a selection, or multiple selections, based on all credentials that the application stores. If "not store any credentials" is selected then the application must not store any credentials. If "invoke the functionality provided by the platform to securely store" is selected then the Application developer must closely review the EA for their platform and provide documentation indicating which platform mechanisms are used to store credentials. If "implement functionality to securely store credentials" is selected, then the following components must be included in the ST: FCS_COP.1/SKC or FCS_CKM.1/PBKDF. If other cryptographic operations are used to implement the secure storage of credentials, the corresponding requirements must be included in the ST. If the OS is Linux and Java KeyStores are used to store credentials, "implement functionality to securely store credentials" must be selected.
    @@ -1060,121 +1144,121 @@

    FCS_STO_EXT.1 Storage of Credentials

    - FCS_STO_EXT.1.1 + FCS_STO_EXT.1.1
    TSS
    - The evaluator shall check the TSS to ensure that it lists all persistent credentials (secret keys, PKI private keys, or passwords) needed to meet the requirements in the ST. For each of these items, the evaluator shall confirm that the TSS lists for what purpose it is used, and how it is stored. + The evaluator shall check the TSS to ensure that it lists all persistent credentials (secret keys, PKI private keys, or passwords) needed to meet the requirements in the ST. For each of these items, the evaluator shall confirm that the TSS lists for what purpose it is used, and how it is stored.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - For all credentials for which the application implements functionality, the evaluator shall verify credentials are encrypted according to FCS_COP.1/SKC or conditioned according to FCS_CKM.1.1/AK and FCS_CKM.1/PBKDF. For all credentials for which the application invokes platform-provided functionality, the evaluator shall perform the following actions which vary per platform. + For all credentials for which the application implements functionality, the evaluator shall verify credentials are encrypted according to FCS_COP.1/SKC or conditioned according to FCS_CKM.1.1/AK and FCS_CKM.1/PBKDF. For all credentials for which the application invokes platform-provided functionality, the evaluator shall perform the following actions which vary per platform.
    - ... + ...
    - ... + ...
    • - : Microsoft Windows operating systems.]: The evaluator shall verify that all certificates are stored in the Windows Certificate Store. The evaluator shall verify that other credentials, like passwords, are stored in the Windows Credential Manager or stored using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall verify that the application is using the ProtectData class and storing credentials in IsolatedStorage. + : Microsoft Windows operating systems.]: The evaluator shall verify that all certificates are stored in the Windows Certificate Store. The evaluator shall verify that other credentials, like passwords, are stored in the Windows Credential Manager or stored using the Data Protection API (DPAPI). For Windows Universal Applications, the evaluator shall verify that the application is using the ProtectData class and storing credentials in IsolatedStorage.
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    @@ -1183,124 +1267,124 @@

    FCS_STO_EXT.1 Storage of Credentials

    - 5.1.2 Class: User Data Protection (FDP) + 5.1.2 Class: User Data Protection (FDP)

    - FDP_DAR_EXT.1 Encryption Of Sensitive Application Data + FDP_DAR_EXT.1 Encryption Of Sensitive Application Data

    - The application shall[selection: leverage platform-provided functionality to encrypt sensitive data, implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption, protect sensitive data in accordance with FCS_STO_EXT.1, not store any sensitive data]in non-volatile memory. + The application shall[selection: leverage platform-provided functionality to encrypt sensitive data, implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption, protect sensitive data in accordance with FCS_STO_EXT.1, not store any sensitive data]in non-volatile memory.
    - Application Note: If "implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption" is selected, the TSF must claim conformance to a PP-Configuration that includes the File Encryption PP-Module. + Application Note: If "implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption" is selected, the TSF must claim conformance to a PP-Configuration that includes the File Encryption PP-Module.

    - +

    - Any file that may potentially contain sensitive data (to include temporary files) shall be protected. The only exception is if the user intentionally exports the sensitive data to non-protected files. ST authors should select "protect sensitive data in accordance with FCS_STO_EXT.1" for the sensitive data that is covered by the FCS_STO_EXT.1 SFR.
    + Any file that may potentially contain sensitive data (to include temporary files) shall be protected. The only exception is if the user intentionally exports the sensitive data to non-protected files. ST authors should select "protect sensitive data in accordance with FCS_STO_EXT.1" for the sensitive data that is covered by the FCS_STO_EXT.1 SFR.
    - TSS + TSS
    - The evaluator shall examine the TSS to ensure that it describes the sensitive data processed by the application. The evaluator shall then ensure that the following activities cover all of the sensitive data identified in the TSS. + The evaluator shall examine the TSS to ensure that it describes the sensitive data processed by the application. The evaluator shall then ensure that the following activities cover all of the sensitive data identified in the TSS.

    - +

    - If not store any sensitive data is selected, the evaluator shall inspect the TSS to ensure that it describes how sensitive data cannot be written to non-volatile memory. The evaluator shall also ensure that this is consistent with the filesystem test below. + If not store any sensitive data is selected, the evaluator shall inspect the TSS to ensure that it describes how sensitive data cannot be written to non-volatile memory. The evaluator shall also ensure that this is consistent with the filesystem test below.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - Evaluation activities (after the identification of the sensitive data) are to be performed on all sensitive data listed that are not covered by FCS_STO_EXT.1. + Evaluation activities (after the identification of the sensitive data) are to be performed on all sensitive data listed that are not covered by FCS_STO_EXT.1.

    - +

    - The evaluator shall inventory the filesystem locations where the application may write data. The evaluator shall run the application and attempt to store sensitive data. The evaluator shall then inspect those areas of the filesystem to note where data was stored (if any), and determine whether it has been encrypted. + The evaluator shall inventory the filesystem locations where the application may write data. The evaluator shall run the application and attempt to store sensitive data. The evaluator shall then inspect those areas of the filesystem to note where data was stored (if any), and determine whether it has been encrypted.

    - +

    - If "leverage platform-provided functionality" is selected, the evaluation activities will be performed as stated in the following requirements, which vary on a per-platform basis. + If "leverage platform-provided functionality" is selected, the evaluation activities will be performed as stated in the following requirements, which vary on a per-platform basis.

    - +

    - + - +
    • - Test FDP_DAR_EXT.1.1:2[conditional, Platforms:Microsoft Windows: Microsoft Windows operating systems.]: The Windows platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption, such as BitLocker or Encrypting File System (EFS), clear to the end user. + Test FDP_DAR_EXT.1.1:2[conditional, Platforms:Microsoft Windows: Microsoft Windows operating systems.]: The Windows platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption, such as BitLocker or Encrypting File System (EFS), clear to the end user.
    -
    + - + - + - +
    • - Test FDP_DAR_EXT.1.1:6[conditional, Platforms:Apple macOS: Apple's operating system for MACs.]: The macOS platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user. + Test FDP_DAR_EXT.1.1:6[conditional, Platforms:Apple macOS: Apple's operating system for MACs.]: The macOS platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user.
    -
    +

    - FDP_DEC_EXT.1 Access to Platform Resources + FDP_DEC_EXT.1 Access to Platform Resources

    - The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, [assignment: list of additional hardware resources ]]. + The application shall restrict its access to[selection: no hardware resources, network connectivity, camera, microphone, location services, NFC, USB, Bluetooth, [assignment: list of additional hardware resources ]].
    Application Note: The intent is for the evaluator to ensure that the selection captures all hardware resources which the application accesses, and that these are restricted to those which are justified. On some platforms, the application must explicitly solicit permission in order to access hardware resources. Seeking such permissions, even if the application does not later make use of the hardware resource, should still be considered access. Selections should be expressed in a manner consistent with how the application expresses its access needs to the underlying platform. For example, the platform may provide location services which implies the potential use of a variety of hardware resources (e.g. satellite receivers, WiFi, cellular radio) yet "location services" is the proper selection. This is because use of these resources can be inferred, but also because the actual usage may vary based on the particular platform. Resources that do not need to be explicitly identified are those which are ordinarily used by any application such as central processing units, main memory, displays, input devices (e.g. keyboards, mice), and persistent storage devices provided by the platform.
    @@ -1311,7 +1395,7 @@

    FDP_DEC_EXT.1.2

    - The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, [assignment: list of additional sensitive information repositories ]]. + The application shall restrict its access to[selection: no sensitive information repositories, address book, calendar, call lists, system logs, [assignment: list of additional sensitive information repositories ]].
    Application Note: "Sensitive information repositories" are defined as those collections of sensitive data that could be expected to be shared among some applications, users, or user roles, but to which not all of these would ordinarily require access.
    @@ -1329,16 +1413,16 @@

    TSS

    - None. + None.
    - +
    Guidance
    - The evaluator shall perform the platform-specific actions below and inspect user documentation to determine the application's access to hardware resources. The evaluator shall ensure that this is consistent with the selections indicated. The evaluator shall review documentation provided by the application developer and for each resource which it accesses, identify the justification as to why access is required. + The evaluator shall perform the platform-specific actions below and inspect user documentation to determine the application's access to hardware resources. The evaluator shall ensure that this is consistent with the selections indicated. The evaluator shall review documentation provided by the application developer and for each resource which it accesses, identify the justification as to why access is required.
    - +
    Tests
    @@ -1346,104 +1430,104 @@

    - ... + ...
    - ... + ...
    • - : Microsoft Windows operating systems.]: For Windows Universal Applications the evaluator shall check the WMAppManifest.xml file for a list of required hardware capabilities. The evaluator shall verify that the user is made aware of the required hardware capabilities when the application is first installed. This includes permissions such as ID_CAP_ISV_CAMERA, ID_CAP_LOCATION, ID_CAP_NETWORKING, ID_CAP_MICROPHONE, ID_CAP_PROXIMITY and so on. A complete list of Windows App permissions can be found at: + : Microsoft Windows operating systems.]: For Windows Universal Applications the evaluator shall check the WMAppManifest.xml file for a list of required hardware capabilities. The evaluator shall verify that the user is made aware of the required hardware capabilities when the application is first installed. This includes permissions such as ID_CAP_ISV_CAMERA, ID_CAP_LOCATION, ID_CAP_NETWORKING, ID_CAP_MICROPHONE, ID_CAP_PROXIMITY and so on. A complete list of Windows App permissions can be found at: - For Windows Desktop Applications the evaluator shall identify in either the application software or its documentation the list of the required hardware resources. + For Windows Desktop Applications the evaluator shall identify in either the application software or its documentation the list of the required hardware resources.
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    • - : Apple's operating system for MACs.]: The evaluator shall verify that either the application software or its documentation provides a list of the hardware resources it accesses. + : Apple's operating system for MACs.]: The evaluator shall verify that either the application software or its documentation provides a list of the hardware resources it accesses.
    @@ -1455,16 +1539,16 @@

    TSS

    - None. + None.
    - +
    Guidance
    - The evaluator shall perform the platform-specific actions below and inspect user documentation to determine the application's access to sensitive information repositories. The evaluator shall ensure that this is consistent with the selections indicated. The evaluator shall review documentation provided by the application developer and for each sensitive information repository which it accesses, identify the justification as to why access is required. + The evaluator shall perform the platform-specific actions below and inspect user documentation to determine the application's access to sensitive information repositories. The evaluator shall ensure that this is consistent with the selections indicated. The evaluator shall review documentation provided by the application developer and for each sensitive information repository which it accesses, identify the justification as to why access is required.
    - +
    Tests
    @@ -1472,104 +1556,104 @@

    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    @@ -1584,7 +1668,7 @@

    FDP_NET_EXT.1 Network Communications

    FDP_NET_EXT.1.1
    - The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: list of functions for which the user can initiate network communication ], respond to [assignment: list of remotely initiated communication ], [assignment: list of application-initiated network communication ]]. + The application shall restrict network communication to[selection: no network communication, user-initiated communication for [assignment: list of functions for which the user can initiate network communication ], respond to [assignment: list of remotely initiated communication ], [assignment: list of application-initiated network communication ]].
    Application Note: This requirement is intended to restrict both inbound and outbound network communications to only those required, or to network communications that are user initiated. It does not apply to network communications in which the application may generically access the filesystem which may result in the platform accessing remotely mounted drives/shares.
    @@ -1596,50 +1680,50 @@

    FDP_NET_EXT.1 Network Communications

    - FDP_NET_EXT.1.1 + FDP_NET_EXT.1.1
    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall perform the following tests: + The evaluator shall perform the following tests:
      - The evaluator shall perform the following tests: + The evaluator shall perform the following tests:
    • - Test FDP_NET_EXT.1.1:1: The evaluator shall run the application. While the application is running, the evaluator shall sniff network traffic ignoring all non-application associated traffic and verify that any network communications witnessed are documented in the TSS or are user-initiated. + Test FDP_NET_EXT.1.1:1: The evaluator shall run the application. While the application is running, the evaluator shall sniff network traffic ignoring all non-application associated traffic and verify that any network communications witnessed are documented in the TSS or are user-initiated.
    • - Test FDP_NET_EXT.1.1:2: The evaluator shall run the application. After the application initializes, the evaluator shall run network port scans to verify that any ports opened by the application have been captured in the ST for the third selection and its assignment. This includes connection-based protocols (e.g. TCP, DCCP) as well as connectionless protocols (e.g. UDP). + Test FDP_NET_EXT.1.1:2: The evaluator shall run the application. After the application initializes, the evaluator shall run network port scans to verify that any ports opened by the application have been captured in the ST for the third selection and its assignment. This includes connection-based protocols (e.g. TCP, DCCP) as well as connectionless protocols (e.g. UDP).
    -
    +
    - ... + ...
    • - : Mobile operating systems based on Google Android.]: If "no network communication" is selected, the evaluator shall ensure that the application's AndroidManifest.xml file does not contain a uses-permission or uses-permission-sdk-23 tag containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform the above Tests 1 and 2, as the platform will not allow the application to perform any network communication. + : Mobile operating systems based on Google Android.]: If "no network communication" is selected, the evaluator shall ensure that the application's AndroidManifest.xml file does not contain a uses-permission or uses-permission-sdk-23 tag containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform the above Tests 1 and 2, as the platform will not allow the application to perform any network communication.
    @@ -1647,222 +1731,222 @@

    FDP_NET_EXT.1 Network Communications

    - FDP_DAR + FDP_DAR

    - 5.1.3 Class: Security Management (FMT) + 5.1.3 Class: Security Management (FMT)

    - FMT_CFG_EXT.1 + FMT_CFG_EXT.1

    - Encryption Of Sensitive Application DataFDP_DAR + Encryption Of Sensitive Application DataFDP_DAR

    - Secure by Default Configuration + Secure by Default Configuration

    - The application shall + The application shall
    - [selection: + [selection: - ] in non-volatile memory. + ] in non-volatile memory.
    - Application Note: If "implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption" is selected, the TSF must claim conformance to a PP-Configuration that includes the File Encryption PP-Module. + Application Note: If "implement functionality to encrypt sensitive data as defined in the PP-Module for File Encryption" is selected, the TSF must claim conformance to a PP-Configuration that includes the File Encryption PP-Module.

    - +

    - Any file that may potentially contain sensitive data (to include temporary files) shall be protected. The only exception is if the user intentionally exports the sensitive data to non-protected files. ST authors should select "protect sensitive data in accordance with FCS_STO_EXT.1" for the sensitive data that is covered by the FCS_STO_EXT.1 SFR.
    + Any file that may potentially contain sensitive data (to include temporary files) shall be protected. The only exception is if the user intentionally exports the sensitive data to non-protected files. ST authors should select "protect sensitive data in accordance with FCS_STO_EXT.1" for the sensitive data that is covered by the FCS_STO_EXT.1 SFR.
    - Evaluation Activities + Evaluation Activities
    - FDP_DAR_EXT.1 + FDP_DAR_EXT.1
    - TSS + TSS
    - The evaluator shall examine the TSS to ensure that it describes the sensitive data processed by the application. The evaluator shall then ensure that the following activities cover all of the sensitive data identified in the TSS. + The evaluator shall examine the TSS to ensure that it describes the sensitive data processed by the application. The evaluator shall then ensure that the following activities cover all of the sensitive data identified in the TSS.

    - +

    - If not store any sensitive data is selected, the evaluator shall inspect the TSS to ensure that it describes how sensitive data cannot be written to non-volatile memory. The evaluator shall also ensure that this is consistent with the filesystem test below. + If not store any sensitive data is selected, the evaluator shall inspect the TSS to ensure that it describes how sensitive data cannot be written to non-volatile memory. The evaluator shall also ensure that this is consistent with the filesystem test below.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - Evaluation activities (after the identification of the sensitive data) are to be performed on all sensitive data listed that are not covered by FCS_STO_EXT.1. + Evaluation activities (after the identification of the sensitive data) are to be performed on all sensitive data listed that are not covered by FCS_STO_EXT.1.

    - +

    - The evaluator shall inventory the filesystem locations where the application may write data. The evaluator shall run the application and attempt to store sensitive data. The evaluator shall then inspect those areas of the filesystem to note where data was stored (if any), and determine whether it has been encrypted. + The evaluator shall inventory the filesystem locations where the application may write data. The evaluator shall run the application and attempt to store sensitive data. The evaluator shall then inspect those areas of the filesystem to note where data was stored (if any), and determine whether it has been encrypted.

    - +

    - If "leverage platform-provided functionality" is selected, the evaluation activities will be performed as stated in the following requirements, which vary on a per-platform basis. + If "leverage platform-provided functionality" is selected, the evaluation activities will be performed as stated in the following requirements, which vary on a per-platform basis.

    - +

    - Platforms:Android... + Platforms:Android...
    - +
    - The evaluator shall inspect the TSS and verify that it describes how files containing sensitive data are stored with the MODE_PRIVATE flag set. + The evaluator shall inspect the TSS and verify that it describes how files containing sensitive data are stored with the MODE_PRIVATE flag set.
    - Platforms:Microsoft Windows... + Platforms:Microsoft Windows...
    - +
    - The Windows platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption, such as BitLocker or Encrypting File System (EFS), clear to the end user. + The Windows platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption, such as BitLocker or Encrypting File System (EFS), clear to the end user.
    - Platforms:Apple iOS... The evaluator shall inspect the TSS and ensure that it describes how the application uses the Complete Protection, Protected Unless Open, or Protected Until First User Authentication + Platforms:Apple iOS... The evaluator shall inspect the TSS and ensure that it describes how the application uses the Complete Protection, Protected Unless Open, or Protected Until First User Authentication
    - provide only enough functionality to set new credentials when configured with default credentials or no credentials. + provide only enough functionality to set new credentials when configured with default credentials or no credentials.
    - Application Note: Default credentials are credentials (e.g., passwords, keys) that are automatically (without user interaction) loaded onto the platform during application installation. Credentials that are generated during installation using requirements laid out in FCS_RBG_EXT.1 are not by definition default credentials. + Application Note: Default credentials are credentials (e.g., passwords, keys) that are automatically (without user interaction) loaded onto the platform during application installation. Credentials that are generated during installation using requirements laid out in FCS_RBG_EXT.1 are not by definition default credentials.
    - The application shall be configured by default with file permissions which protect the application binaries and data files from modification by normal unprivileged users. + The application shall be configured by default with file permissions which protect the application binaries and data files from modification by normal unprivileged users.
    - Application Note: The precise expectations for file permissions vary per platform but the general intention is that a trust boundary protects the application and its data. + Application Note: The precise expectations for file permissions vary per platform but the general intention is that a trust boundary protects the application and its data.
    - TSS + TSS
    - The evaluator shall check the TSS to determine if the application requires any type of credentials and if the application installs with default credentials. + The evaluator shall check the TSS to determine if the application requires any type of credentials and if the application installs with default credentials.
    - +
    - Guidance + Guidance
    - None. + None.
    - +
    - Tests + Tests
    - +
      - If the application uses any default credentials the evaluator shall run the following tests. + If the application uses any default credentials the evaluator shall run the following tests.
    • - Test FMT_CFG_EXT.1.1:1: The evaluator shall install and run the application without generating or loading new credentials and verify that only the minimal application functionality required to set new credentials is available. + Test FMT_CFG_EXT.1.1:1: The evaluator shall install and run the application without generating or loading new credentials and verify that only the minimal application functionality required to set new credentials is available.
    • - Test FMT_CFG_EXT.1.1:2: The evaluator shall attempt to clear all credentials and verify that only the minimal application functionality required to set new credentials is available. + Test FMT_CFG_EXT.1.1:2: The evaluator shall attempt to clear all credentials and verify that only the minimal application functionality required to set new credentials is available.
    • - Test FMT_CFG_EXT.1.1:3: The evaluator shall run the application, establish new credentials and verify that the original default credentials no longer provide access to the application. + Test FMT_CFG_EXT.1.1:3: The evaluator shall run the application, establish new credentials and verify that the original default credentials no longer provide access to the application.
    -
    +
    - TSS + TSS
    - None. + None.
    - +
    - Guidance + Guidance
    - None. + None.
    - +
    - Tests + Tests
    - The evaluator shall install and run the application. The evaluator shall inspect the filesystem of the platform (to the extent possible) for any files created by the application and ensure that their permissions are adequate to protect them. The method of doing so varies per platform. + The evaluator shall install and run the application. The evaluator shall inspect the filesystem of the platform (to the extent possible) for any files created by the application and ensure that their permissions are adequate to protect them. The method of doing so varies per platform. - +
    • - Test FMT_CFG_EXT.1.2:2[conditional, Platforms:Microsoft Windows: Microsoft Windows operating systems.]: The evaluator shall run the SysInternals tools, Process Monitor and Access Check (or tools of equivalent capability, like icacls.exe) for Classic Desktop applications to verify that files written to disk during an application's installation have the correct file permissions, such that a standard user cannot modify the application or its data files. For Windows Universal Applications the evaluator shall consider the requirement met because of the AppContainer sandbox. + Test FMT_CFG_EXT.1.2:2[conditional, Platforms:Microsoft Windows: Microsoft Windows operating systems.]: The evaluator shall run the SysInternals tools, Process Monitor and Access Check (or tools of equivalent capability, like icacls.exe) for Classic Desktop applications to verify that files written to disk during an application's installation have the correct file permissions, such that a standard user cannot modify the application or its data files. For Windows Universal Applications the evaluator shall consider the requirement met because of the AppContainer sandbox.
    -
    + - + @@ -1870,32 +1954,32 @@

    - ... + ...
    - +
    - The Linux platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user. + The Linux platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user.
    - Platforms:Oracle Solaris... + Platforms:Oracle Solaris...
    - +
    - The Solaris platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user. + The Solaris platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user.
    - Platforms:Apple macOS... + Platforms:Apple macOS...
    - +
    - The macOS platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user. + The macOS platform currently does not provide data-at-rest encryption services which depend upon invocation by application developers. The evaluator shall verify that the Operational User Guidance makes the need to activate platform encryption clear to the end user.
    - 5.1.3 Security Management (FMT) + 5.1.3 Security Management (FMT)
    @@ -1903,127 +1987,127 @@

    - + - + - +

    - Evaluation Activities + Evaluation Activities
    - FMT_CFG_EXT.1.1 + FMT_CFG_EXT.1.1
    - TSS + TSS
    - The evaluator shall check the TSS to determine if the application requires any type of credentials and if the application installs with default credentials. + The evaluator shall check the TSS to determine if the application requires any type of credentials and if the application installs with default credentials.
    - +
    - Guidance + Guidance
    - None. + None.
    - +
    - Tests + Tests
    - If the application uses any default credentials the evaluator shall run the following tests. + If the application uses any default credentials the evaluator shall run the following tests.
    - FMT_CFG_EXT.1.2 + FMT_CFG_EXT.1.2
    - TSS + TSS
    - None. + None.
    - +
    - Guidance + Guidance
    - None. + None.
    - +
    - Tests + Tests
    - The evaluator shall install and run the application. The evaluator shall inspect the filesystem of the platform (to the extent possible) for any files created by the application and ensure that their permissions are adequate to protect them. The method of doing so varies per platform. + The evaluator shall install and run the application. The evaluator shall inspect the filesystem of the platform (to the extent possible) for any files created by the application and ensure that their permissions are adequate to protect them. The method of doing so varies per platform.
    - Platforms:Android... + Platforms:Android...
    - +
    - The evaluator shall run the command find -L . -perm /002 inside the application's data directories to ensure that all files are not world-writable. The command should not print any files. + The evaluator shall run the command find -L . -perm /002 inside the application's data directories to ensure that all files are not world-writable. The command should not print any files.
    - Platforms:Microsoft Windows... + Platforms:Microsoft Windows...
    - +
    - The evaluator shall run the SysInternals tools, Process Monitor and Access Check (or tools of equivalent capability, like icacls.exe) for Classic Desktop applications to verify that files written to disk during an application's installation have the correct file permissions, such that a standard user cannot modify the application or its data files. For Windows Universal Applications the evaluator shall consider the requirement met because of the AppContainer sandbox. + The evaluator shall run the SysInternals tools, Process Monitor and Access Check (or tools of equivalent capability, like icacls.exe) for Classic Desktop applications to verify that files written to disk during an application's installation have the correct file permissions, such that a standard user cannot modify the application or its data files. For Windows Universal Applications the evaluator shall consider the requirement met because of the AppContainer sandbox.
    - Platforms:Apple iOS... + Platforms:Apple iOS...
    - +
    - The evaluator shall determine whether the application leverages the appropriate Data Protection Class for each data file stored locally. + The evaluator shall determine whether the application leverages the appropriate Data Protection Class for each data file stored locally.
    - Platforms:Linux... + Platforms:Linux...
    - +
    - The evaluator shall run the command find -L . -perm /002 inside the application's data directories to ensure that all files are not world-writable. The command should not print any files. + The evaluator shall run the command find -L . -perm /002 inside the application's data directories to ensure that all files are not world-writable. The command should not print any files.
    - Platforms:Oracle Solaris... + Platforms:Oracle Solaris...
    - +
    - The evaluator shall run the command find . \( -perm -002 \) inside the application's data directories to ensure that all files are not world-writable. The command should not print any files. + The evaluator shall run the command find . \( -perm -002 \) inside the application's data directories to ensure that all files are not world-writable. The command should not print any files.
    - Platforms:Apple macOS... The evaluator shall run the command find . -perm +002 inside the application's data directories to ensure that all files are not world-writable. The command should not print any files. + Platforms:Apple macOS... The evaluator shall run the command find . -perm +002 inside the application's data directories to ensure that all files are not world-writable. The command should not print any files.

    FMT_MEC_EXT.1 Supported Configuration Mechanism

    @@ -2031,7 +2115,7 @@

    FMT_MEC_EXT.1 Supported Configuration Mechanism

    FMT_MEC_EXT.1.1
    - The application shall[selection: invoke the mechanisms recommended by the platform vendor for storing and setting configuration options, implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption] + The application shall[selection: invoke the mechanisms recommended by the platform vendor for storing and setting configuration options, implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption]
    Application Note: Configuration options that are stored remotely are not subject to this requirement. Sensitive Data is generally not considered part of configuration options and should be stored according to FDP_DAR_EXT.1 or FCS_STO_EXT.1.

    @@ -2045,218 +2129,218 @@

    FMT_MEC_EXT.1 Supported Configuration Mechanism

    TSS
    - The evaluator shall review the TSS to identify the application's configuration options (e.g. settings) and determine whether these are stored and set using the mechanisms supported by the platform or implemented by the application in accordance with the PP-Module for File Encryption. At a minimum the TSS shall list settings related to any SFRs and any settings that are mandated in the operational guidance in response to an SFR. + The evaluator shall review the TSS to identify the application's configuration options (e.g. settings) and determine whether these are stored and set using the mechanisms supported by the platform or implemented by the application in accordance with the PP-Module for File Encryption. At a minimum the TSS shall list settings related to any SFRs and any settings that are mandated in the operational guidance in response to an SFR.

    - +

    - Conditional: If "implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption" is selected, the evaluator shall ensure that the TSS identifies those options, as well as indicates where the encrypted representation of these options is stored. + Conditional: If "implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption" is selected, the evaluator shall ensure that the TSS identifies those options, as well as indicates where the encrypted representation of these options is stored.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - If "invoke the mechanisms recommended by the platform vendor for storing and setting configuration options" is chosen, the method of testing varies per platform as follows: + If "invoke the mechanisms recommended by the platform vendor for storing and setting configuration options" is chosen, the method of testing varies per platform as follows:
    - ... + ...
    - /data/data/package/shared_prefs/ + /data/data/package/shared_prefs/
    • - reflects the changes made to the configuration to verify that the application used SharedPreferences and/or PreferenceActivity classes for storing configuration data, where package is the Java package of the application. + reflects the changes made to the configuration to verify that the application used SharedPreferences and/or PreferenceActivity classes for storing configuration data, where package is the Java package of the application.
    - ... + ...
    • - : Microsoft Windows operating systems.]: The evaluator shall determine and verify that Windows Universal Applications use either the Windows.Storage namespace, Windows.UI.ApplicationSettings namespace, or the IsolatedStorageSettings namespace for storing application specific settings. For .NET applications, the evaluator shall determine and verify that the application uses one of the locations listed in https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/ for storing application specific settings. For Classic Desktop applications, the evaluator shall run the application while monitoring it with the SysInternals tool + : Microsoft Windows operating systems.]: The evaluator shall determine and verify that Windows Universal Applications use either the Windows.Storage namespace, Windows.UI.ApplicationSettings namespace, or the IsolatedStorageSettings namespace for storing application specific settings. For .NET applications, the evaluator shall determine and verify that the application uses one of the locations listed in https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/ for storing application specific settings. For Classic Desktop applications, the evaluator shall run the application while monitoring it with the SysInternals tool
    - ProcMon + ProcMon
    • - and make changes to its configuration. The evaluator shall verify that + and make changes to its configuration. The evaluator shall verify that
    - ProcMon + ProcMon
    • - logs show corresponding changes to the the Windows Registry or C:\ProgramData\ directory. + logs show corresponding changes to the the Windows Registry or C:\ProgramData\ directory.
    - ... + ...
    - ... + ...
    - strace + strace
    • - . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that + . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that
    - strace + strace
    • - logs corresponding changes to configuration files that reside in /etc (for system-specific configuration), in the user's home directory (for user-specific configuration), or /var/lib/ (for configurations controlled by UI and not intended to be directly modified by an administrator). + logs corresponding changes to configuration files that reside in /etc (for system-specific configuration), in the user's home directory (for user-specific configuration), or /var/lib/ (for configurations controlled by UI and not intended to be directly modified by an administrator).
    - ... + ...
    - dtrace + dtrace
    • - . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that + . The evaluator shall make security-related changes to its configuration. The evaluator shall verify that
    - dtrace + dtrace
    • - logs corresponding changes to configuration files that reside in /etc (for system-specific configuration) or in the user's home directory(for user-specific configuration). + logs corresponding changes to configuration files that reside in /etc (for system-specific configuration) or in the user's home directory(for user-specific configuration).
    - Platforms:Apple macOS... + Platforms:Apple macOS...
    - +
    - The evaluator shall verify that the application stores and retrieves settings using the NSUserDefaults class. + The evaluator shall verify that the application stores and retrieves settings using the NSUserDefaults class.
    - If "implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption" is selected, for all configuration options listed in the TSS as being stored and protected using encryption, the evaluator shall examine the contents of the configuration option storage (identified in the TSS) to determine that the options have been encrypted. + If "implement functionality to encrypt and store configuration options as defined by FDP_PRT_EXT.1 in the PP-Module for File Encryption" is selected, for all configuration options listed in the TSS as being stored and protected using encryption, the evaluator shall examine the contents of the configuration option storage (identified in the TSS) to determine that the options have been encrypted.

    - FMT_CFG_EXT.1 Secure by Default Configuration + FMT_CFG_EXT.1 Secure by Default Configuration

    - FMT_CFG_EXT.1.1 + FMT_CFG_EXT.1.1
    - The application shall provide only enough functionality to set new credentials when configured with default credentials or no credentials. + The application shall provide only enough functionality to set new credentials when configured with default credentials or no credentials.
    - Application Note: Default credentials are credentials (e.g., passwords, keys) that are automatically (without user interaction) loaded onto the platform during application installation. Credentials that are generated during installation using requirements laid out in FCS_RBG_EXT.1 are not by definition default credentials. + Application Note: Default credentials are credentials (e.g., passwords, keys) that are automatically (without user interaction) loaded onto the platform during application installation. Credentials that are generated during installation using requirements laid out in FCS_RBG_EXT.1 are not by definition default credentials.
    - FMT_CFG_EXT.1.2 + FMT_CFG_EXT.1.2
    - The application shall be configured by default with file permissions which protect the application binaries and data files from modification by normal unprivileged users. + The application shall be configured by default with file permissions which protect the application binaries and data files from modification by normal unprivileged users.
    - Application Note: The precise expectations for file permissions vary per platform but the general intention is that a trust boundary protects the application and its data. + Application Note: The precise expectations for file permissions vary per platform but the general intention is that a trust boundary protects the application and its data.
    @@ -2267,7 +2351,7 @@

    @@ -2282,7 +2366,7 @@

    FMT_SMF.1 Specification of Management Functions

    FMT_SMF.1.1
    - The TSF shall be capable of performing the following management functions[selection: no management functions, enable/disable the transmission of any information describing the system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) information, enable/disable network backup functionality to [assignment: list of enterprise or commercial cloud backup systems ], [assignment: list of other management functions to be provided by the bythe TSF ]]. + The TSF shall be capable of performing the following management functions[selection: no management functions, enable/disable the transmission of any information describing the system's hardware, software, or configuration, enable/disable the transmission of any PII, enable/disable transmission of any application state (e.g. crashdump) information, enable/disable network backup functionality to [assignment: list of enterprise or commercial cloud backup systems ], [assignment: list of other management functions to be provided by the bythe TSF ]].
    Application Note: This requirement stipulates that an application needs to provide the ability to enable/disable only those functions that it actually implements. The application is not responsible for controlling the behavior of the platform or other applications.
    @@ -2294,33 +2378,33 @@

    FMT_SMF.1 Specification of Management Functions

    - FMT_SMF.1.1 + FMT_SMF.1.1
    TSS
    - None. + None.

    - +

    Guidance
    - The evaluator shall verify that every management function mandated by the PP is described in the operational guidance and that the description contains the information required to perform the management duties associated with the management function. + The evaluator shall verify that every management function mandated by the PP is described in the operational guidance and that the description contains the information required to perform the management duties associated with the management function.

    - +

    Tests
    - The evaluator shall test the application's ability to provide the management functions by configuring the application and testing each option selected from above. The evaluator is expected to test these functions in all the ways in which the ST and guidance documentation state the configuration can be managed. + The evaluator shall test the application's ability to provide the management functions by configuring the application and testing each option selected from above. The evaluator is expected to test these functions in all the ways in which the ST and guidance documentation state the configuration can be managed.

    - 5.1.4 Class: Privacy (FPR) + 5.1.4 Class: Privacy (FPR)

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Information

    @@ -2329,9 +2413,9 @@

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Infor FPR_ANO_EXT.1.1

    - The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: list of functions that transmit PII over a network ]]. + The application shall[selection: not transmit PII over a network, require user approval before executing [assignment: list of functions that transmit PII over a network ]].
    - Application Note: This requirement applies only to PII that is specifically requested by the application; it does not apply if the user volunteers PII without prompting from the application into a general (or inappropriate) data field. A dialog box that declares intent to send PII presented to the user at the time the application is started is sufficient to meet this requirement. + Application Note: This requirement applies only to PII that is specifically requested by the application; it does not apply if the user volunteers PII without prompting from the application into a general (or inappropriate) data field. A dialog box that declares intent to send PII presented to the user at the time the application is started is sufficient to meet this requirement.
    @@ -2341,78 +2425,78 @@

    FPR_ANO_EXT.1 User Consent for Transmission of Personally Identifiable Infor
    TSS
    - The evaluator shall inspect the TSS documentation to identify functionality in the application where PII can be transmitted. + The evaluator shall inspect the TSS documentation to identify functionality in the application where PII can be transmitted.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - If require user approval before executing is selected, the evaluator shall run the application and exercise the functionality responsibly for transmitting PII and verify that user approval is required before transmission of the PII. + If require user approval before executing is selected, the evaluator shall run the application and exercise the functionality responsibly for transmitting PII and verify that user approval is required before transmission of the PII.

    - 5.1.5 Class: Protection of the TSF (FPT) + 5.1.5 Class: Protection of the TSF (FPT)

    - FPT_ + FPT_

    - API_EXT.1 Use of Supported Services and APIs + API_EXT.1 Use of Supported Services and APIs
    - FPT_API_EXT.1.1 + FPT_API_EXT.1.1
    - The application shall use only documented platform APIs. + The application shall use only documented platform APIs.
    - Application Note: The definition of "documented" may vary depending upon whether the application is provided by a third party (who relies upon documented platform APIs) or by a platform vendor who may be able to guarantee support for platform APIs. + Application Note: The definition of "documented" may vary depending upon whether the application is provided by a third party (who relies upon documented platform APIs) or by a platform vendor who may be able to guarantee support for platform APIs.
    - Evaluation Activities + Evaluation Activities
    - FPT_API_EXT.1 + FPT_API_EXT.1
    - TSS + TSS
    - The evaluator shall verify that the TSS lists the platform APIs used in the application. + The evaluator shall verify that the TSS lists the platform APIs used in the application.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - The evaluator shall then compare the list with the supported APIs (available through e.g. developer accounts, platform developer groups) and ensure that all APIs listed in the TSS are supported. + The evaluator shall then compare the list with the supported APIs (available through e.g. developer accounts, platform developer groups) and ensure that all APIs listed in the TSS are supported.

    - FPT_AEX_EXT.1 Anti-Exploitation Capabilities + FPT_AEX_EXT.1 Anti-Exploitation Capabilities

    @@ -2421,7 +2505,7 @@

    The application shall not request to map memory at an explicit address except for[assignment: list of explicit exceptions].
    - Application Note: Requesting a memory mapping at an explicit address subverts address space layout randomization (ASLR). + Application Note: Requesting a memory mapping at an explicit address subverts address space layout randomization (ASLR).

    @@ -2430,9 +2514,9 @@

    FPT_AEX_EXT.1.2

    - The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: list of functions performing just-in-time compilation ]]. + The application shall[selection: not allocate any memory region with both write and execute permissions, allocate memory regions with write and execute permissions for only [assignment: list of functions performing just-in-time compilation ]].
    - Application Note: Requesting a memory mapping with both write and execute permissions subverts the platform protection provided by DEP. If the application performs no just-in-time compiling, then the first selection must be chosen. + Application Note: Requesting a memory mapping with both write and execute permissions subverts the platform protection provided by DEP. If the application performs no just-in-time compiling, then the first selection must be chosen.
    @@ -2480,115 +2564,115 @@

    TSS
    - The evaluator shall ensure that the TSS describes the compiler flags used to enable ASLR when the application is compiled. + The evaluator shall ensure that the TSS describes the compiler flags used to enable ASLR when the application is compiled.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - The evaluator shall perform either a static or dynamic analysis to determine that no memory mappings are placed at an explicit and consistent address. The method of doing so varies per platform. For those platforms requiring the same application running on two different systems, the evaluator may alternatively use the same device. After collecting the first instance of mappings, the evaluator must uninstall the application, reboot the device, and reinstall the application to collect the second instance of mappings. + The evaluator shall perform either a static or dynamic analysis to determine that no memory mappings are placed at an explicit and consistent address. The method of doing so varies per platform. For those platforms requiring the same application running on two different systems, the evaluator may alternatively use the same device. After collecting the first instance of mappings, the evaluator must uninstall the application, reboot the device, and reinstall the application to collect the second instance of mappings.
    - ... + ...
    • - : Mobile operating systems based on Google Android.]: The evaluator shall run the same application on two different Android systems. Both devices do not need to be evaluated, as the second device is acting only as a tool. Connect via ADB and inspect /proc/PID/maps. Ensure the two different instances share no memory mappings made by the application at the same location. + : Mobile operating systems based on Google Android.]: The evaluator shall run the same application on two different Android systems. Both devices do not need to be evaluated, as the second device is acting only as a tool. Connect via ADB and inspect /proc/PID/maps. Ensure the two different instances share no memory mappings made by the application at the same location.
    - ... + ...
    • - : Microsoft Windows operating systems.]: The evaluator shall run the same application on two different Windows systems and run a tool that will list all memory mapped addresses for the application. The evaluator shall then verify the two different instances share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to view memory addresses of a running application. The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application has ASLR enabled. + : Microsoft Windows operating systems.]: The evaluator shall run the same application on two different Windows systems and run a tool that will list all memory mapped addresses for the application. The evaluator shall then verify the two different instances share no mapping locations. The Microsoft SysInternals tool, VMMap, could be used to view memory addresses of a running application. The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application has ASLR enabled.
    - ... + ...
    • - : Apple's mobile operating system for iPhones.]: The evaluator shall perform a static analysis to search for any mmap calls (or API calls that call mmap), and ensure that no arguments are provided that request a mapping at a fixed address. + : Apple's mobile operating system for iPhones.]: The evaluator shall perform a static analysis to search for any mmap calls (or API calls that call mmap), and ensure that no arguments are provided that request a mapping at a fixed address.
    - ... + ...
    • - : Linux-based operating systems other than Android.]: The evaluator shall run the same application on two different Linux systems. The evaluator shall then compare their memory maps using pmap -x PID to ensure the two different instances share no mapping locations. + : Linux-based operating systems other than Android.]: The evaluator shall run the same application on two different Linux systems. The evaluator shall then compare their memory maps using pmap -x PID to ensure the two different instances share no mapping locations.
    - ... + ...
    • - : Oracle's enterprise operating system.]: The evaluator shall run the same application on two different Solaris systems. The evaluator shall then compare their memory maps using pmap -x PID to ensure the two different instances share no mapping locations. + : Oracle's enterprise operating system.]: The evaluator shall run the same application on two different Solaris systems. The evaluator shall then compare their memory maps using pmap -x PID to ensure the two different instances share no mapping locations.
    - ... + ...
    • - : Apple's operating system for MACs.]: The evaluator shall run the same application on two different Mac systems. The evaluator shall then compare their memory maps using vmmap PID to ensure the two different instances share no mapping locations. + : Apple's operating system for MACs.]: The evaluator shall run the same application on two different Mac systems. The evaluator shall then compare their memory maps using vmmap PID to ensure the two different instances share no mapping locations.
    @@ -2600,42 +2684,42 @@

    TSS

    - None. + None.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - The evaluator shall verify that no memory mapping requests are made with write and execute permissions. The method of doing so varies per platform. + The evaluator shall verify that no memory mapping requests are made with write and execute permissions. The method of doing so varies per platform.
    - ... + ...
    - ... + ...
    • - : Microsoft Windows operating systems.]: The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application passes the NXCheck. The evaluator may also ensure that the /NXCOMPAT flag was used during compilation to verify that DEP protections are enabled for the application. + : Microsoft Windows operating systems.]: The evaluator shall use a tool such as Microsoft's BinScope Binary Analyzer to confirm that the application passes the NXCheck. The evaluator may also ensure that the /NXCOMPAT flag was used during compilation to verify that DEP protections are enabled for the application.
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    @@ -2765,101 +2849,101 @@

    - ... + ...
    - ... + ...
    • - : Microsoft Windows operating systems.]: If the OS platform supports Windows Defender Exploit Guard (Windows 10 version 1709 or later), then the evaluator shall ensure that the application can run successfully with Windows Defender Exploit Guard Exploit Protection configured with the following minimum mitigations enabled; Control Flow Guard (CFG), Randomize memory allocations (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection. + : Microsoft Windows operating systems.]: If the OS platform supports Windows Defender Exploit Guard (Windows 10 version 1709 or later), then the evaluator shall ensure that the application can run successfully with Windows Defender Exploit Guard Exploit Protection configured with the following minimum mitigations enabled; Control Flow Guard (CFG), Randomize memory allocations (Bottom-Up ASLR), Export address filtering (EAF), Import address filtering (IAF), and Data Execution Prevention (DEP). The following link describes how to enable Exploit Protection, https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection.

      - +

      - If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be installed on Windows 10 version 1703 and earlier, then the evaluator shall ensure that the application can run successfully with EMET configured with the following minimum mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), Export address filtering (EAF), and Data Execution Prevention (DEP). + If the OS platform supports the Enhanced Mitigation Experience Toolkit (EMET) which can be installed on Windows 10 version 1703 and earlier, then the evaluator shall ensure that the application can run successfully with EMET configured with the following minimum mitigations enabled; Memory Protection Check, Randomize memory allocations (Bottom-Up ASLR), Export address filtering (EAF), and Data Execution Prevention (DEP).
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    @@ -2871,125 +2955,125 @@

    TSS

    - None. + None.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - The evaluator shall run the application and determine where it writes its files. For files where the user does not choose the destination, the evaluator shall check whether the destination directory contains executable files. This varies per platform: + The evaluator shall run the application and determine where it writes its files. For files where the user does not choose the destination, the evaluator shall check whether the destination directory contains executable files. This varies per platform:
    - ... + ...
    - /data/data/package/ + /data/data/package/
    • - where package is the Java package of the application. + where package is the Java package of the application.
    - ... + ...
    • - : Microsoft Windows operating systems.]: For Windows Universal Applications the evaluator shall consider the requirement met because the platform forces applications to write all data within the application working directory (sandbox). For Windows Desktop Applications the evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files. + : Microsoft Windows operating systems.]: For Windows Universal Applications the evaluator shall consider the requirement met because the platform forces applications to write all data within the application working directory (sandbox). For Windows Desktop Applications the evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files.
    - ... + ...
    - ... + ...
    • - : Linux-based operating systems other than Android.]: The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files. + : Linux-based operating systems other than Android.]: The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files.
    - ... + ...
    • - : Oracle's enterprise operating system.]: The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files. + : Oracle's enterprise operating system.]: The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files.
    - ... + ...
    • - : Apple's operating system for MACs.]: The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files. + : Apple's operating system for MACs.]: The evaluator shall run the program, mimicking normal usage, and note where all user-modifiable files are written. The evaluator shall ensure that there are no executable files stored in the same directories to which the application wrote user-modifiable files.
    @@ -3001,112 +3085,112 @@

    TSS

    - None. + None.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - The evaluator will inspect every native executable included in the TOE to ensure that stack-based buffer overflow protection is present. + The evaluator will inspect every native executable included in the TOE to ensure that stack-based buffer overflow protection is present.
    - ... + ...
    • - : Microsoft Windows operating systems.]: Applications that run as Managed Code in the .NET Framework do not require these stack protections. Applications developed in Object Pascal using the Delphi IDE compiled with RangeChecking enabled comply with this element. For other code, the evaluator shall review the TSS and verify that the /GS flag was used during compilation. The evaluator shall run a tool like, BinScope, that can verify the correct usage of /GS. + : Microsoft Windows operating systems.]: Applications that run as Managed Code in the .NET Framework do not require these stack protections. Applications developed in Object Pascal using the Delphi IDE compiled with RangeChecking enabled comply with this element. For other code, the evaluator shall review the TSS and verify that the /GS flag was used during compilation. The evaluator shall run a tool like, BinScope, that can verify the correct usage of /GS.
    - For PE , the evaluator will disassemble each and ensure the following sequence appears: + For PE , the evaluator will disassemble each and ensure the following sequence appears:
    - +
    - + - + - +
    mov rcx, QWORD PTR [rsp+(...)]mov rcx, QWORD PTR [rsp+(...)]
    xor rcx, (...)xor rcx, (...)
    call (...)call (...)
    - . + .
    - For ELF executables, the evaluator will ensure that each contains references to the symbol __stack_chk_fail. + For ELF executables, the evaluator will ensure that each contains references to the symbol __stack_chk_fail.

    - Tools such as Canary Detector may help automate these activities. + Tools such as Canary Detector may help automate these activities.

    - FPT_API_EXT.1 Use of Supported Services and APIs + FPT_API_EXT.1 Use of Supported Services and APIs

    - The application shall use only documented platform APIs. + The application shall use only documented platform APIs.
    - Application Note: The definition of "documented" may vary depending upon whether the application is provided by a third party (who relies upon documented platform APIs) or by a platform vendor who may be able to guarantee support for platform APIs. + Application Note: The definition of "documented" may vary depending upon whether the application is provided by a third party (who relies upon documented platform APIs) or by a platform vendor who may be able to guarantee support for platform APIs.
    - TSS + TSS
    - The evaluator shall verify that the TSS lists the platform APIs used in the application. + The evaluator shall verify that the TSS lists the platform APIs used in the application.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - The evaluator shall then compare the list with the supported APIs (available through e.g. developer accounts, platform developer groups) and ensure that all APIs listed in the TSS are supported. + The evaluator shall then compare the list with the supported APIs (available through e.g. developer accounts, platform developer groups) and ensure that all APIs listed in the TSS are supported.
    @@ -3118,11 +3202,11 @@

    FPT_IDV_EXT.1 Software Identification and Versions

    FPT_IDV_EXT.1.1
    - The application shall be versioned with[selection: SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 , [assignment: other version information ]]. + The application shall be versioned with[selection: SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 , [assignment: other version information ]].
    - Application Note: The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires the use of SCAP which includes SWID tags per the NIST standard. The PP selection of "other version information" will be removed in the next major release of this protection profile. Vendors should begin to version software with valid SWID tags. + Application Note: The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires the use of SCAP which includes SWID tags per the NIST standard. The PP selection of "other version information" will be removed in the next major release of this protection profile. Vendors should begin to version software with valid SWID tags.

    - Valid SWID tags must contain a SoftwareIdentity element and an Entity element as defined in the ISO/IEC 19770-2:2015 standard. SWID tags must be stored with a .swidtag file extensions as defined in the ISO/IEC 19770-2:2015.
    + Valid SWID tags must contain a SoftwareIdentity element and an Entity element as defined in the ISO/IEC 19770-2:2015 standard. SWID tags must be stored with a .swidtag file extensions as defined in the ISO/IEC 19770-2:2015.
    @@ -3132,27 +3216,27 @@

    FPT_IDV_EXT.1 Software Identification and Versions

    - FPT_IDV_EXT.1.1 + FPT_IDV_EXT.1.1
    TSS
    - If "other version information" is selected the evaluator shall verify that the TSS contains an explanation of the versioning methodology. + If "other version information" is selected the evaluator shall verify that the TSS contains an explanation of the versioning methodology.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall install the application, then check for the existence of version information. If SWID tags is selected the evaluator shall check for a .swidtag file. The evaluator shall open the file and verify that is contains at least a SoftwareIdentity element and an Entity element. + The evaluator shall install the application, then check for the existence of version information. If SWID tags is selected the evaluator shall check for a .swidtag file. The evaluator shall open the file and verify that is contains at least a SoftwareIdentity element and an Entity element.
    @@ -3176,27 +3260,27 @@

    FPT_LIB_EXT.1 Use of Third Party Libraries

    - FPT_LIB_EXT.1.1 + FPT_LIB_EXT.1.1
    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall install the application and survey its installation directory for dynamic libraries. The evaluator shall verify that libraries found to be packaged with or employed by the application are limited to those in the assignment. + The evaluator shall install the application and survey its installation directory for dynamic libraries. The evaluator shall verify that libraries found to be packaged with or employed by the application are limited to those in the assignment.
    @@ -3208,7 +3292,7 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    FPT_TUD_EXT.1.1
    - The application shall[selection: provide the ability, leverage the platform]to check for updates and patches to the application software. + The application shall[selection: provide the ability, leverage the platform]to check for updates and patches to the application software.
    Application Note: This requirement is about the ability to "check" for updates. The actual installation of any updates should be done by the platform. This requirement is intended to ensure that the application can check for updates provided by the vendor, as updates provided by another source may contain malicious code.
    @@ -3219,7 +3303,7 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    FPT_TUD_EXT.1.2
    - The application shall[selection: provide the ability, leverage the platform]to query the current version of the application software. + The application shall[selection: provide the ability, leverage the platform]to query the current version of the application software.
    @@ -3249,9 +3333,9 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    FPT_TUD_EXT.1.5
    - The application is distributed[selection: with the platform OS, as an additional software package to the platform OS]. + The application is distributed[selection: with the platform OS, as an additional software package to the platform OS].
    - Application Note: Application software that is distributed as part of the platform operating system is not required to be package for installation or uninstallation. If "as an additional software package to the OS" is selected the requirements from FPT_TUD_EXT.2 must be included in the ST. + Application Note: Application software that is distributed as part of the platform operating system is not required to be package for installation or uninstallation. If "as an additional software package to the OS" is selected the requirements from FPT_TUD_EXT.2 must be included in the ST.
    @@ -3267,23 +3351,23 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    TSS
    - None. + None.
    - +
    Guidance
    - The evaluator shall check to ensure the guidance includes a description of how updates are performed. + The evaluator shall check to ensure the guidance includes a description of how updates are performed.
    - +
    Tests
    - The evaluator shall check for an update using procedures described in either the application documentation or the platform documentation and verify that the application does not issue an error. If it is updated or if it reports that no update is available this requirement is considered to be met. + The evaluator shall check for an update using procedures described in either the application documentation or the platform documentation and verify that the application does not issue an error. If it is updated or if it reports that no update is available this requirement is considered to be met.
    - +
    @@ -3293,23 +3377,23 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    TSS
    - None. + None.
    - +
    Guidance
    - The evaluator shall verify guidance includes a description of how to query the current version of the application. + The evaluator shall verify guidance includes a description of how to query the current version of the application.
    - +
    Tests
    - The evaluator shall query the application for the current version of the software according to the operational user guidance. The evaluator shall then verify that the current version matches that of the documented and installed version. + The evaluator shall query the application for the current version of the software according to the operational user guidance. The evaluator shall then verify that the current version matches that of the documented and installed version.
    - +
    @@ -3319,45 +3403,45 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    TSS
    - None. + None.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - The evaluator shall verify that the application's executable files are not changed by the application. + The evaluator shall verify that the application's executable files are not changed by the application.
    - ... + ...
    - + - +
    FPT_TUD_EXT.1.4 @@ -3366,23 +3450,23 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    TSS
    - The evaluator shall verify that the TSS identifies how updates to the application are signed by an authorized source. The definition of an authorized source must be contained in the TSS. The evaluator shall also ensure that the TSS (or the operational guidance) describes how candidate updates are obtained. + The evaluator shall verify that the TSS identifies how updates to the application are signed by an authorized source. The definition of an authorized source must be contained in the TSS. The evaluator shall also ensure that the TSS (or the operational guidance) describes how candidate updates are obtained.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - None. + None.
    - +
    @@ -3392,27 +3476,27 @@

    FPT_TUD_EXT.1 Integrity for Installation and Update

    TSS
    - The evaluator shall verify that the TSS identifies how the application is distributed. If "with the platform" is selected the evaluated shall perform a clean installation or factory reset to confirm that TOE software is included as part of the platform OS. If "as an additional package" is selected the evaluator shall perform the tests in FPT_TUD_EXT.2. + The evaluator shall verify that the TSS identifies how the application is distributed. If "with the platform" is selected the evaluated shall perform a clean installation or factory reset to confirm that TOE software is included as part of the platform OS. If "as an additional package" is selected the evaluator shall perform the tests in FPT_TUD_EXT.2.
    - +
    Guidance
    - None. + None.
    - +
    Tests
    - None. + None.

    - 5.1.6 Class: Trusted Path/Channel (FTP) + 5.1.6 Class: Trusted Path/Channel (FTP)

    FTP_DIT_EXT.1 Protection of Data in Transit

    @@ -3424,33 +3508,33 @@

    FTP_DIT_EXT.1 Protection of Data in Transit

    The application shall[selection: - ]between itself and another trusted IT product. + ]between itself and another trusted IT product.
    Application Note: Encryption is not required for applications transmitting data that is not sensitive.

    - If "encrypt all transmitted" is selected and "TLS" is selected, then evaluation of elements from either FCS_TLSC_EXT.1 or FCS_TLSS_EXT.1 is required. + If "encrypt all transmitted" is selected and "TLS" is selected, then evaluation of elements from either FCS_TLSC_EXT.1 or FCS_TLSS_EXT.1 is required.

    - If "encrypt all transmitted" is selected, "HTTPS" is selected, and the TOE acts as a client, then FCS_HTTPS_EXT.1/Client is required. + If "encrypt all transmitted" is selected, "HTTPS" is selected, and the TOE acts as a client, then FCS_HTTPS_EXT.1/Client is required.

    - If "encrypt all transmitted" is selected, "HTTPS" is selected, and the TOE acts as a server, then FCS_HTTPS_EXT.1/Server is required. + If "encrypt all transmitted" is selected, "HTTPS" is selected, and the TOE acts as a server, then FCS_HTTPS_EXT.1/Server is required.

    - If the TOE acts as a server and if "mutual authentication" is selected in the TLS Package, then FCS_HTTPS_EXT.2 is also required. + If the TOE acts as a server and if "mutual authentication" is selected in the TLS Package, then FCS_HTTPS_EXT.2 is also required.

    - If "encrypt all transmitted" is selected and "DTLS" is selected, then FCS_DTLS_EXT.1 is required. + If "encrypt all transmitted" is selected and "DTLS" is selected, then FCS_DTLS_EXT.1 is required.

    - If "encrypt all transmitted" is selected and "SSH" is selected, then the TSF shall be validated against the Functional Package for Secure Shell. + If "encrypt all transmitted" is selected and "SSH" is selected, then the TSF shall be validated against the Functional Package for Secure Shell.

    If "encrypt all transmitted" is selected and "IPsec" is selected, then the TSF must claim conformance to a PP-Configuration that includes the VPN Client PP-Module

    @@ -3468,7 +3552,7 @@

    FTP_DIT_EXT.1 Protection of Data in Transit

    "invoke platform-provided functionality to encrypt all transmitted data" is selected and the platform implements a protocol that requires certificates - Note:FIA_X509_EXT.1 and FIA_X509_EXT.2 are not applicable when the TOE acts as a HTTPS/TLS server with no mutual authentication.
    + Note:FIA_X509_EXT.1 and FIA_X509_EXT.2 are not applicable when the TOE acts as a HTTPS/TLS server with no mutual authentication.
    @@ -3478,69 +3562,69 @@

    FTP_DIT_EXT.1 Protection of Data in Transit

    - FTP_DIT_EXT.1.1 + FTP_DIT_EXT.1.1
    TSS
    - For platform-provided functionality, the evaluator shall verify the TSS contains the calls to the platform that TOE is leveraging to invoke the functionality. + For platform-provided functionality, the evaluator shall verify the TSS contains the calls to the platform that TOE is leveraging to invoke the functionality.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall perform the following tests. + The evaluator shall perform the following tests.
      - The evaluator shall perform the following tests. + The evaluator shall perform the following tests.
    • - Test FTP_DIT_EXT.1.1:1: The evaluator shall exercise the application (attempting to transmit data; for example by connecting to remote systems or websites) while capturing packets from the application. The evaluator shall verify from the packet capture that the traffic is encrypted with HTTPS, TLS, DTLS, SSH, or IPsec in accordance with the selection in the ST. + Test FTP_DIT_EXT.1.1:1: The evaluator shall exercise the application (attempting to transmit data; for example by connecting to remote systems or websites) while capturing packets from the application. The evaluator shall verify from the packet capture that the traffic is encrypted with HTTPS, TLS, DTLS, SSH, or IPsec in accordance with the selection in the ST.
    • - Test FTP_DIT_EXT.1.1:2: The evaluator shall exercise the application (attempting to transmit data; for example by connecting to remote systems or websites) while capturing packets from the application. The evaluator shall review the packet capture and verify that no sensitive data is transmitted in the clear. + Test FTP_DIT_EXT.1.1:2: The evaluator shall exercise the application (attempting to transmit data; for example by connecting to remote systems or websites) while capturing packets from the application. The evaluator shall review the packet capture and verify that no sensitive data is transmitted in the clear.
    • - Test FTP_DIT_EXT.1.1:3: The evaluator shall inspect the TSS to determine if user credentials are transmitted. If credentials are transmitted the evaluator shall set the credential to a known value. The evaluator shall capture packets from the application while causing credentials to be transmitted as described in the TSS. The evaluator shall perform a string search of the captured network packets and verify that the plaintext credential previously set by the evaluator is not found. + Test FTP_DIT_EXT.1.1:3: The evaluator shall inspect the TSS to determine if user credentials are transmitted. If credentials are transmitted the evaluator shall set the credential to a known value. The evaluator shall capture packets from the application while causing credentials to be transmitted as described in the TSS. The evaluator shall perform a string search of the captured network packets and verify that the plaintext credential previously set by the evaluator is not found.
    -
    +
    - ... + ...
    • - : Mobile operating systems based on Google Android.]: If "not transmit any data" is selected, the evaluator shall ensure that the application's AndroidManifest.xml file does not contain a uses-permission or uses-permission-sdk-23 tag containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform the above Tests 1, 2, or 3, as the platform will not allow the application to perform any network communication. + : Mobile operating systems based on Google Android.]: If "not transmit any data" is selected, the evaluator shall ensure that the application's AndroidManifest.xml file does not contain a uses-permission or uses-permission-sdk-23 tag containing android:name="android.permission.INTERNET". In this case, it is not necessary to perform the above Tests 1, 2, or 3, as the platform will not allow the application to perform any network communication.
    - ... + ...
    • - : Apple's mobile operating system for iPhones.]: If "encrypt all transmitted data" is selected, the evaluator shall ensure that the application's Info.plist file does not contain the NSAllowsArbitraryLoads or NSExceptionAllowsInsecureHTTPLoads keys, as these keys disable iOS's Application Transport Security feature. + : Apple's mobile operating system for iPhones.]: If "encrypt all transmitted data" is selected, the evaluator shall ensure that the application's Info.plist file does not contain the NSAllowsArbitraryLoads or NSExceptionAllowsInsecureHTTPLoads keys, as these keys disable iOS's Application Transport Security feature.
    @@ -3550,7 +3634,7 @@

    FTP_DIT_EXT.1 Protection of Data in Transit

    5.1.7 TOE Security Functional Requirements Rationale

    - The following rationale provides justification for each security objective for the TOE, showing that the SFRs are suitable to meet and achieve the security objectives: + The following rationale provides justification for each security objective for the TOE, showing that the SFRs are suitable to meet and achieve the security objectives:
    - + - QUALITYQUALITY + - + - FCS_STO_EXT + FCS_STO_EXT - + - + - + - + - + - + - + - + - supports this objective by allowing FTP_DIT_EXT + supports this objective by allowing FTP_DIT_EXT - + - that the TSF may rely on platform-provided services to implement + that the TSF may rely on platform-provided services to implement - + - + - + - + - + - + - + - + - + - + - + - - + - + - + - + - + - + - + - Depending on how data at rest is protected, the TOE may rely on the use of a random bit generator to create keys that are subsequently used for data protection. + Depending on how data at rest is protected, the TOE may rely on the use of a random bit generator to create keys that are subsequently used for data protection. - + - + - + - + - + - + - (selection-based) + (selection-based) - + - + - + - + - + + O.PROTECTED_COMMS - + - + - + the - + - RBG + used in establishing trusted communications - + - RBG + by - + - whether the random bit generation services used in establishing trusted communications are implemented by - + - or by the platform - + - + - + - includes FTP_DIT_EXT + 2 - + - define the trusted channels used to protect data in transit, the data that is protected, and whether the trusted channels are implemented by the TSF or the platform + includes - - - - - - - - - - - - - + - - + 2 + + - - + define whether + + - - + or the platform performs key establishment for trusted communications + + - + - + - + - + - + - + - + - + - + - + +
    @@ -3568,279 +3652,283 @@

    5.1.7 TOE Security Functio

    FMT_CFG_EXT.1The PP includes FMT_CFG_EXT.1 for the TSP to limit unauthorized access to itself by preventing the use of default authentication credentials and by ensuring that the TOE uses appropriately restrictive platform permissions on its binaries and data
    FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.FPT_AEX_EXT.1The PP includes FPT_AEX_EXT.1 to add complexity to the task of compromising systems by ensuring that application is compatible with security features provided by the platform vendor and that the application implements platform-provided anti-exploitations such as ASLR and stack overflow protection.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to ensure that the TOE can be patched and that any updates to the TOE have appropriate integrity protection.
    O.MANAGEMENT + O.MANAGEMENT
    - +
    -
    FCS_CKMCOP.1/SigThe PP supports this objective by allowing includes FCS_CKM_EXTCOP.1/Sig to specify that the TSF may rely on platform-provided key generation services.FCS_CKMCOP.1/SigThe PP supports this objective by allowing includes FCS_CKM_EXTCOP.1/Sig to specify that the TSF may rely on platform-provided key generation services.
    FCS_RBG_EXT.1The PP supports this objective by allowing FCS_RBG_EXT.1 to specify that the TSF may rely on platform-provided random bit generation services.FCS_RBG_EXT.1The PP supports this objective by allowing FCS_RBG_EXT.1 to specify that the TSF may rely on platform-provided random bit generation services.
    define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    FMT_SMF.1The PP supports this objective by allowing FCS_STO_EXT includes FMT_SMF.1 to specify that the TSF may rely on platform-provided credential storage services.FMT_SMF.1The PP supports this objective by allowing FCS_STO_EXT includes FMT_SMF.1 to specify that the TSF may rely on platform-provided credential storage services.
    FDP_DAR_EXT.1The PP supports this objective by allowing FDP_DAR_EXT.1 to specify that the TSF may rely on platform-provided data-at-rest protection services.FDP_DAR_EXT.1The PP supports this objective by allowing FDP_DAR_EXT.1 to specify that the TSF may rely on platform-provided data-at-rest protection services.
    FMT_MECdefine the security-relevant management functions that are supported by the TOE.FMT_MECdefine the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FMTFPR_MECANO_EXT.1 to ensure that the TOE can use platform services to store and set configuration optionsdefine how the TSF provides control to the user regarding the disclosure of any PII.FPR_ANO_EXT.1The PP includes FMTFPR_MECANO_EXT.1 to ensure that the TOE can use platform services to store and set configuration optionsdefine how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_APIIDV_EXT.1The PP includes FPT_APIIDV_EXT.1 to require the TOE to leverage platform functionality by using only documented and supported APIsprovide a methodology for identifying the TOE versioning.FPT_APIIDV_EXT.1The PP includes FPT_APIIDV_EXT.1 to require the TOE to leverage platform functionality by using only documented and supported APIsprovide a methodology for identifying the TOE versioning.
    FPT_LIBTUD_EXT.1The PP includes FPT_LIBTUD_EXT.1 to ensure that the TOE does not include any unnecessary or unexpected third-party libraries which could present a privacy threat or vulnerability.FTP_DIT_EXTdefine how updates to the TOE are deployed and verified.FPT_LIBTUD_EXT.1The PP includes FPT_LIBTUD_EXT.1 to ensure that the TOE does not include any unnecessary or unexpected third-party libraries which could present a privacy threat or vulnerability.FTP_DIT_EXTdefine how updates to the TOE are deployed and verified.
    O.PROTECTED_​COMMS + O.PROTECTED_​COMMS
    - +
    -
    FCS_CKM.1The PPFCS_CKM.1The PP
    includes FCS_CKM.1 to specify includes FCS_CKM.1 to specify
    whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.
    FCS_CKM.1/AK (selection-based)The PP supports this objective by allowing includes FCS_CKM.1/AK to specify that define whether the TSF may rely on platform-provided asymmetric key generation services or the platform generates asymmetric keys that are used in support of trusted communications.FCS_CKM.1/AK (selection-based)The PP supports this objective by allowing includes FCS_CKM.1/AK to specify that define whether the TSF may rely on platform-provided asymmetric key generation services or the platform generates asymmetric keys that are used in support of trusted communications.
    FCS_CKM.2 (selection-based)The PP supports this objective by allowing includes FCS_CKM.2 to specify that define whether the TSF may rely on platform-provided or the platform performs key establishment servicesfor trusted communications.FCS_CKM.2 (selection-based)The PP supports this objective by allowing includes FCS_CKM.2 to specify that define whether the TSF may rely on platform-provided or the platform performs key establishment servicesfor trusted communications.
    FIAFCS_X509_EXTCOP.1 (selection-based)/HashThe PP supports this objective by allowing FIA_X509_EXT includes FCS_COP.1/Hash to specify that the TSF may rely on platform-provided X.509 certificate validation services.FIAFCS_X509_EXTCOP.1 (selection-based)/HashThe PP supports this objective by allowing FIA_X509_EXT includes FCS_COP.1/Hash to specify that the TSF may rely on platform-provided X.509 certificate validation services.
    FPT_TUD_EXT.2 (selection-based)The TSF includes FPT_TUD_EXT.2 to specify that the TOE may leverage the platform-supported package manager for application distribution and leverages platform-provided mechanisms to remove all traces of itself when removed from the platform system.FPT_TUD_EXT.2 (selection-based)The TSF includes FPT_TUD_EXT.2 to specify that the TOE may leverage the platform-supported package manager for application distribution and leverages platform-provided mechanisms to remove all traces of itself when removed from the platform system.
    FPT_API_EXT.2 (objective)The PP includes FPT_API_EXT.2 to permit the TOE to use platform-provided libraries for parsing IANA MIME media formats.FPT_API_EXT.2 (objective)The PP includes FPT_API_EXT.2 to permit the TOE to use platform-provided libraries for parsing IANA MIME media formats.
    O.MANAGEMENT + O.MANAGEMENT
    - +
    -
    FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.FMT_SMF.1The PP includes FMT_SMF.1 to define the security-relevant management functions that are supported by the TOE.
    FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.FPR_ANO_EXT.1The PP includes FPR_ANO_EXT.1 to define how the TSF provides control to the user regarding the disclosure of any PII.
    FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.FPT_IDV_EXT.1The PP includes FPT_IDV_EXT.1 to provide a methodology for identifying the TOE versioning.
    FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.FPT_TUD_EXT.1The PP includes FPT_TUD_EXT.1 to define how updates to the TOE are deployed and verified.
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the mechanism used to verify TOE updates if the TOE implements this functionality rather than the underlying platform.
    O.PROTECTED_STORAGE + O.PROTECTED_STORAGE
    - +
    define the hash algorithms used in support of trusted communications.define the hash algorithms used in support of trusted communications.
    FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define the HMAC algorithms used in support of trusted communications.FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define the HMAC algorithms used in support of trusted communications.
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the digital signature algorithms used in support of trusted communications.FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the digital signature algorithms used in support of trusted communications.
    FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the symmetric encryption algorithms used in support of trusted communications.FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the symmetric encryption algorithms used in support of trusted communications.
    FCS_HTTPS_EXT.1/ClientThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a client.FCS_HTTPS_EXT.1/ClientThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a client.
    FCS_HTTPS_EXT.1/ServerThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a server.FCS_HTTPS_EXT.1/ServerThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a server.
    FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether the random bit generation services used in establishing trusted communications are implemented by the TSF or by the platform.FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether the random bit generation services used in establishing trusted communications are implemented by the TSF or by the platform.
    FCS_STORBG_EXT.12The PP includes FCS_STORBG_EXT.12 to define the mechanism that the TSF uses or relies upon to protect stored credential dataDRBG algorithms used in support of trusted communications.FCS_STORBG_EXT.12The PP includes FCS_STORBG_EXT.12 to define the mechanism that the TSF uses or relies upon to protect stored credential dataDRBG algorithms used in support of trusted communications.
    FDP_DARNET_EXT.1The PP includes FDP_DARNET_EXT.1 to define the mechanism that the TSF uses or relies upon to protect sensitive data at rest.FCS_CKM.1/SK (optional) TOE’s usage of network communications, which may include the transmission or receipt of data over a trusted channel.FDP_DARNET_EXT.1The PP includes FDP_DARNET_EXT.1 to define the mechanism that the TSF uses or relies upon to protect sensitive data at rest.FCS_CKM.1/SK (optional) TOE’s usage of network communications, which may include the transmission or receipt of data over a trusted channel.
    FIA_X509_EXT.1The PP includes FCSFIA_CKMX509_EXT.1/SK to define the TOE’s capability to generate symmetric keys. These keys may subsequently be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.X.509 certificate validation activities in support of trusted communications.FIA_X509_EXT.1The PP includes FCSFIA_CKMX509_EXT.1/SK to define the TOE’s capability to generate symmetric keys. These keys may subsequently be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.X.509 certificate validation activities in support of trusted communications.
    FIA_X509_EXT.2The PP includes FIA_X509_EXT.2 to define the trusted communications that X.509 certificate services support, as well as the extent to which trusted communications can be established when using a certificate with unknown validity.FIA_X509_EXT.2The PP includes FIA_X509_EXT.2 to define the trusted communications that X.509 certificate services support, as well as the extent to which trusted communications can be established when using a certificate with unknown validity.
    O.PROTECTED_​STORAGE + O.PROTECTED_​STORAGE
    - +
    -
    FCS_CKM.1/PBKDFFCS_CKM.1/PBKDF
    The PP includes FCS_CKM.1/PBKDF to define the password-based key derivation function that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.The PP includes FCS_CKM.1/PBKDF to define the password-based key derivation function that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_COPCKM.1/SKC (selection-based)SKThe PP includes FCS_COPCKM.1/SKCSK to define the AES cryptographic algorithm that may TOE’s capability to generate symmetric keys. These keys may subsequently be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.FCS_COPCKM.1/SKC (selection-based)SKThe PP includes FCS_COPCKM.1/SKCSK to define the AES cryptographic algorithm that may TOE’s capability to generate symmetric keys. These keys may subsequently be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_COP.1/Hash (selection-based)The PP includes FCS_COP.1/Hash to define integrity mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.FCS_COP.1/Hash (selection-based)The PP includes FCS_COP.1/Hash to define integrity mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.
    FCS_COP.1/KeyedHash (selection-based)The PP includes FCS_COP.1/KeyedHash to define HMAC mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.FCS_COP.1/KeyedHash (selection-based)The PP includes FCS_COP.1/KeyedHash to define HMAC mechanisms that may be used by the TOE as part of ensuring that data at rest is protected.
    FCS_COP.1/SKCThe PP includes FCS_COP.1/SKC to define the AES cryptographic algorithm that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.FCS_RBG_EXT.2 (selection-based)COP.1/SKCThe PP includes FCS_RBG_EXT.2COP.1/SKC to define the TOE’s implementation of random bit generation functionality in the event that the TOE provides this function in support of generating keys that are used for data protection.
    FCS_RBG_EXT.2 (selection-based)1The PP includes FCS_RBG_EXT.1 to define whether random bit generation services are implemented by the TSF or the platform. Depending on how data at rest is protected, the TOE may rely on the use of a random bit generator to create keys that are subsequently used for data protection.AES cryptographic algorithm that may be used to encrypt stored credential data based on the claims made in FCS_STO_EXT.1.
    FCS_RBG_EXT.2The PP includes FCS_RBG_EXT.2 to define the TOE’s implementation of random bit generation functionality in the event that the TOE provides this function in support of generating keys that are used for data protection.FCS_RBG_EXT.1The PP includes FCS_RBG_EXT.1 to define whether
    O.PROTECTED_COMMS -
    - -
    -
    FCS_ random bit generation services
    STO_EXT.1The PP includes FCS_ are implemented by the TSF or
    STO_EXT.1 to define the platform. Depending on how data at rest is protected, the TOE may rely on the use of a random bit generator to create keys that are subsequently used for data protection.
    the mechanism that the TSFFCS_CKMRBG_EXT.12The PP includes FCS_CKMRBG_EXT.1 2 to specify whether define the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.FTP_DIT’s implementation of random bit generation functionality in the event that the TOE provides this function in support of generating keys that are used for data protection.
    uses or relies upon to protect stored credential data.FCS_STO_EXT.1The PP includes FTPFCS_DITSTO_EXT.1 to define the trusted channels used to protect data in transit, the data that is protected, and whether the trusted channels are implemented by the TSF or the platform.FCS_CKM.1/AKmechanism that the TSF uses or relies upon to protect stored credential data.
    FCSFDP_CKMDAR_EXT.1The PP includes FCSFDP_CKMDAR_EXT.1 to specify whether the TOE or the platform is responsible for generation of any asymmetric keys that may be used for establishing trusted communications.FTP_DIT_EXTdefine the mechanism that the TSF uses or relies upon to protect sensitive data at rest.FDP_DAR_EXT.1The PP includes FCSFDP_CKMDAR_EXT.1/AK to define whether the mechanism that the TSF or the platform generates asymmetric keys that are used in support of trusted communications. uses or relies upon to protect sensitive data at rest.
    O.QUALITY + O.QUALITY
    - +
    -
    FCS_CKM.1The PPFCS_CKM.
    supports this objective by allowing FCS_CKM.1 to 1The PP
    specify that the TSF may rely on platform-provided key generation services.
    FCS_CKM.1/AKThe PP includes supports this objective by allowing FCS_CKM.1/AK to define whether specify that the TSF or the platform generates asymmetric keys that are used in support of trusted communications may rely on platform-provided asymmetric key generation services.
    FCS_CKM.2The PP includes supports this objective by allowing FCS_CKM.2 to define whether specify that the TSF or the platform performs may rely on platform-provided key establishment for trusted communicationsservices.
    FCS_COPRBG_EXT.1/SKCThe PP includes supports this objective by allowing FCS_COPRBG_EXT.1/SKC to define the symmetric encryption algorithms used in support of trusted communicationsspecify that the TSF may rely on platform-provided random bit generation services.
    FCS_COPSTO_EXT.1/HashThe PP includes supports this objective by allowing FCS_COPSTO_EXT.1/Hash to define the hash algorithms used in support of trusted communications. supports this objective by allowing FCS_CKM.
    FCS_COP.1/SigThe PP includes FCS_COP.1/Sig to define the digital signature algorithms used in support of trusted communications.
    1 to
    FCS_COP.1/KeyedHashThe PP includes FCS_COP.1/KeyedHash to define the HMAC algorithms used in support of trusted communications.
    specify that the TSF
    FCS_RBG_EXT.2The PP includes FCS_RBG_EXT.2 to define the DRBG algorithms used in support of trusted communications.
    may rely on platform-provided key generation services.
    FCS_HTTPS_EXT.1/ClientThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a client.FCS_COPCKM.1/SKCAKThe PP includes supports this objective by allowing FCS_COPCKM.1/SKCAK to define the symmetric encryption algorithms used in support of trusted communicationsspecify that the TSF may rely on platform-provided asymmetric key generation services.
    FCS_HTTPS_EXT.1/ServerThe PP includes FCS_HTTPS_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a server.FCS_COPCKM.1/Hash2The PP includes supports this objective by allowing FCS_COPCKM.1/Hash to define the hash algorithms used in support of trusted communications2 to specify that the TSF may rely on platform-provided key establishment services.
    FDP_NETspecify that the TSF may rely on platform-provided credential storage services.FCS_COPRBG_EXT.1/SigThe PP includes supports this objective by allowing FCS_COPRBG_EXT.1/Sig to define the digital signature algorithms used in support of trusted communicationsspecify that the TSF may rely on platform-provided random bit generation services.
    FDP_DAR_EXT.1The PP supports this objective by allowing FDP_DAR_EXT.1 to specify that the TSF may rely on platform-provided data-at-rest protection services.FCS_COPSTO_EXT.1/KeyedHashThe PP includes supports this objective by allowing FCS_COPSTO_EXT.1/KeyedHash to define the HMAC algorithms used in support of trusted communications.FCS_RBGspecify that the TSF may rely on platform-provided credential storage services.
    FIA_X509_EXT.1The PP supports this objective by allowing FIA_X509_EXT.1 to specify that the TSF may rely on platform-provided X.509 certificate validation services.FDP_DAR_EXT.21The PP includes FCS_RBG supports this objective by allowing FDP_DAR_EXT.21 to define the DRBG algorithms used in support of trusted communications.FCS_HTTPSspecify that the TSF may rely on platform-provided data-at-rest protection services.
    FMT_MEC_EXT.1The PP includes FMT_MEC_EXT.1 to ensure that the TOE can use platform services to store and set configuration options.FIA_X509_EXT.1/ClientThe PP includes FCS_HTTPS supports this objective by allowing FIA_X509_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a client.FCS_HTTPSspecify that the TSF may rely on platform-provided X.509 certificate validation services.
    FPT_API_EXT.1The PP includes FPT_API_EXT.1 to require the TOE to leverage platform functionality by using only documented and supported APIs.FMT_MEC_EXT.1/ServerThe PP includes FCSFMT_HTTPSMEC_EXT.1 to define the TOE’s support for the HTTPS trusted communications protocol as a server.FDP_NETensure that the TOE can use platform services to store and set configuration options.
    FPT_API_EXT.2The PP includes FPT_API_EXT.2 to permit the TOE to use platform-provided libraries for parsing IANA MIME media formats.FPT_API_EXT.1The PP includes FDPFPT_NETAPI_EXT.1 to define the TOE’s usage of network communications, which may include the transmission or receipt of data over a trusted channel.FIA_X509_EXT.1require the TOE to leverage platform functionality by using only documented and supported APIs.
    FPT_LIB_EXT.1The PP includes FDPFPT_NETLIB_EXT.1 to define ensure that the TOE’s usage of network communications, which may include the transmission or receipt of data over a trusted channel.FPT_API_EXT.2The PP includes FIAFPT_X509API_EXT.1 to define X.509 certificate validation activities in support of trusted communications.FIA_X509_EXT.22 to permit the TOE to use platform-provided libraries for parsing IANA MIME media formats.
    FIA_X509_EXT.1The PP includes FIA_X509_EXT.1 to define X.509 certificate validation activities in support of trusted communications.FPT_LIB_EXT.1The PP includes FIAFPT_X509LIB_EXT.2 to define the trusted communications that X.509 certificate services support, as well as the extent to which trusted communications can be established when using a certificate with unknown validity.
    +

    +

    + 5.2 Security Assurance Requirements +

    + The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation and performs independent testing. +

    + +

    + This section lists the set of SARs from CC part 3 that are required in evaluations against this PP. Individual Evaluation Activities (EAs) to be performed are specified both in Section 5 Security Requirements as well as in this section. +

    + +

    + The general model for evaluation of TOEs against STs written to conform to this PP is as follows: +

    + +

    + After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, which are intended to be an interpretation of the other CEM assurance requirements as they apply to the specific technology instantiated in the TOE. The evaluation activities that are captured in Section 5 Security Requirements also provide clarification as to what the developer needs to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented and presented (along with the administrative guidance used) for validation. +

    + - + - +
    FIA_X509_EXT.2The PP includes FIA_X509 does not include any unnecessary or unexpected third-party libraries which could present a privacy threat or vulnerability.1 to ensure that the TOE does not include any unnecessary or unexpected third-party libraries which could present a privacy threat or vulnerability.
    FPT_TUD_EXT.2The TSF includes FPT_TUD_EXT.2 to define the trusted communications that X.509 certificate services support, as well as the extent to which trusted communications can be established when using a certificate with unknown validityspecify that the TOE may leverage the platform-supported package manager for application distribution and leverages platform-provided mechanisms to remove all traces of itself when removed from the platform system.FPT_TUD_EXT.2The TSF includes FPT_TUD_EXT.2 to specify that the TOE may leverage the platform-supported package manager for application distribution and leverages platform-provided mechanisms to remove all traces of itself when removed from the platform system.

    -

    5.2 Security Assurance Requirements

    - The Security Objectives for the TOE in Section 5 Security Requirements were constructed to address threats identified in Section 3.1 Threats. The Security Functional Requirements (SFRs) in Section 5.1 Security Functional Requirements are a formal instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation and performs independent testing. -

    - This section lists the set of SARs from CC part 3 that are required in evaluations against this PP. Individual Evaluation Activities (EAs) to be performed are specified both in Section 5 Security Requirements as well as in this section. -

    - The general model for evaluation of TOEs against STs written to conform to this PP is as follows: -

    - After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and ALC SARs. The CCTL also performs the evaluation activities contained within Section 5 Security Requirements, which are intended to be an interpretation of the other CEM assurance requirements as they apply to the specific technology instantiated in the TOE. The evaluation activities that are captured in Section 5 Security Requirements also provide clarification as to what the developer needs to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented and presented (along with the administrative guidance used) for validation. +

    + 5.2 Security Assurance Requirements +

    +

    +
    +

    5.2.1 Class ASE: Security Target

    As per ASE activities defined in [CEM].

    5.2.2 Class ADV: Development

    - The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section. + The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in Section 5.1 Security Functional Requirements should provide the ST authors with sufficient information to determine the appropriate content for the TSS section.

    ADV_FSP.1 Basic Functional Specification (ADV_FSP.1)

    - The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the Operational Environment that are not directly invokable invocable by TOE users, there is little point specifying that such interfaces be described in and of themselves since only indirect testing of such interfaces may be possible. For this PP, the activities for this family should focus on understanding the interfaces presented in the TSS in response to the functional requirements and the interfaces presented in the AGD documentation. No additional “functional specification” documentation is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list. + The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the Operational Environment that are not directly invokable invocable by TOE users, there is little point specifying that such interfaces be described in and of themselves since only indirect testing of such interfaces may be possible. For this PP, the activities for this family should focus on understanding the interfaces presented in the TSS in response to the functional requirements and the interfaces presented in the AGD documentation. No additional “functional specification” documentation is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list.

    Developer action elements:

    @@ -3853,9 +3941,9 @@

    Developer action elements:

    ADV_FSP.1.2D
    - The developer shall provide a tracing from the functional specification to the SFRs. + The developer shall provide a tracing from the functional specification to the SFRs.
    - Application Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and AGD_PRE documentation. The developer may reference a website accessible to application developers and the evaluator. The evaluation activities in the functional requirements point to evidence that should exist in the documentation and TSS section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is necessary. + Application Note: As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and AGD_PRE documentation. The developer may reference a website accessible to application developers and the evaluator. The evaluation activities in the functional requirements point to evidence that should exist in the documentation and TSS section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is necessary.
    @@ -3889,7 +3977,7 @@

    Content and presentation elements:

    ADV_FSP.1.4C
    - The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification. + The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification.

    Evaluator action elements:

    @@ -3904,7 +3992,7 @@

    Evaluator action elements:

    ADV_FSP.1.2E
    - The evaluator shall determine that the functional specification is an accurate and complete instantiation of the SFRs. + The evaluator shall determine that the functional specification is an accurate and complete instantiation of the SFRs.
    @@ -3915,12 +4003,12 @@

    Evaluator action elements:

    ADV_FSP.1
    - There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided. + There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is provided to support the evaluation activities described in Section 5.1 Security Functional Requirements, and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided.

    5.2.3 Class AGD: Guidance Documentation

    - The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The documentation should be in an informal style and readable by the IT personnel. Guidance must be provided for every operational environment that the product supports as claimed in the ST. This guidance includes instructions to successfully install the TSF in that environment; and Instructions to manage the security of the TSF as a product and as a component of the larger operational environment. Guidance pertaining to particular security functionality is also provided; requirements on such guidance are contained in the evaluation activities specified with each requirement. + The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The documentation should be in an informal style and readable by the IT personnel. Guidance must be provided for every operational environment that the product supports as claimed in the ST. This guidance includes instructions to successfully install the TSF in that environment; and Instructions to manage the security of the TSF as a product and as a component of the larger operational environment. Guidance pertaining to particular security functionality is also provided; requirements on such guidance are contained in the evaluation activities specified with each requirement.

    AGD_OPE.1 Operational User Guidance (AGD_OPE.1)

    Developer action elements:

    @@ -3931,7 +4019,7 @@

    Developer action elements:

    The developer shall provide operational user guidance.
    - Application Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to support security automation. Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable guidance. + Application Note: The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to support security automation. Rather than repeat information here, the developer should review the evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable guidance.
    @@ -3943,7 +4031,7 @@

    Content and presentation elements:

    The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure processing environment, including appropriate warnings.
    - Application Note: User and administrator are to be considered in the definition of user role. + Application Note: User and administrator are to be considered in the definition of user role.
    @@ -4035,7 +4123,7 @@

    Developer action elements:

    The developer shall provide the TOE, including its preparative procedures.
    - Application Note: As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative procedures. + Application Note: As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative procedures.
    @@ -4084,7 +4172,7 @@

    Evaluator action elements:

    5.2.4 Class ALC: Life-cycle Support

    - At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level. + At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level.

    ALC_CMC.1 Labeling of the TOE (ALC_CMC.1)

    This component is targeted at identifying the TOE such that it can be distinguished from other products or versions from the same vendor and can be easily specified when being procured by an end user. @@ -4105,14 +4193,14 @@

    Content and presentation elements:

    The application shall be labeled with a unique reference.
    - Application Note: Unique reference information includes: + Application Note: Unique reference information includes:
    • Application Name
    • Application Version
    • Application Description
    • Platform on which Application Runs
    • - Software Identification (SWID) tags, if available + Software Identification (SWID) tags, if available
    @@ -4155,7 +4243,7 @@

    Content and presentation elements:

    ALC_CMS.1.1C
    - The configuration list shall include the following: the TOE itself; and the evaluation evidence required by the SARs. + The configuration list shall include the following: the TOE itself; and the evaluation evidence required by the SARs.
    @@ -4179,7 +4267,7 @@

    Evaluator action elements:

    - The "evaluation evidence required by the SARs" in this PP is limited to the information in the ST coupled with the guidance provided to administrators and users under the AGD requirements. By ensuring that the TOE is specifically identified and that this identification is consistent in the ST and in the AGD guidance (as done in the evaluation activity for ALC_CMC.1), the evaluator implicitly confirms the information required by this component. Life-cycle support is targeted aspects of the developer’s life-cycle and instructions to providers of applications for the developer’s devices, rather than an in-depth examination of the TSF manufacturer’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it’s a reflection on the information to be made available for evaluation. + The "evaluation evidence required by the SARs" in this PP is limited to the information in the ST coupled with the guidance provided to administrators and users under the AGD requirements. By ensuring that the TOE is specifically identified and that this identification is consistent in the ST and in the AGD guidance (as done in the evaluation activity for ALC_CMC.1), the evaluator implicitly confirms the information required by this component. Life-cycle support is targeted aspects of the developer’s life-cycle and instructions to providers of applications for the developer’s devices, rather than an in-depth examination of the TSF manufacturer’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it’s a reflection on the information to be made available for evaluation.
    The evaluator shall ensure that the developer has identified (in guidance documentation for application developers concerning the targeted platform) one or more development environments appropriate for use in developing applications for the developer’s platform. For each of these development environments, the developer shall provide information on how to configure the environment to ensure that buffer overflow protection mechanisms in the environment(s) are invoked (e.g., compiler flags). The evaluator shall ensure that this documentation also includes an indication of whether such protections are on by default, or have to be specifically enabled. The evaluator shall ensure that the TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the TSF using this unique identification.

    @@ -4266,7 +4354,7 @@

    5.2.5 Class ATE: Tests

    Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN family. At the assurance level specified in this PP, testing is based on advertised functionality and interfaces with dependency on the availability of design information. One of the primary outputs of the evaluation process is the test report as specified in the following requirements.

    ATE_IND.1 Independent Testing – Conformance (ATE_IND.1)

    - Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing is to confirm that the requirements specified in Section 5.1 Security Functional Requirements being met, although some additional testing is specified for SARs in Section 5.2 Security Assurance Requirements. The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1.

    Developer action elements:

    @@ -4275,7 +4363,7 @@

    Developer action elements:

    The developer shall provide the TOE for testing.
    - Application Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details. + Application Note: The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details.
    @@ -4304,7 +4392,7 @@

    Evaluator action elements:

    The evaluator shall test a subset of the TSF to confirm that the TSF operates as specified.
    - Application Note: The evaluator shall test the application on the most current fully patched version of the platform. + Application Note: The evaluator shall test the application on the most current fully patched version of the platform.
    @@ -4320,7 +4408,7 @@

    Evaluator action elements:

    While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in the ST is covered. The test plan identifies the platforms to be tested, and for those platforms not included in the test plan but included in the ST, the test plan provides a justification for not testing the platforms. This justification must address the differences between the tested platforms and the untested platforms, and make an argument that the differences do not affect the testing to be performed. It is not sufficient to merely assert that the differences have no effect; rationale must be provided. If all platforms claimed in the ST are tested, then no rationale is necessary. The test plan describes the composition of each platform to be tested, and any setup that is necessary beyond what is contained in the AGD documentation. It should be noted that the evaluator is expected to follow the AGD documentation for installation and setup of each platform either as part of a test or as a standard pre-test condition. This may include special test drivers or tools. For each driver or tool, an argument (not just an assertion) should be provided that the driver or tool will not adversely affect the performance of the functionality by the TOE and its platform.

    - This also includes the configuration of the cryptographic engine to be used. The cryptographic algorithms implemented by this engine are those specified by this PP and used by the cryptographic protocols being evaluated (e.g SSH). The test plan identifies high-level test objectives as well as the test procedures to be followed to achieve those objectives. These procedures include expected results. + This also includes the configuration of the cryptographic engine to be used. The cryptographic algorithms implemented by this engine are those specified by this PP and used by the cryptographic protocols being evaluated (e.g SSH). The test plan identifies high-level test objectives as well as the test procedures to be followed to achieve those objectives. These procedures include expected results.

    The test report (which could just be an annotated version of the test plan) details the activities that took place when the test procedures were executed, and includes the actual results of the tests. This shall be a cumulative account, so if there was a test run that resulted in a failure; a fix installed; and then a successful re-run of the test, the report would show a “fail” and “pass” result (and the supporting details), and not just the “pass” result.
    @@ -4347,7 +4435,7 @@

    Content and presentation elements:

    The application shall be suitable for testing.
    - Application Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator. + Application Note: Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the evaluator.
    @@ -4365,7 +4453,7 @@

    Evaluator action elements:

    The evaluator shall perform a search of public domain sources to identify potential vulnerabilities in the TOE.
    - Application Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain sources also include sites which provide free checking of files for viruses. + Application Note: Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain sources also include sites which provide free checking of files for viruses.
    @@ -4391,25 +4479,25 @@

    Evaluator action elements:

    For each vulnerability found, the evaluator either provides a rationale with respect to its non-applicability, or the evaluator formulates a test (using the guidelines provided in ATE_IND) to confirm the vulnerability, if suitable. Suitability is determined by assessing the attack vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires expert skills and an electron microscope, for instance, then a test would not be suitable and an appropriate justification would be formulated.

    - For Windows, Linux, macOS and Solaris: The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious. + For Windows, Linux, macOS and Solaris: The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious.

    Appendix A - Optional Requirements

    - As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE) are contained in the body of this PP. This appendix contains three other types of optional requirements that may be included in the ST, but are not required in order to conform to this PP. However, applied modules, packages and/or use cases may refine specific requirements as mandatory. : + As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE) are contained in the body of this PP. This appendix contains three other types of optional requirements that may be included in the ST, but are not required in order to conform to this PP. However, applied modules, packages and/or use cases may refine specific requirements as mandatory. :

    - The first type (, defined in Appendix A.1 Strictly Optional Requirements) , are strictly optional requirements that are independent of the TOE implementing any function. If the TOE fulfills meets any of these requirements or supports a certain functionality, the vendor is encouraged to include claim the associated SFRs in the ST, but are doing so is not required in order to conform to this PP. + The first type (, defined in Appendix A.1 Strictly Optional Requirements) , are strictly optional requirements that are independent of the TOE implementing any function. If the TOE fulfills meets any of these requirements or supports a certain functionality, the vendor is encouraged to include claim the associated SFRs in the ST, but are doing so is not required in order to conform to this PP.

    - The second type (, defined in Appendix A.2 Objective Requirements) , are objective requirements that . These describe security functionality that is not yet widely available in commercial technology. The Objective requirements are not currently mandated in the body of by this PP, but will be included mandated in the baseline requirements in future versions of this PP. Adoption by vendors is encouraged and expected as soon as possible, but claiming these SFRs is not required in order to conform to this PP. + The second type (, defined in Appendix A.2 Objective Requirements) , are objective requirements that . These describe security functionality that is not yet widely available in commercial technology. The Objective requirements are not currently mandated in the body of by this PP, but will be included mandated in the baseline requirements in future versions of this PP. Adoption by vendors is encouraged and expected as soon as possible, but claiming these SFRs is not required in order to conform to this PP.

    - The third type (, defined in Appendix A.3 Implementation-Based dependent Requirements) , are dependent on the TOE implementing a particular functionImplementation-dependent requirements. If the TOE fulfills any of these requirements, the vendor must either add the related SFR or disable the functionality for the evaluated configuration implements the product features associated with the listed SFRs, either the SFRs must be claimed or the product features must be disabled in the evaluated ocnfiguration. + The third type (, defined in Appendix A.3 Implementation-Based dependent Requirements) , are dependent on the TOE implementing a particular functionImplementation-dependent requirements. If the TOE fulfills any of these requirements, the vendor must either add the related SFR or disable the functionality for the evaluated configuration implements the product features associated with the listed SFRs, either the SFRs must be claimed or the product features must be disabled in the evaluated ocnfiguration.

    A.1 Strictly Optional Requirements

    - A.1.1 Class: Cryptographic Support (FCS) + A.1.1 Class: Cryptographic Support (FCS)

    FCS_CKM.1/SK Cryptographic Symmetric Key Generation

    @@ -4418,7 +4506,7 @@

    FCS_CKM.1/SK Cryptographic Symmetric Key Generation

    FCS_CKM.1.1/SK
    - The application shall generate symmetric cryptographic keys using a Random Bit Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes[selection: 128 bit, 256 bit]. + The application shall generate symmetric cryptographic keys using a Random Bit Generator as specified in FCS_RBG_EXT.1 and specified cryptographic key sizes[selection: 128 bit, 256 bit].
    Application Note: Symmetric keys may be used to generate keys along the key chain.
    @@ -4430,38 +4518,38 @@

    FCS_CKM.1/SK Cryptographic Symmetric Key Generation

    - FCS_CKM.1.1/SK + FCS_CKM.1.1/SK
    TSS
    - The evaluator shall review the TSS to determine that it describes how the functionality described by FCS_RBG_EXT.1 is invoked. + The evaluator shall review the TSS to determine that it describes how the functionality described by FCS_RBG_EXT.1 is invoked.

    - +

    - If the application is relying on random bit generation from the host platform, the evaluator shall verify the TSS includes the name/manufacturer of the external RBG and describes the function call and parameters used when calling the external DRBG function. If different external RBGs are used for different platforms, the evaluator shall verify the TSS identifies each RBG for each platform. Also, the evaluator shall verify the TSS includes a short description of the vendor's assumption for the amount of entropy seeding the external DRBG. The evaluator uses the description of the RBG functionality in FCS_RBG_EXT or documentation available for the operational environment to determine that the key size being requested is identical to the key size and mode to be used for the encryption/decryption of the user data. + If the application is relying on random bit generation from the host platform, the evaluator shall verify the TSS includes the name/manufacturer of the external RBG and describes the function call and parameters used when calling the external DRBG function. If different external RBGs are used for different platforms, the evaluator shall verify the TSS identifies each RBG for each platform. Also, the evaluator shall verify the TSS includes a short description of the vendor's assumption for the amount of entropy seeding the external DRBG. The evaluator uses the description of the RBG functionality in FCS_RBG_EXT or documentation available for the operational environment to determine that the key size being requested is identical to the key size and mode to be used for the encryption/decryption of the user data.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - None. + None.

    A.2 Objective Requirements

    - A.2.1 Class: Protection of the TSF (FPT) + A.2.1 Class: Protection of the TSF (FPT)

    FPT_API_EXT.2 Use of Supported Services and APIs

    @@ -4470,11 +4558,11 @@

    FPT_API_EXT.2 Use of Supported Services and APIs

    FPT_API_EXT.2.1
    - The application[selection, choose one of: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types]. + The application[selection: shall use platform-provided libraries, does not implement functionality]for parsing[assignment: list of formats parsed that are included in the IANA MIME media types].
    - Application Note: The IANA MIME types are listed at http://www.iana.org/assignments/media-types and include many image, audio, video, and content file formats. + Application Note: The IANA MIME types are listed at http://www.iana.org/assignments/media-types and include many image, audio, video, and content file formats.

    - +

    This requirement does not apply if providing parsing services is the purpose of the application.
    @@ -4486,47 +4574,47 @@

    FPT_API_EXT.2 Use of Supported Services and APIs

    - FPT_API_EXT.2.1 + FPT_API_EXT.2.1
    TSS
    - The evaluator shall verify that the TSS lists the IANA MIME media types (as described by http://www.iana.org/assignments/media-types ) for all formats the application processes and that it maps those formats to parsing services provided by the platform. + The evaluator shall verify that the TSS lists the IANA MIME media types (as described by http://www.iana.org/assignments/media-types ) for all formats the application processes and that it maps those formats to parsing services provided by the platform.
    Guidance
    - None. + None.

    - +

    Tests
    - None. + None.

    - +

    - A.3 Implementation-Based dependent Requirements + A.3 Implementation-Based dependent Requirements

    - This PP does not define any Implementation-Based dependent requirements. + This PP does not define any Implementation-Based dependent requirements.

    - Appendix B - Selection-Based based Requirements + Appendix B - Selection-Based based Requirements

    - As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE or its underlying platform) are contained in the body of this PP. There are additional requirements based on selections in the body of the PP: if certain selections are made, then additional requirements below must be included. + As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE or its underlying platform) are contained in the body of this PP. There are additional requirements based on selections in the body of the PP: if certain selections are made, then additional requirements below must be included.

    - B.1 Class: Cryptographic Support (FCS) + B.1 Class: Cryptographic Support (FCS)

    FCS_CKM.1/AK Cryptographic Asymmetric Key Generation

    @@ -4538,22 +4626,22 @@

    FCS_CKM.1/AK Cryptographic Asymmetric Key Generation

    FCS_CKM.1.1/AK
    - The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection: + The application shall[selection: invoke platform-provided functionality, implement functionality]to generate asymmetric cryptographic keys in accordance with a specified cryptographic key generation algorithm[selection: ]. @@ -4576,188 +4664,188 @@

    FCS_CKM.1/AK Cryptographic Asymmetric Key Generation

    TSS
    - The evaluator shall ensure that the TSS identifies the key sizes supported by the TOE. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme. + The evaluator shall ensure that the TSS identifies the key sizes supported by the TOE. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme.

    - +

    - If the application "invokes platform-provided functionality for asymmetric key generation," then the evaluator shall examine the TSS to verify that it describes how the key generation functionality is invoked. + If the application "invokes platform-provided functionality for asymmetric key generation," then the evaluator shall examine the TSS to verify that it describes how the key generation functionality is invoked.

    - +

    Guidance
    - The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key generation scheme(s) and key size(s) for all uses defined in this PP. + The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key generation scheme(s) and key size(s) for all uses defined in this PP.

    - +

    Tests
    - If the application "implements asymmetric key generation," then the following test activities shall be carried out. + If the application "implements asymmetric key generation," then the following test activities shall be carried out.

    - +

    - Evaluation Activity Note: The following tests may require the developer to provide access to a developer environment that provides the evaluator with tools that are typically available to end-users of the application. + Evaluation Activity Note: The following tests may require the developer to provide access to a developer environment that provides the evaluator with tools that are typically available to end-users of the application.

    - +

    - Key Generation for FIPS PUB 186-4 RSA Schemes + Key Generation for FIPS PUB 186-4 RSA Schemes

    - +

    - The evaluator shall verify the implementation of RSA Key Generation by the TOE using the Key Generation test. This test verifies the ability of the TSF to correctly produce values for the key components including the public verification exponent e, the private prime factors p and q, the public modulus n and the calculation of the private signature exponent d. Key Pair generation specifies 5 ways (or methods) to generate the primes p and q. These include: + The evaluator shall verify the implementation of RSA Key Generation by the TOE using the Key Generation test. This test verifies the ability of the TSF to correctly produce values for the key components including the public verification exponent e, the private prime factors p and q, the public modulus n and the calculation of the private signature exponent d. Key Pair generation specifies 5 ways (or methods) to generate the primes p and q. These include:
      - +
    1. - Random Primes: + Random Primes:
        - +
      • - Provable primes + Provable primes
      • - Probable primes + Probable primes
    2. - Primes with Conditions: + Primes with Conditions:
        - +
      • - Primes p1, p2, q1,q2, p and q shall all be provable primes + Primes p1, p2, q1,q2, p and q shall all be provable primes
      • - Primes p1, p2, q1, and q2 shall be provable primes and p and q shall be probable primes + Primes p1, p2, q1, and q2 shall be provable primes and p and q shall be probable primes
      • - Primes p1, p2, q1,q2, p and q shall all be probable primes + Primes p1, p2, q1,q2, p and q shall all be probable primes
    - To test the key generation method for the Random Provable primes method and for all the Primes with Conditions methods, the evaluator must seed the TSF key generation routine with sufficient data to deterministically generate the RSA key pair. This includes the random seed(s), the public exponent of the RSA key, and the desired key length. For each key length supported, the evaluator shall have the TSF generate 25 key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good implementation. + To test the key generation method for the Random Provable primes method and for all the Primes with Conditions methods, the evaluator must seed the TSF key generation routine with sufficient data to deterministically generate the RSA key pair. This includes the random seed(s), the public exponent of the RSA key, and the desired key length. For each key length supported, the evaluator shall have the TSF generate 25 key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good implementation.

    - +

    - If possible, the Random Probable primes method should also be verified against a known good implementation as described above. Otherwise, the evaluator shall have the TSF generate 10 keys pairs for each supported key length nlen and verify: + If possible, the Random Probable primes method should also be verified against a known good implementation as described above. Otherwise, the evaluator shall have the TSF generate 10 keys pairs for each supported key length nlen and verify: - Key Generation for Elliptic Curve Cryptography (ECC) + Key Generation for Elliptic Curve Cryptography (ECC)

    - +

    - FIPS 186-4 ECC Key Generation Test For each supported NIST curve, i.e., P-256, P-384 and P-521, the evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated using an approved random bit generator (RBG). To determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) function of a known good implementation. + FIPS 186-4 ECC Key Generation Test For each supported NIST curve, i.e., P-256, P-384 and P-521, the evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated using an approved random bit generator (RBG). To determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) function of a known good implementation.

    - +

    - FIPS 186-4 Public Key Verification (PKV) Test For each supported NIST curve, i.e., P-256, P-384 and P-521, the evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify five of the public key values so that they are incorrect, leaving five values unchanged (i.e., correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values. + FIPS 186-4 Public Key Verification (PKV) Test For each supported NIST curve, i.e., P-256, P-384 and P-521, the evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify five of the public key values so that they are incorrect, leaving five values unchanged (i.e., correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values.

    - +

    - Key Generation for Finite-Field Cryptography (FFC) + Key Generation for Finite-Field Cryptography (FFC)

    - +

    - The evaluator shall verify the implementation of the Parameters Generation and the Key Generation for FFC by the TOE using the Parameter Generation and Key Generation test. This test verifies the ability of the TSF to correctly produce values for the field prime p, the cryptographic prime q (dividing p-1), the cryptographic group generator g, and the calculation of the private key x and public key y. The Parameter generation specifies 2 ways (or methods) to generate the cryptographic prime q and the field prime p: + The evaluator shall verify the implementation of the Parameters Generation and the Key Generation for FFC by the TOE using the Parameter Generation and Key Generation test. This test verifies the ability of the TSF to correctly produce values for the field prime p, the cryptographic prime q (dividing p-1), the cryptographic group generator g, and the calculation of the private key x and public key y. The Parameter generation specifies 2 ways (or methods) to generate the cryptographic prime q and the field prime p:

    - +

    - Cryptographic and Field Primes: + Cryptographic and Field Primes: - and two ways to generate the cryptographic group generator g: + and two ways to generate the cryptographic group generator g:

    - +

    - Cryptographic Group Generator: + Cryptographic Group Generator: - The Key generation specifies 2 ways to generate the private key x: + The Key generation specifies 2 ways to generate the private key x:

    - +

    - Private Key: + Private Key: - The security strength of the RBG must be at least that of the security offered by the FFC parameter set. To test the cryptographic and field prime generation method for the provable primes method and/or the group generator g for a verifiable process, the evaluator must seed the TSF parameter generation routine with sufficient data to deterministically generate the parameter set. For each key length supported, the evaluator shall have the TSF generate 25 parameter sets and key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good implementation. Verification must also confirm + The security strength of the RBG must be at least that of the security offered by the FFC parameter set. To test the cryptographic and field prime generation method for the provable primes method and/or the group generator g for a verifiable process, the evaluator must seed the TSF parameter generation routine with sufficient data to deterministically generate the parameter set. For each key length supported, the evaluator shall have the TSF generate 25 parameter sets and key pairs. The evaluator shall verify the correctness of the TSF’s implementation by comparing values generated by the TSF with those generated from a known good implementation. Verification must also confirm - for each FFC parameter set and key pair. + for each FFC parameter set and key pair.

    - +

    - Diffie-Hellman Group 14 and FFC Schemes using “safe-prime” groups + Diffie-Hellman Group 14 and FFC Schemes using “safe-prime” groups

    - +

    - Testing for FFC Schemes using Diffie-Hellman group 14 and/or safe-prime groups is done as part of testing in CKM.2.1. + Testing for FFC Schemes using Diffie-Hellman group 14 and/or safe-prime groups is done as part of testing in CKM.2.1.
    @@ -4772,7 +4860,7 @@

    FCS_CKM.1/PBKDF Password Conditioning

    FCS_CKM.1.1/PBKDF
    - A password/passphrase shall perform[assignment: Password-based Key Derivation Functions]in accordance with a specified cryptographic algorithm as specified in FCS_COP.1/KeyedHash, with[assignment: positive integer of 1,000 or more]iterations, and output cryptographic key sizes[selection: 128, 256]that meet the following [NIST SP 800-132] . + A password/passphrase shall perform[assignment: Password-based Key Derivation Functions]in accordance with a specified cryptographic algorithm as specified in FCS_COP.1/KeyedHash, with[assignment: positive integer of 1,000 or more]iterations, and output cryptographic key sizes[selection: 128, 256]that meet the following [NIST SP 800-132] .
    @@ -4780,13 +4868,13 @@

    FCS_CKM.1/PBKDF Password Conditioning

    FCS_CKM.1.2/PBKDF
    - The TSF shall generate salts using a RBG that meets FCS_RGBRBG_EXT.1 and with entropy corresponding to the security strength selected for PBKDF in FCS_CKM.1.1/PBKDF. + The TSF shall generate salts using a RBG that meets FCS_RGBRBG_EXT.1 and with entropy corresponding to the security strength selected for PBKDF in FCS_CKM.1.1/PBKDF.
    Application Note: This should be included if selected in FCS_STO_EXT.1

    - Conditioning can be performed using one of the identified hash functions or the process described in NIST SP 800-132; the method used is selected by the ST Author. SP 800-132 requires the use of a pseudo-random function (PRF) consisting of HMAC with an approved hash function. The ST author selects the hash function used, also includes the appropriate requirements for HMAC and the hash function. + Conditioning can be performed using one of the identified hash functions or the process described in NIST SP 800-132; the method used is selected by the ST Author. SP 800-132 requires the use of a pseudo-random function (PRF) consisting of HMAC with an approved hash function. The ST author selects the hash function used, also includes the appropriate requirements for HMAC and the hash function.

    - Appendix A of SP 800-132 recommends setting the iteration count in order to increase the computation needed to derive a key from a password and, therefore, increase the workload of performing a password recovery attack. A significantly higher value is recommended to ensure optimal security. This value is expected to increase to a minimum of 10,000 in a future iteration based on SP800-63.
    + Appendix A of SP 800-132 recommends setting the iteration count in order to increase the computation needed to derive a key from a password and, therefore, increase the workload of performing a password recovery attack. A significantly higher value is recommended to ensure optimal security. This value is expected to increase to a minimum of 10,000 in a future iteration based on SP800-63.
    @@ -4796,27 +4884,27 @@

    FCS_CKM.1/PBKDF Password Conditioning

    - FCS_CKM.1.2/PBKDF + FCS_CKM.1.2/PBKDF
    TSS
    - Support for PBKDF: The evaluator shall examine the password hierarchy TSS to ensure that the formation of all password based derived keys is described and that the key sizes match that described by the ST author. The evaluator shall check that the TSS describes the method by which the password/passphrase is first encoded and then fed to the SHA algorithm. The settings for the algorithm (padding, blocking, etc.) shall be described, and the evaluator shall verify that these are supported by the selections in this component as well as the selections concerning the hash function itself. The evaluator shall verify that the TSS contains a description of how the output of the hash function is used to form the submask that will be input into the function. For the NIST SP 800-132-based conditioning of the password/passphrase, the required evaluation activities will be performed when doing the evaluation activities for the appropriate requirements (FCS_COP.1.1/KeyedHash). No explicit testing of the formation of the submask from the input password is required. FCS_CKM.1.1/PBKDF: The ST author shall provide a description in the TSS regarding the salt generation. The evaluator shall confirm that the salt is generated using an RBG described in FCS_RBG_EXT.1. + Support for PBKDF: The evaluator shall examine the password hierarchy TSS to ensure that the formation of all password based derived keys is described and that the key sizes match that described by the ST author. The evaluator shall check that the TSS describes the method by which the password/passphrase is first encoded and then fed to the SHA algorithm. The settings for the algorithm (padding, blocking, etc.) shall be described, and the evaluator shall verify that these are supported by the selections in this component as well as the selections concerning the hash function itself. The evaluator shall verify that the TSS contains a description of how the output of the hash function is used to form the submask that will be input into the function. For the NIST SP 800-132-based conditioning of the password/passphrase, the required evaluation activities will be performed when doing the evaluation activities for the appropriate requirements (FCS_COP.1.1/KeyedHash). No explicit testing of the formation of the submask from the input password is required. FCS_CKM.1.1/PBKDF: The ST author shall provide a description in the TSS regarding the salt generation. The evaluator shall confirm that the salt is generated using an RBG described in FCS_RBG_EXT.1.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - None. + None.
    @@ -4831,34 +4919,34 @@

    FCS_CKM.2 Cryptographic Key Establishment

    FCS_CKM.2.1
    - The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method: + The application shall[selection: invoke platform-provided functionality, implement functionality]to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method:

    [selection: ].
    - Application Note: The ST author shall select all key establishment schemes used for the selected cryptographic protocols. TLS requires cipher suites that use RSA-based key establishment schemes. + Application Note: The ST author shall select all key establishment schemes used for the selected cryptographic protocols. TLS requires cipher suites that use RSA-based key establishment schemes.

    - The RSA-based key establishment schemes are described in Section 9 of NIST SP 800-56B; however, Section 9 relies on implementation of other sections in SP 800-56B. If the TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement RSA key generation. + The RSA-based key establishment schemes are described in Section 9 of NIST SP 800-56B; however, Section 9 relies on implementation of other sections in SP 800-56B. If the TOE acts as a receiver in the RSA key establishment scheme, the TOE does not need to implement RSA key generation.

    The elliptic curves used for the key establishment scheme shall correlate with the curves specified in FCS_CKM.1.1/AK.

    @@ -4878,379 +4966,379 @@

    FCS_CKM.2 Cryptographic Key Establishment

    TSS
    - The evaluator shall ensure that the supported key establishment schemes correspond to the key generation schemes identified in FCS_CKM.1.1. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme. + The evaluator shall ensure that the supported key establishment schemes correspond to the key generation schemes identified in FCS_CKM.1.1. If the ST specifies more than one scheme, the evaluator shall examine the TSS to verify that it identifies the usage for each scheme.

    - +

    Guidance
    - The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key establishment scheme(s). + The evaluator shall verify that the AGD guidance instructs the administrator how to configure the TOE to use the selected key establishment scheme(s).

    - +

    Tests
    - Evaluation Activity Note: The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products. + Evaluation Activity Note: The following tests require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on factory products.

    - +

    - Key Establishment Schemes + Key Establishment Schemes

    - +

    - The evaluator shall verify the implementation of the key establishment schemes supported by the TOE using the applicable tests below. + The evaluator shall verify the implementation of the key establishment schemes supported by the TOE using the applicable tests below.

    - +

    - SP800-56A Key Establishment Schemes + SP800-56A Key Establishment Schemes

    - +

    - The evaluator shall verify a TOE's implementation of SP800-56A key agreement schemes using the following Function and Validity tests. These validation tests for each key agreement scheme verify that a TOE has implemented the components of the key agreement scheme according to the specifications in the Recommendation. These components include the calculation of the DLC primitives (the shared secret value Z) and the calculation of the derived keying material (DKM) via the Key Derivation Function (KDF). If key confirmation is supported, the evaluator shall also verify that the components of key confirmation have been implemented correctly, using the test procedures described below. This includes the parsing of the DKM, the generation of MACdata and the calculation of MACtag. + The evaluator shall verify a TOE's implementation of SP800-56A key agreement schemes using the following Function and Validity tests. These validation tests for each key agreement scheme verify that a TOE has implemented the components of the key agreement scheme according to the specifications in the Recommendation. These components include the calculation of the DLC primitives (the shared secret value Z) and the calculation of the derived keying material (DKM) via the Key Derivation Function (KDF). If key confirmation is supported, the evaluator shall also verify that the components of key confirmation have been implemented correctly, using the test procedures described below. This includes the parsing of the DKM, the generation of MACdata and the calculation of MACtag.

    - +

    - Function Test + Function Test

    - +

    - The Function test verifies the ability of the TOE to implement the key agreement schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each supported key agreement scheme-key agreement role combination, KDF type, and, if supported, key confirmation role- key confirmation type combination, the tester shall generate 10 sets of test vectors. The data set consists of one set of domain parameter values (FFC) or the NIST approved curve (ECC) per 10 sets of public keys. These keys are static, ephemeral or both depending on the scheme being tested. + The Function test verifies the ability of the TOE to implement the key agreement schemes correctly. To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each supported key agreement scheme-key agreement role combination, KDF type, and, if supported, key confirmation role- key confirmation type combination, the tester shall generate 10 sets of test vectors. The data set consists of one set of domain parameter values (FFC) or the NIST approved curve (ECC) per 10 sets of public keys. These keys are static, ephemeral or both depending on the scheme being tested.

    - +

    - The evaluator shall obtain the DKM, the corresponding TOE’s public keys (static and/or ephemeral), the MAC tag(s), and any inputs used in the KDF, such as the Other Information (OtherInfo) and TOE id fields. + The evaluator shall obtain the DKM, the corresponding TOE’s public keys (static and/or ephemeral), the MAC tag(s), and any inputs used in the KDF, such as the Other Information (OtherInfo) and TOE id fields.

    - +

    - If the TOE does not use a KDF defined in SP 800-56A, the evaluator shall obtain only the public keys and the hashed value of the shared secret. + If the TOE does not use a KDF defined in SP 800-56A, the evaluator shall obtain only the public keys and the hashed value of the shared secret.

    - +

    - The evaluator shall verify the correctness of the TSF’s implementation of a given scheme by using a known good implementation to calculate the shared secret value, derive the keying material DKM, and compare hashes or MAC tags generated from these values. + The evaluator shall verify the correctness of the TSF’s implementation of a given scheme by using a known good implementation to calculate the shared secret value, derive the keying material DKM, and compare hashes or MAC tags generated from these values.

    - +

    - If key confirmation is supported, the TSF shall perform the above for each implemented approved MAC algorithm. + If key confirmation is supported, the TSF shall perform the above for each implemented approved MAC algorithm.

    - +

    - Validity Test + Validity Test

    - +

    - The Validity test verifies the ability of the TOE to recognize another party’s valid and invalid key agreement results with or without key confirmation. To conduct this test, the evaluator shall obtain a list of the supporting cryptographic functions included in the SP800-56A key agreement implementation to determine which errors the TOE should be able to recognize. The evaluator generates a set of 24 (FFC) or 30 (ECC) test vectors consisting of data sets including domain parameter values or NIST approved curves, the evaluator’s public keys, the TOE’s public/private key pairs, MACTag, and any inputs used in the KDF, such as the OtherInfo and TOE id fields. + The Validity test verifies the ability of the TOE to recognize another party’s valid and invalid key agreement results with or without key confirmation. To conduct this test, the evaluator shall obtain a list of the supporting cryptographic functions included in the SP800-56A key agreement implementation to determine which errors the TOE should be able to recognize. The evaluator generates a set of 24 (FFC) or 30 (ECC) test vectors consisting of data sets including domain parameter values or NIST approved curves, the evaluator’s public keys, the TOE’s public/private key pairs, MACTag, and any inputs used in the KDF, such as the OtherInfo and TOE id fields.

    - +

    - The evaluator shall inject an error in some of the test vectors to test that the TOE recognizes invalid key agreement results caused by the following fields being incorrect: the shared secret value Z, the DKM, the OtherInfo field, the data to be MACed, or the generated MACTag. If the TOE contains the full or partial (only ECC) public key validation, the evaluator will also individually inject errors in both parties’ static public keys, both parties’ ephemeral public keys and the TOE’s static private key to assure the TOE detects errors in the public key validation function and/or the partial key validation function (in ECC only). At least two of the test vectors shall remain unmodified and therefore should result in valid key agreement results (they should pass). + The evaluator shall inject an error in some of the test vectors to test that the TOE recognizes invalid key agreement results caused by the following fields being incorrect: the shared secret value Z, the DKM, the OtherInfo field, the data to be MACed, or the generated MACTag. If the TOE contains the full or partial (only ECC) public key validation, the evaluator will also individually inject errors in both parties’ static public keys, both parties’ ephemeral public keys and the TOE’s static private key to assure the TOE detects errors in the public key validation function and/or the partial key validation function (in ECC only). At least two of the test vectors shall remain unmodified and therefore should result in valid key agreement results (they should pass).

    - +

    - The TOE shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The evaluator shall compare the TOE’s results with the results using a known good implementation verifying that the TOE detects these errors. + The TOE shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The evaluator shall compare the TOE’s results with the results using a known good implementation verifying that the TOE detects these errors.

    - +

    - SP800-56B Key Establishment Schemes + SP800-56B Key Establishment Schemes

    - +

    - The evaluator shall verify that the TSS describes whether the TOE acts as a sender, a recipient, or both for RSA-based key establishment schemes. + The evaluator shall verify that the TSS describes whether the TOE acts as a sender, a recipient, or both for RSA-based key establishment schemes.

    - +

    - If the TOE acts as a sender, the following evaluation activity shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme: + If the TOE acts as a sender, the following evaluation activity shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme:

    - +

    - To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each combination of supported key establishment scheme and its options (with or without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the RSA public key, the plaintext keying material, any additional input parameters if applicable, the MacKey and MacTag if key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform a key establishment encryption operation on the TOE with the same inputs (in cases where key confirmation is incorporated, the test shall use the MacKey from the test vector instead of the randomly generated MacKey used in normal operation) and ensure that the outputted ciphertext is equivalent to the ciphertext in the test vector. + To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each combination of supported key establishment scheme and its options (with or without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the RSA public key, the plaintext keying material, any additional input parameters if applicable, the MacKey and MacTag if key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform a key establishment encryption operation on the TOE with the same inputs (in cases where key confirmation is incorporated, the test shall use the MacKey from the test vector instead of the randomly generated MacKey used in normal operation) and ensure that the outputted ciphertext is equivalent to the ciphertext in the test vector.

    - If the TOE acts as a receiver, the following evaluation activities shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme: + If the TOE acts as a receiver, the following evaluation activities shall be performed to ensure the proper operation of every TOE supported combination of RSA-based key establishment scheme:

    - +

    - To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each combination of supported key establishment scheme and its options (with our without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the RSA private key, the plaintext keying material (KeyData), any additional input parameters if applicable, the MacTag in cases where key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform the key establishment decryption operation on the TOE and ensure that the outputted plaintext keying material (KeyData) is equivalent to the plaintext keying material in the test vector. In cases where key confirmation is incorporated, the evaluator shall perform the key confirmation steps and ensure that the outputted MacTag is equivalent to the MacTag in the test vector. + To conduct this test the evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each combination of supported key establishment scheme and its options (with our without key confirmation if supported, for each supported key confirmation MAC function if key confirmation is supported, and for each supported mask generation function if KTS-OAEP is supported), the tester shall generate 10 sets of test vectors. Each test vector shall include the RSA private key, the plaintext keying material (KeyData), any additional input parameters if applicable, the MacTag in cases where key confirmation is incorporated, and the outputted ciphertext. For each test vector, the evaluator shall perform the key establishment decryption operation on the TOE and ensure that the outputted plaintext keying material (KeyData) is equivalent to the plaintext keying material in the test vector. In cases where key confirmation is incorporated, the evaluator shall perform the key confirmation steps and ensure that the outputted MacTag is equivalent to the MacTag in the test vector.

    - The evaluator shall ensure that the TSS describes how the TOE handles decryption errors. In accordance with NIST Special Publication 800-56B, the TOE must not reveal the particular error that occurred, either through the contents of any outputted or logged error message or through timing variations. If KTS-OAEP is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.2.3, ensure that each decryption attempt results in an error, and ensure that any outputted or logged error message is identical for each. If KTS-KEM-KWS is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.3.3, ensure that each decryption attempt results in an error, and ensure that any outputted or logged error message is identical for each. + The evaluator shall ensure that the TSS describes how the TOE handles decryption errors. In accordance with NIST Special Publication 800-56B, the TOE must not reveal the particular error that occurred, either through the contents of any outputted or logged error message or through timing variations. If KTS-OAEP is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.2.3, ensure that each decryption attempt results in an error, and ensure that any outputted or logged error message is identical for each. If KTS-KEM-KWS is supported, the evaluator shall create separate contrived ciphertext values that trigger each of the three decryption error checks described in NIST Special Publication 800-56B section 7.2.3.3, ensure that each decryption attempt results in an error, and ensure that any outputted or logged error message is identical for each.

    - +

    - RSA-based key establishment + RSA-based key establishment

    - +

    - The evaluator shall verify the correctness of the TSF’s implementation of RSAES-PKCS1-v1_5 by using a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses RSAES-PKCS1-v1_5. + The evaluator shall verify the correctness of the TSF’s implementation of RSAES-PKCS1-v1_5 by using a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses RSAES-PKCS1-v1_5.

    - +

    - Diffie-Hellman Group 14 + Diffie-Hellman Group 14

    - +

    - The evaluator shall verify the correctness of the TSF’s implementation of Diffie-Hellman group 14 by using a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses Diffie-Hellman group 14. + The evaluator shall verify the correctness of the TSF’s implementation of Diffie-Hellman group 14 by using a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses Diffie-Hellman group 14.

    - +

    - FFC Schemes using “safe-prime” groups + FFC Schemes using “safe-prime” groups

    - +

    - The evaluator shall verify the correctness of the TSF’s implementation of safe-prime groups by using a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses safe-prime groups. This test must be performed for each safe-prime group that each protocol uses. + The evaluator shall verify the correctness of the TSF’s implementation of safe-prime groups by using a known good implementation for each protocol selected in FTP_DIT_EXT.1 that uses safe-prime groups. This test must be performed for each safe-prime group that each protocol uses.

    - FCS_COP.1/Hash Cryptographic Operation - Hashing + FCS_COP.1/Hash Cryptographic Operation - Hashing

    - The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. + The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1.
    - The application shall perform cryptographic hashing services in accordance with a specified cryptographic algorithm[selection: SHA-1, SHA-256, SHA-384, SHA-512, no other]and message digest sizes[selection: 160, 256, 384, 512, no other]bits that meet the following: FIPS Pub 180-4. + The application shall perform cryptographic hashing services in accordance with a specified cryptographic algorithm[selection: SHA-1, SHA-256, SHA-384, SHA-512, no other]and message digest sizes[selection: 160, 256, 384, 512, no other]bits that meet the following: FIPS Pub 180-4.
    - Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. + Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    - +

    - Per NIST SP 800-131A, SHA-1 for generating digital signatures is no longer allowed, and SHA-1 for verification of digital signatures is strongly discouraged as there may be risk in accepting these signatures. + Per NIST SP 800-131A, SHA-1 for generating digital signatures is no longer allowed, and SHA-1 for verification of digital signatures is strongly discouraged as there may be risk in accepting these signatures.

    - +

    - SHA-1 is currently included in order to comply with the TLS. If the TLS package is included in the ST, the hashing algorithms selection for FCS_COP.1/Hash must match the hashing algorithms used in the mandatory and selected cipher suites of the TLS package. Vendors are strongly encouraged to implement updated protocols that support the SHA-2 family; until updated protocols are supported, this PP allows support for SHA-1 implementations in compliance with SP 800-131A. + SHA-1 is currently included in order to comply with the TLS. If the TLS package is included in the ST, the hashing algorithms selection for FCS_COP.1/Hash must match the hashing algorithms used in the mandatory and selected cipher suites of the TLS package. Vendors are strongly encouraged to implement updated protocols that support the SHA-2 family; until updated protocols are supported, this PP allows support for SHA-1 implementations in compliance with SP 800-131A.

    - +

    - The intent of this requirement is to specify the hashing function. The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).
    + The intent of this requirement is to specify the hashing function. The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).
    - TSS + TSS
    - The evaluator shall check that the association of the hash function with other application cryptographic functions (for example, the digital signature verification function) is documented in the TSS. + The evaluator shall check that the association of the hash function with other application cryptographic functions (for example, the digital signature verification function) is documented in the TSS.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - +
      - The following tests require the developer to provide access to a test application that provides the evaluator with tools that are typically not found in the production application. + The following tests require the developer to provide access to a test application that provides the evaluator with tools that are typically not found in the production application.
    • - Test FCS_COP.1.1/Hash:1: Short Messages Test - Bit oriented Mode. The evaluators devise an input set consisting of m+1 messages, where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m bits. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF. + Test FCS_COP.1.1/Hash:1: Short Messages Test - Bit oriented Mode. The evaluators devise an input set consisting of m+1 messages, where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m bits. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.
    • - Test FCS_COP.1.1/Hash:2: Short Messages Test - Byte oriented Mode. The evaluators devise an input set consisting of m/8+1 messages, where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m/8 bytes, with each message being an integral number of bytes. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF. + Test FCS_COP.1.1/Hash:2: Short Messages Test - Byte oriented Mode. The evaluators devise an input set consisting of m/8+1 messages, where m is the block length of the hash algorithm. The length of the messages range sequentially from 0 to m/8 bytes, with each message being an integral number of bytes. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.
    • - Test FCS_COP.1.1/Hash:3: Selected Long Messages Test - Bit oriented Mode. The evaluators devise an input set consisting of m messages, where m is the block length of the hash algorithm. The length of the ith message is 512 + 99*i, where 1 ≤ i ≤ m. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF. + Test FCS_COP.1.1/Hash:3: Selected Long Messages Test - Bit oriented Mode. The evaluators devise an input set consisting of m messages, where m is the block length of the hash algorithm. The length of the ith message is 512 + 99*i, where 1 ≤ i ≤ m. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.
    • - Test FCS_COP.1.1/Hash:4: Selected Long Messages Test - Byte oriented Mode. The evaluators devise an input set consisting of m/8 messages, where m is the block length of the hash algorithm. The length of the ith message is 512 + 8*99*i, where 1 ≤ i ≤ m/8. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF. + Test FCS_COP.1.1/Hash:4: Selected Long Messages Test - Byte oriented Mode. The evaluators devise an input set consisting of m/8 messages, where m is the block length of the hash algorithm. The length of the ith message is 512 + 8*99*i, where 1 ≤ i ≤ m/8. The message text shall be pseudorandomly generated. The evaluators compute the message digest for each of the messages and ensure that the correct result is produced when the messages are provided to the TSF.
    • - Test FCS_COP.1.1/Hash:5: Pseudorandomly Generated Messages Test. This test is for byte-oriented implementations only. The evaluators randomly generate a seed that is n bits long, where n is the length of the message digest produced by the hash function to be tested. The evaluators then formulate a set of 100 messages and associated digests by following the algorithm provided in Figure 1 of [SHAVS]. The evaluators then ensure that the correct result is produced when the messages are provided to the TSF. + Test FCS_COP.1.1/Hash:5: Pseudorandomly Generated Messages Test. This test is for byte-oriented implementations only. The evaluators randomly generate a seed that is n bits long, where n is the length of the message digest produced by the hash function to be tested. The evaluators then formulate a set of 100 messages and associated digests by following the algorithm provided in Figure 1 of [SHAVS]. The evaluators then ensure that the correct result is produced when the messages are provided to the TSF.
    -
    +

    - FCS_COP.1/KeyedHash Cryptographic Operation - Keyed-Hash Message Authentication + FCS_COP.1/KeyedHash Cryptographic Operation - Keyed-Hash Message Authentication

    - The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. + The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1.
    - The application shall perform keyed-hash message authentication in accordance with a specified cryptographic algorithm + The application shall perform keyed-hash message authentication in accordance with a specified cryptographic algorithm
      - +
    • - HMAC-SHA-256 + HMAC-SHA-256
    - and[selection: HMAC-SHA-1, HMAC-SHA-384, HMAC-SHA-512, no other algorithms]with key sizes[assignment: key size (in bits) used in HMAC]and message digest sizes 256 and[selection: 160, 384, 512, no other size]bits that meet the following: FIPS Pub 198-1 The Keyed-Hash Message Authentication Code and FIPS Pub 180-4 Secure Hash Standard . + and[selection: HMAC-SHA-1, HMAC-SHA-384, HMAC-SHA-512, no other algorithms]with key sizes[assignment: key size (in bits) used in HMAC]and message digest sizes 256 and[selection: 160, 384, 512, no other size]bits that meet the following: FIPS Pub 198-1 The Keyed-Hash Message Authentication Code and FIPS Pub 180-4 Secure Hash Standard .
    - Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. + Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    - +

    - The intent of this requirement is to specify the keyed-hash message authentication function used for key establishment purposes for the various cryptographic protocols used by the application (e.g., trusted channel). The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used for FCS_COP.1/SKC.
    + The intent of this requirement is to specify the keyed-hash message authentication function used for key establishment purposes for the various cryptographic protocols used by the application (e.g., trusted channel). The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used for FCS_COP.1/SKC.
    - The evaluator shall perform the following activities based on the selections in the ST. + The evaluator shall perform the following activities based on the selections in the ST.
    - TSS + TSS
    - None. + None.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The evaluator shall have the TSF generate HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the result of generating HMAC tags with the same key and IV using a known-good implementation. + For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The evaluator shall have the TSF generate HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the result of generating HMAC tags with the same key and IV using a known-good implementation.

    - FCS_COP.1/Sig Cryptographic Operation - Signing + FCS_COP.1/Sig Cryptographic Operation - Signing

    - The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. + The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1.
    - The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm[selection: + The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm[selection:
      - +
    • - RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4 + RSA schemes using cryptographic key sizes of 2048-bit or greater that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4
    • - ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5 + ECDSA schemes using “NIST curves” P-256, P-384 and [selection: P-521, no other curves] that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5
    - ]. + ].
    - Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. + Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    - +

    - The ST Author should choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated to specify the functionality. For the algorithm chosen, the ST author should make the appropriate assignments/selections to specify the parameters that are implemented for that algorithm.
    + The ST Author should choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated to specify the functionality. For the algorithm chosen, the ST author should make the appropriate assignments/selections to specify the parameters that are implemented for that algorithm.
    - The evaluator shall perform the following activities based on the selections in the ST. + The evaluator shall perform the following activities based on the selections in the ST.
    - TSS + TSS
    - None. + None.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - +
      - ECDSA Algorithm Tests + ECDSA Algorithm Tests
    • - Test FCS_COP.1.1/Sig:1: ECDSA FIPS 186-4 Signature Generation Test. For each supported NIST curve (i.e., P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate 10 1024-bit long messages and obtain for each message a public key and the resulting signature values R and S. To determine correctness, the evaluator shall use the signature verification function of a known good implementation. + Test FCS_COP.1.1/Sig:1: ECDSA FIPS 186-4 Signature Generation Test. For each supported NIST curve (i.e., P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate 10 1024-bit long messages and obtain for each message a public key and the resulting signature values R and S. To determine correctness, the evaluator shall use the signature verification function of a known good implementation.
    • - Test FCS_COP.1.1/Sig:2: ECDSA FIPS 186-4 Signature Verification Test. For each supported NIST curve (i.e., P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate a set of 10 1024-bit message, public key and signature tuples and modify one of the values (message, public key or signature) in five of the 10 tuples. The evaluator shall obtain in response a set of 10 PASS/FAIL values. + Test FCS_COP.1.1/Sig:2: ECDSA FIPS 186-4 Signature Verification Test. For each supported NIST curve (i.e., P-256, P-384 and P-521) and SHA function pair, the evaluator shall generate a set of 10 1024-bit message, public key and signature tuples and modify one of the values (message, public key or signature) in five of the 10 tuples. The evaluator shall obtain in response a set of 10 PASS/FAIL values.
    -
    +
      - RSA Signature Algorithm Tests + RSA Signature Algorithm Tests
    • - Test FCS_COP.1.1/Sig:3: Signature Generation Test. The evaluator shall verify the implementation of RSA Signature Generation by the TOE using the Signature Generation Test. To conduct this test the evaluator must generate or obtain 10 messages from a trusted reference implementation for each modulus size/SHA combination supported by the TSF. The evaluator shall have the TOE use their private key and modulus value to sign these messages. The evaluator shall verify the correctness of the TSF’s signature using a known good implementation and the associated public keys to verify the signatures. + Test FCS_COP.1.1/Sig:3: Signature Generation Test. The evaluator shall verify the implementation of RSA Signature Generation by the TOE using the Signature Generation Test. To conduct this test the evaluator must generate or obtain 10 messages from a trusted reference implementation for each modulus size/SHA combination supported by the TSF. The evaluator shall have the TOE use their private key and modulus value to sign these messages. The evaluator shall verify the correctness of the TSF’s signature using a known good implementation and the associated public keys to verify the signatures.
    • - Test FCS_COP.1.1/Sig:4: Signature Verification Test. The evaluator shall perform the Signature Verification test to verify the ability of the TOE to recognize another party’s valid and invalid signatures. The evaluator shall inject errors into the test vectors produced during the Signature Verification Test by introducing errors in some of the public keys, e, messages, IR format, and/or signatures. The TOE attempts to verify the signatures and returns success or failure. + Test FCS_COP.1.1/Sig:4: Signature Verification Test. The evaluator shall perform the Signature Verification test to verify the ability of the TOE to recognize another party’s valid and invalid signatures. The evaluator shall inject errors into the test vectors produced during the Signature Verification Test by introducing errors in some of the public keys, e, messages, IR format, and/or signatures. The TOE attempts to verify the signatures and returns success or failure.
    -
    +

    - FCS_COP.1/SKC Cryptographic Operation - Encryption/Decryption + FCS_COP.1/SKC Cryptographic Operation - Encryption/Decryption

    The inclusion of this selection-based component depends upon selection in FCS_STO_EXT.1.1, FTP_DIT_EXT.1.1. @@ -5260,11 +5348,11 @@

    FCS_COP.1.1/SKC

    - The application shall perform encryption/decryption in accordance with a specified cryptographic algorithm[selection: AES-CBC (as defined in NIST SP 800-38A) mode, AES-GCM (as defined in NIST SP 800-38D) mode, AES-XTS (as defined in NIST SP 800-38E) mode, AES-CCM (as defined in NIST SP 800-38C) mode, AES-CTR (as defined in NIST SP 800-38A) mode]and cryptographic key sizes[selection: 128-bit, 256-bit]. + The application shall perform encryption/decryption in accordance with a specified cryptographic algorithm[selection: AES-CBC (as defined in NIST SP 800-38A) mode, AES-GCM (as defined in NIST SP 800-38D) mode, AES-XTS (as defined in NIST SP 800-38E) mode, AES-CCM (as defined in NIST SP 800-38C) mode, AES-CTR (as defined in NIST SP 800-38A) mode]and cryptographic key sizes[selection: 128-bit, 256-bit].
    Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.
    - For the first selection, the ST author should choose the mode or modes in which AES operates. For the second selection, the ST author should choose the key sizes that are supported by this functionality. 128-bit key size is required in order to comply with certain TLS implementations. + For the first selection, the ST author should choose the mode or modes in which AES operates. For the second selection, the ST author should choose the key sizes that are supported by this functionality. 128-bit key size is required in order to comply with certain TLS implementations.

    @@ -5276,261 +5364,261 @@

    TSS
    - None. + None.

    - +

    Guidance
    - The evaluator checks the AGD documents to determine that any configuration that is required to be done to configure the functionality for the required modes and key sizes is present. + The evaluator checks the AGD documents to determine that any configuration that is required to be done to configure the functionality for the required modes and key sizes is present.

    - +

    Tests
    - The evaluator shall perform all of the following tests for each algorithm implemented by the TSF and used to satisfy the requirements of this PP: + The evaluator shall perform all of the following tests for each algorithm implemented by the TSF and used to satisfy the requirements of this PP:

    - +

    - AES-CBC Known Answer Tests + AES-CBC Known Answer Tests

    - +

    - There are four Known Answer Tests (KATs), described below. In all KATs, the plaintext, ciphertext, and IV values shall be 128-bit blocks. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. + There are four Known Answer Tests (KATs), described below. In all KATs, the plaintext, ciphertext, and IV values shall be 128-bit blocks. The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation.
      - +
    • - KAT-1. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from AES-CBC encryption of the given plaintext using a key value of all zeros and an IV of all zeros. Five plaintext values shall be encrypted with a 128-bit all-zeros key, and the other five shall be encrypted with a 256-bit all- zeros key. To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input and AES-CBC decryption. + KAT-1. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from AES-CBC encryption of the given plaintext using a key value of all zeros and an IV of all zeros. Five plaintext values shall be encrypted with a 128-bit all-zeros key, and the other five shall be encrypted with a 256-bit all- zeros key. To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input and AES-CBC decryption.
    • - KAT-2. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 key values and obtain the ciphertext value that results from AES-CBC encryption of an all-zeros plaintext using the given key value and an IV of all zeros. Five of the keys shall be 128-bit keys, and the other five shall be 256-bit keys. To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using an all-zero ciphertext value as input and AES-CBC decryption. + KAT-2. To test the encrypt functionality of AES-CBC, the evaluator shall supply a set of 10 key values and obtain the ciphertext value that results from AES-CBC encryption of an all-zeros plaintext using the given key value and an IV of all zeros. Five of the keys shall be 128-bit keys, and the other five shall be 256-bit keys. To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using an all-zero ciphertext value as input and AES-CBC decryption.
    • - KAT-3. To test the encrypt functionality of AES-CBC, the evaluator shall supply the two sets of key values described below and obtain the ciphertext value that results from AES encryption of an all-zeros plaintext using the given key value and an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second set shall have 256 256-bit keys. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1,N]. To test the decrypt functionality of AES-CBC, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from AES-CBC decryption of the given ciphertext using the given key and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit key/ciphertext pairs. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1,N]. The ciphertext value in each pair shall be the value that results in an all-zeros plaintext when decrypted with its corresponding key. + KAT-3. To test the encrypt functionality of AES-CBC, the evaluator shall supply the two sets of key values described below and obtain the ciphertext value that results from AES encryption of an all-zeros plaintext using the given key value and an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second set shall have 256 256-bit keys. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1,N]. To test the decrypt functionality of AES-CBC, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from AES-CBC decryption of the given ciphertext using the given key and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit key/ciphertext pairs. Key i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1,N]. The ciphertext value in each pair shall be the value that results in an all-zeros plaintext when decrypted with its corresponding key.
    • - KAT-4. To test the encrypt functionality of AES-CBC, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from AES-CBC encryption of the given plaintext using a 128-bit key value of all zeros with an IV of all zeros and using a 256-bit key value of all zeros with an IV of all zeros, respectively. Plaintext value i in each set shall have the leftmost i bits be ones and the rightmost 128-i bits be zeros, for i in [1,128]. + KAT-4. To test the encrypt functionality of AES-CBC, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from AES-CBC encryption of the given plaintext using a 128-bit key value of all zeros with an IV of all zeros and using a 256-bit key value of all zeros with an IV of all zeros, respectively. Plaintext value i in each set shall have the leftmost i bits be ones and the rightmost 128-i bits be zeros, for i in [1,128].
    - To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the encrypt test as input and AES-CBC decryption. + To test the decrypt functionality of AES-CBC, the evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the encrypt test as input and AES-CBC decryption.

    - +

    - AES-CBC Multi-Block Message Test + AES-CBC Multi-Block Message Test

    - +

    - The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 < i < = 10. The evaluator shall choose a key, an IV and plaintext message of length i blocks and encrypt the message, using the mode to be tested, with the chosen key and IV. The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key and IV using a known good implementation. The evaluator shall also test the decrypt functionality for each mode by decrypting an i-block message where 1 < i < =10. The evaluator shall choose a key, an IV and a ciphertext message of length i blocks and decrypt the message, using the mode to be tested, with the chosen key and IV. The plaintext shall be compared to the result of decrypting the same ciphertext message with the same key and IV using a known good implementation. AES-CBC Monte Carlo Tests The evaluator shall test the encrypt functionality using a set of 200 plaintext, IV, and key 3- tuples. 100 of these shall use 128 bit keys, and 100 shall use 256 bit keys. The plaintext and IV values shall be 128-bit blocks. For each 3-tuple, 1000 iterations shall be run as follows: + The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 < i < = 10. The evaluator shall choose a key, an IV and plaintext message of length i blocks and encrypt the message, using the mode to be tested, with the chosen key and IV. The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key and IV using a known good implementation. The evaluator shall also test the decrypt functionality for each mode by decrypting an i-block message where 1 < i < =10. The evaluator shall choose a key, an IV and a ciphertext message of length i blocks and decrypt the message, using the mode to be tested, with the chosen key and IV. The plaintext shall be compared to the result of decrypting the same ciphertext message with the same key and IV using a known good implementation. AES-CBC Monte Carlo Tests The evaluator shall test the encrypt functionality using a set of 200 plaintext, IV, and key 3- tuples. 100 of these shall use 128 bit keys, and 100 shall use 256 bit keys. The plaintext and IV values shall be 128-bit blocks. For each 3-tuple, 1000 iterations shall be run as follows:
    -                            
    +                            
     						  # Input: PT, IV, Key
     						  for i = 1 to 1000:
     							if i == 1:
    -								  CT[1] = AES-CBC-Encrypt(Key, IV, PT)
    +								  CT[1] = AES-CBC-Encrypt(Key, IV, PT)
     								  PT = IV
     							else:
    -							  CT[i] = AES-CBC-Encrypt(Key, PT) 
    +							  CT[i] = AES-CBC-Encrypt(Key, PT) 
     							  PT = CT[i-1]
     						  
                             
    - The ciphertext computed in the 1000th iteration (i.e., CT[1000]) is the result for that trial. This result shall be compared to the result of running 1000 iterations with the same values using a known good implementation. + The ciphertext computed in the 1000th iteration (i.e., CT[1000]) is the result for that trial. This result shall be compared to the result of running 1000 iterations with the same values using a known good implementation.

    - +

    - The evaluator shall test the decrypt functionality using the same test as for encrypt, exchanging CT and PT and replacing AES-CBC-Encrypt with AES-CBC-Decrypt. + The evaluator shall test the decrypt functionality using the same test as for encrypt, exchanging CT and PT and replacing AES-CBC-Encrypt with AES-CBC-Decrypt.

    - +

    - AES-GCM Monte Carlo Tests + AES-GCM Monte Carlo Tests

    - +

    - The evaluator shall test the authenticated encrypt functionality of AES-GCM for each combination of the following input parameter lengths: + The evaluator shall test the authenticated encrypt functionality of AES-GCM for each combination of the following input parameter lengths:
      - +
    • - 128 bit and 256 bit keys + 128 bit and 256 bit keys
    • - Two plaintext lengths. One of the plaintext lengths shall be a non-zero integer multiple of 128 bits, if supported. The other plaintext length shall not be an integer multiple of 128 bits, if supported. + Two plaintext lengths. One of the plaintext lengths shall be a non-zero integer multiple of 128 bits, if supported. The other plaintext length shall not be an integer multiple of 128 bits, if supported.
    • - Three AAD lengths. One AAD length shall be 0, if supported. One AAD length shall be a non-zero integer multiple of 128 bits, if supported. One AAD length shall not be an integer multiple of 128 bits, if supported. + Three AAD lengths. One AAD length shall be 0, if supported. One AAD length shall be a non-zero integer multiple of 128 bits, if supported. One AAD length shall not be an integer multiple of 128 bits, if supported.
    • - Two IV lengths. If 96 bit IV is supported, 96 bits shall be one of the two IV lengths tested. + Two IV lengths. If 96 bit IV is supported, 96 bits shall be one of the two IV lengths tested.
    - The evaluator shall test the encrypt functionality using a set of 10 key, plaintext, AAD, and IV tuples for each combination of parameter lengths above and obtain the ciphertext value and tag that results from AES-GCM authenticated encrypt. Each supported tag length shall be tested at least once per set of 10. The IV value may be supplied by the evaluator or the implementation being tested, as long as it is known. + The evaluator shall test the encrypt functionality using a set of 10 key, plaintext, AAD, and IV tuples for each combination of parameter lengths above and obtain the ciphertext value and tag that results from AES-GCM authenticated encrypt. Each supported tag length shall be tested at least once per set of 10. The IV value may be supplied by the evaluator or the implementation being tested, as long as it is known.

    - +

    - The evaluator shall test the decrypt functionality using a set of 10 key, ciphertext, tag, AAD, and IV 5-tuples for each combination of parameter lengths above and obtain a Pass/Fail result on authentication and the decrypted plaintext if Pass. The set shall include five tuples that Pass and five that Fail. + The evaluator shall test the decrypt functionality using a set of 10 key, ciphertext, tag, AAD, and IV 5-tuples for each combination of parameter lengths above and obtain a Pass/Fail result on authentication and the decrypted plaintext if Pass. The set shall include five tuples that Pass and five that Fail.

    - +

    - The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. + The results from each test may either be obtained by the evaluator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation.

    - +

    - AES-XTS Tests + AES-XTS Tests

    - +

    - The evaluator shall test the encrypt functionality of XTS-AES for each combination of the following input parameter lengths: + The evaluator shall test the encrypt functionality of XTS-AES for each combination of the following input parameter lengths:

    - +

    - 256 bit (for AES-128) and 512 bit (for AES-256) keys + 256 bit (for AES-128) and 512 bit (for AES-256) keys

    - +

    - Three data unit (i.e., plaintext) lengths. One of the data unit lengths shall be a non-zero integer multiple of 128 bits, if supported. One of the data unit lengths shall be an integer multiple of 128 bits, if supported. The third data unit length shall be either the longest supported data unit length or 216 bits, whichever is smaller. + Three data unit (i.e., plaintext) lengths. One of the data unit lengths shall be a non-zero integer multiple of 128 bits, if supported. One of the data unit lengths shall be an integer multiple of 128 bits, if supported. The third data unit length shall be either the longest supported data unit length or 216 bits, whichever is smaller.

    - +

    - Using a set of 100 (key, plaintext and 128-bit random tweak value) 3-tuples and obtain the ciphertext that results from XTS-AES encrypt. + Using a set of 100 (key, plaintext and 128-bit random tweak value) 3-tuples and obtain the ciphertext that results from XTS-AES encrypt.

    - +

    - The evaluator may supply a data unit sequence number instead of the tweak value if the implementation supports it. The data unit sequence number is a base-10 number ranging between 0 and 255 that implementations convert to a tweak value internally. + The evaluator may supply a data unit sequence number instead of the tweak value if the implementation supports it. The data unit sequence number is a base-10 number ranging between 0 and 255 that implementations convert to a tweak value internally.

    - +

    - The evaluator shall test the decrypt functionality of XTS-AES using the same test as for encrypt, replacing plaintext values with ciphertext values and XTS-AES encrypt with XTS-AES decrypt. + The evaluator shall test the decrypt functionality of XTS-AES using the same test as for encrypt, replacing plaintext values with ciphertext values and XTS-AES encrypt with XTS-AES decrypt.

    - +

    - AES-CCM Tests It is not recommended that evaluators use values obtained from static sources such as http://csrc.nist.gov/groups/STM/cavp/documents/mac/ccmtestvectors.zip or use values not generated expressly to exercise the AES-CCM implementation. + AES-CCM Tests It is not recommended that evaluators use values obtained from static sources such as http://csrc.nist.gov/groups/STM/cavp/documents/mac/ccmtestvectors.zip or use values not generated expressly to exercise the AES-CCM implementation.

    - +

    - The evaluator shall test the generation-encryption and decryption-verification functionality of AES-CCM for the following input parameter and tag lengths: + The evaluator shall test the generation-encryption and decryption-verification functionality of AES-CCM for the following input parameter and tag lengths:
      - +
    • - Keys: All supported and selected key sizes (e.g., 128, 256 bits). + Keys: All supported and selected key sizes (e.g., 128, 256 bits).
    • - Associated Data: Two or three values for associated data length: The minimum (≥ 0 bytes) and maximum (≤ 32 bytes) supported associated data lengths, and 2^16 (65536) bytes, if supported. + Associated Data: Two or three values for associated data length: The minimum (≥ 0 bytes) and maximum (≤ 32 bytes) supported associated data lengths, and 2^16 (65536) bytes, if supported.
    • - Payload: Two values for payload length: The minimum (≥ 0 bytes) and maximum (≤ 32 bytes) supported payload lengths. + Payload: Two values for payload length: The minimum (≥ 0 bytes) and maximum (≤ 32 bytes) supported payload lengths.
    • - Nonces: All supported nonce lengths (7, 8, 9, 10, 11, 12, 13) in bytes. + Nonces: All supported nonce lengths (7, 8, 9, 10, 11, 12, 13) in bytes.
    • - Tag: All supported tag lengths (4, 6, 8, 10, 12, 14, 16) in bytes. + Tag: All supported tag lengths (4, 6, 8, 10, 12, 14, 16) in bytes.
    - The testing for CCM consists of five tests. To determine correctness in each of the below tests, the evaluator shall compare the ciphertext with the result of encryption of the same inputs with a known good implementation. + The testing for CCM consists of five tests. To determine correctness in each of the below tests, the evaluator shall compare the ciphertext with the result of encryption of the same inputs with a known good implementation.

    - +

    - Variable Associated Data Test + Variable Associated Data Test

    - +

    - For each supported key size and associated data length, and any supported payload length, nonce length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext. + For each supported key size and associated data length, and any supported payload length, nonce length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext.

    - +

    - Variable Payload Test + Variable Payload Test

    - +

    - For each supported key size and payload length, and any supported associated data length, nonce length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext. + For each supported key size and payload length, and any supported associated data length, nonce length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext.

    - +

    - Variable Nonce Test + Variable Nonce Test

    - +

    - For each supported key size and nonce length, and any supported associated data length, payload length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext. + For each supported key size and nonce length, and any supported associated data length, payload length, and tag length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext.

    - +

    - Variable Tag Test + Variable Tag Test

    - +

    - For each supported key size and tag length, and any supported associated data length, payload length, and nonce length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext. + For each supported key size and tag length, and any supported associated data length, payload length, and nonce length, the evaluator shall supply one key value, one nonce value, and 10 pairs of associated data and payload values, and obtain the resulting ciphertext.

    - +

    - Decryption-Verification Process Test + Decryption-Verification Process Test

    - +

    - To test the decryption-verification functionality of AES-CCM, for each combination of supported associated data length, payload length, nonce length, and tag length, the evaluator shall supply a key value and 15 sets of input plus ciphertext, and obtain the decrypted payload. Ten of the 15 input sets supplied should fail verification and five should pass. + To test the decryption-verification functionality of AES-CCM, for each combination of supported associated data length, payload length, nonce length, and tag length, the evaluator shall supply a key value and 15 sets of input plus ciphertext, and obtain the decrypted payload. Ten of the 15 input sets supplied should fail verification and five should pass.

    - +

    - AES-CTR Tests + AES-CTR Tests

    - +

    - Test 1: Known Answer Tests (KATs) + Test 1: Known Answer Tests (KATs)

    - +

    - There are four Known Answer Tests (KATs) described below. For all KATs, the plaintext, IV, and ciphertext values shall be 128-bit blocks. The results from each test may either be obtained by the validator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation. + There are four Known Answer Tests (KATs) described below. For all KATs, the plaintext, IV, and ciphertext values shall be 128-bit blocks. The results from each test may either be obtained by the validator directly or by supplying the inputs to the implementer and receiving the results in response. To determine correctness, the evaluator shall compare the resulting values to those obtained by submitting the same inputs to a known good implementation.

    - +

    - To test the encrypt functionality, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from encryption of the given plaintext using a key value of all zeros and an IV of all zeros. Five plaintext values shall be encrypted with a 128-bit all zeros key, and the other five shall be encrypted with a 256-bit all zeros key. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input. + To test the encrypt functionality, the evaluator shall supply a set of 10 plaintext values and obtain the ciphertext value that results from encryption of the given plaintext using a key value of all zeros and an IV of all zeros. Five plaintext values shall be encrypted with a 128-bit all zeros key, and the other five shall be encrypted with a 256-bit all zeros key. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using 10 ciphertext values as input.

    - +

    - To test the encrypt functionality, the evaluator shall supply a set of 10 key values and obtain the ciphertext value that results from encryption of an all zeros plaintext using the given key value and an IV of all zeros. Five of the key values shall be 128-bit keys, and the other five shall be 256-bit keys. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using an all zero ciphertext value as input. + To test the encrypt functionality, the evaluator shall supply a set of 10 key values and obtain the ciphertext value that results from encryption of an all zeros plaintext using the given key value and an IV of all zeros. Five of the key values shall be 128-bit keys, and the other five shall be 256-bit keys. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using an all zero ciphertext value as input.

    - +

    - To test the encrypt functionality, the evaluator shall supply the two sets of key values described below and obtain the ciphertext values that result from AES encryption of an all zeros plaintext using the given key values an an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second shall have 256 256-bit keys. Key_i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1, N]. To test the decrypt functionality, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from decryption of the given ciphertext using the given key values and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit pairs. Key_i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros for i in [1, N]. The ciphertext value in each pair shall be the value that results in an all zeros plaintext when decrypted with its corresponding key. + To test the encrypt functionality, the evaluator shall supply the two sets of key values described below and obtain the ciphertext values that result from AES encryption of an all zeros plaintext using the given key values an an IV of all zeros. The first set of keys shall have 128 128-bit keys, and the second shall have 256 256-bit keys. Key_i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros, for i in [1, N]. To test the decrypt functionality, the evaluator shall supply the two sets of key and ciphertext value pairs described below and obtain the plaintext value that results from decryption of the given ciphertext using the given key values and an IV of all zeros. The first set of key/ciphertext pairs shall have 128 128-bit key/ciphertext pairs, and the second set of key/ciphertext pairs shall have 256 256-bit pairs. Key_i in each set shall have the leftmost i bits be ones and the rightmost N-i bits be zeros for i in [1, N]. The ciphertext value in each pair shall be the value that results in an all zeros plaintext when decrypted with its corresponding key.

    - +

    - To test the encrypt functionality, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from encryption of the given plaintext using a 128-bit key value of all zeros and using a 256 bit key value of all zeros, respectively, and an IV of all zeros. Plaintext value i in each set shall have the leftmost bits be ones and the rightmost 128-i bits be zeros, for i in [1, 128]. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the encrypt test as input. + To test the encrypt functionality, the evaluator shall supply the set of 128 plaintext values described below and obtain the two ciphertext values that result from encryption of the given plaintext using a 128-bit key value of all zeros and using a 256 bit key value of all zeros, respectively, and an IV of all zeros. Plaintext value i in each set shall have the leftmost bits be ones and the rightmost 128-i bits be zeros, for i in [1, 128]. To test the decrypt functionality, the evaluator shall perform the same test as for encrypt, using ciphertext values of the same form as the plaintext in the encrypt test as input.

    - +

    - Test 2: Multi-Block Message Test + Test 2: Multi-Block Message Test

    - +

    - The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 less-than i less-than-or-equal to 10. For each i the evaluator shall choose a key, IV, and plaintext message of length i blocks and encrypt the message, using the mode to be tested, with the chosen key. The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key and IV using a known good implementation. The evaluator shall also test the decrypt functionality by decrypting an i-block message where 1 less-than i less-than-or-equal to 10. For each i the evaluator shall choose a key and a ciphertext message of length i blocks and decrypt the message, using the mode to be tested, with the chosen key. The plaintext shall be compared to the result of decrypting the same ciphertext message with the same key using a known good implementation. + The evaluator shall test the encrypt functionality by encrypting an i-block message where 1 less-than i less-than-or-equal to 10. For each i the evaluator shall choose a key, IV, and plaintext message of length i blocks and encrypt the message, using the mode to be tested, with the chosen key. The ciphertext shall be compared to the result of encrypting the same plaintext message with the same key and IV using a known good implementation. The evaluator shall also test the decrypt functionality by decrypting an i-block message where 1 less-than i less-than-or-equal to 10. For each i the evaluator shall choose a key and a ciphertext message of length i blocks and decrypt the message, using the mode to be tested, with the chosen key. The plaintext shall be compared to the result of decrypting the same ciphertext message with the same key using a known good implementation.

    - +

    - Test 3: Monte-Carlo Test + Test 3: Monte-Carlo Test

    - +

    - For AES-CTR mode perform the Monte Carlo Test for ECB Mode on the encryption engine of the counter mode implementation. There is no need to test the decryption engine. + For AES-CTR mode perform the Monte Carlo Test for ECB Mode on the encryption engine of the counter mode implementation. There is no need to test the decryption engine.

    - +

    - The evaluator shall test the encrypt functionality using 200 plaintext/key pairs. 100 of these shall use 128 bit keys, and 100 of these shall use 256 bit keys. The plaintext values shall be 128-bit blocks. For each pair, 1000 iterations shall be run as follows: + The evaluator shall test the encrypt functionality using 200 plaintext/key pairs. 100 of these shall use 128 bit keys, and 100 of these shall use 256 bit keys. The plaintext values shall be 128-bit blocks. For each pair, 1000 iterations shall be run as follows:

    - +

    - For AES-ECB mode # Input: PT, Key for i = 1 to 1000: CT[i] = AES-ECB-Encrypt(Key, PT) PT = CT[i] + For AES-ECB mode # Input: PT, Key for i = 1 to 1000: CT[i] = AES-ECB-Encrypt(Key, PT) PT = CT[i]

    - +

    - The ciphertext computed in the 1000th iteration is the result for that trial. This result shall be compared to the result of running 1000 iterations with the same values using a known good implementation. + The ciphertext computed in the 1000th iteration is the result for that trial. This result shall be compared to the result of running 1000 iterations with the same values using a known good implementation.

    - +

    @@ -5538,271 +5626,271 @@

    - FCS_ + FCS_

    - COP.1/Hash Cryptographic Operation - Hashing + COP.1/Hash Cryptographic Operation - Hashing
    - The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. + The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1.
    - FCS_COP.1.1/Hash + FCS_COP.1.1/Hash
    - The application shall perform cryptographic hashing services in accordance with a specified cryptographic algorithm [selection: + The application shall perform cryptographic hashing services in accordance with a specified cryptographic algorithm [selection: - ] and message digest sizes [selection: + ] and message digest sizes [selection: - ] bits that meet the following: FIPS Pub 180-4. + ] bits that meet the following: FIPS Pub 180-4.
    - Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. + Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    - +

    - Per NIST SP 800-131A, SHA-1 for generating digital signatures is no longer allowed, and SHA-1 for verification of digital signatures is strongly discouraged as there may be risk in accepting these signatures. + Per NIST SP 800-131A, SHA-1 for generating digital signatures is no longer allowed, and SHA-1 for verification of digital signatures is strongly discouraged as there may be risk in accepting these signatures.

    - +

    - SHA-1 is currently included in order to comply with the TLS. If the TLS package is included in the ST, the hashing algorithms selection for FCS_COP.1/Hash must match the hashing algorithms used in the mandatory and selected cipher suites of the TLS package. Vendors are strongly encouraged to implement updated protocols that support the SHA-2 family; until updated protocols are supported, this PP allows support for SHA-1 implementations in compliance with SP 800-131A. + SHA-1 is currently included in order to comply with the TLS. If the TLS package is included in the ST, the hashing algorithms selection for FCS_COP.1/Hash must match the hashing algorithms used in the mandatory and selected cipher suites of the TLS package. Vendors are strongly encouraged to implement updated protocols that support the SHA-2 family; until updated protocols are supported, this PP allows support for SHA-1 implementations in compliance with SP 800-131A.

    - +

    - The intent of this requirement is to specify the hashing function. The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).
    + The intent of this requirement is to specify the hashing function. The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used (for example, SHA 256 for 128-bit keys).
    - Evaluation Activities + Evaluation Activities
    - FCS_COP.1/Hash + FCS_COP.1/Hash
    - TSS + TSS
    - The evaluator shall check that the association of the hash function with other application cryptographic functions (for example, the digital signature verification function) is documented in the TSS. + The evaluator shall check that the association of the hash function with other application cryptographic functions (for example, the digital signature verification function) is documented in the TSS.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - The TSF hashing functions can be implemented in one of two modes. The first mode is the byte-oriented mode. In this mode the TSF hashes only messages that are an integral number of bytes in length; i.e., the length (in bits) of the message to be hashed is divisible by 8. The second mode is the bit-oriented mode. In this mode the TSF hashes messages of arbitrary length. As there are different tests for each mode, an indication is given in the following sections for the bit-oriented vs. the byte-oriented testmacs. The evaluator shall perform all of the following tests for each hash algorithm implemented by the TSF and used to satisfy the requirements of this PP. + The TSF hashing functions can be implemented in one of two modes. The first mode is the byte-oriented mode. In this mode the TSF hashes only messages that are an integral number of bytes in length; i.e., the length (in bits) of the message to be hashed is divisible by 8. The second mode is the bit-oriented mode. In this mode the TSF hashes messages of arbitrary length. As there are different tests for each mode, an indication is given in the following sections for the bit-oriented vs. the byte-oriented testmacs. The evaluator shall perform all of the following tests for each hash algorithm implemented by the TSF and used to satisfy the requirements of this PP.

    - +

    - The following tests require the developer to provide access to a test application that provides the evaluator with tools that are typically not found in the production application. + The following tests require the developer to provide access to a test application that provides the evaluator with tools that are typically not found in the production application.

    - FCS_COP.1/KeyedHash Cryptographic Operation - Keyed-Hash Message Authentication + FCS_COP.1/KeyedHash Cryptographic Operation - Keyed-Hash Message Authentication

    - The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. + The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1.
    - FCS_COP.1.1/KeyedHash + FCS_COP.1.1/KeyedHash
    - The application shall perform keyed-hash message authentication in accordance with a specified cryptographic algorithm + The application shall perform keyed-hash message authentication in accordance with a specified cryptographic algorithm - and [selection: + and [selection: - ] with key sizes [assignment: key size (in bits) used in HMAC] and message digest sizes 256 and [selection: 160, 384, 512, no other size] bits that meet the following: FIPS Pub 198-1 The Keyed-Hash Message Authentication Code and FIPS Pub 180-4 Secure Hash Standard. + ] with key sizes [assignment: key size (in bits) used in HMAC] and message digest sizes 256 and [selection: 160, 384, 512, no other size] bits that meet the following: FIPS Pub 198-1 The Keyed-Hash Message Authentication Code and FIPS Pub 180-4 Secure Hash Standard.
    - Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. + Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    - +

    - The intent of this requirement is to specify the keyed-hash message authentication function used for key establishment purposes for the various cryptographic protocols used by the application (e.g., trusted channel). The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used for FCS_COP.1/SKC.
    + The intent of this requirement is to specify the keyed-hash message authentication function used for key establishment purposes for the various cryptographic protocols used by the application (e.g., trusted channel). The hash selection must support the message digest size selection. The hash selection should be consistent with the overall strength of the algorithm used for FCS_COP.1/SKC.
    - Evaluation Activities + Evaluation Activities
    - FCS_COP.1/KeyedHash + FCS_COP.1/KeyedHash
    - The evaluator shall perform the following activities based on the selections in the ST. + The evaluator shall perform the following activities based on the selections in the ST.
    - TSS + TSS
    - None. + None.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The evaluator shall have the TSF generate HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the result of generating HMAC tags with the same key and IV using a known-good implementation. + For each of the supported parameter sets, the evaluator shall compose 15 sets of test data. Each set shall consist of a key and message data. The evaluator shall have the TSF generate HMAC tags for these sets of test data. The resulting MAC tags shall be compared to the result of generating HMAC tags with the same key and IV using a known-good implementation.

    - FCS_COP.1/Sig Cryptographic Operation - Signing + FCS_COP.1/Sig Cryptographic Operation - Signing

    - The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. + The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1.
    - FCS_COP.1.1/Sig + FCS_COP.1.1/Sig
    - The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm [selection: + The application shall perform cryptographic signature services (generation and verification) in accordance with a specified cryptographic algorithm [selection: - ]. + ].
    - Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. + Application Note: This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1.

    - +

    - The ST Author should choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated to specify the functionality. For the algorithm chosen, the ST author should make the appropriate assignments/selections to specify the parameters that are implemented for that algorithm.
    + The ST Author should choose the algorithm implemented to perform digital signatures; if more than one algorithm is available, this requirement should be iterated to specify the functionality. For the algorithm chosen, the ST author should make the appropriate assignments/selections to specify the parameters that are implemented for that algorithm.
    - Evaluation Activities + Evaluation Activities
    - FCS_COP.1/Sig + FCS_COP.1/Sig
    - The evaluator shall perform the following activities based on the selections in the ST. + The evaluator shall perform the following activities based on the selections in the ST.
    - TSS + TSS
    - None. + None.

    - +

    - Guidance + Guidance
    - None. + None.

    - +

    - Tests + Tests
    - The following tests require the developer to provide access to a test application that provides the evaluator with tools that are typically not found in the production application. + The following tests require the developer to provide access to a test application that provides the evaluator with tools that are typically not found in the production application.

    - +

    - ECDSA Algorithm Tests + ECDSA Algorithm Tests - RSA Signature Algorithm Tests + RSA Signature Algorithm Tests

    - FCS_HTTPS_EXT.1/Client HTTPS Protocol + FCS_HTTPS_EXT.1/Client HTTPS Protocol

    The inclusion of this selection-based component depends upon selection in FTP_DIT_EXT.1.1. @@ -5812,7 +5900,7 @@

    FCS_HTTPS_EXT.1.1/Client

    - The application shall implement the HTTPS protocol that complies with RFC 2818. + The application shall implement the HTTPS protocol that complies with RFC 2818.
    @@ -5820,7 +5908,7 @@

    FCS_HTTPS_EXT.1.2/Client

    - The application shall implement HTTPS using TLS as defined in the Functional Package for TLS. + The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    @@ -5828,9 +5916,9 @@

    FCS_HTTPS_EXT.1.3/Client

    - The application shall[selection, choose one of: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid. + The application shall[selection: not establish the application-initiated connection, notify the user and not establish the user-initiated connection, notify the user and request authorization to establish the user-initiated connection]if the peer certificate is deemed invalid.
    - Application Note: Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280. + Application Note: Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.
    @@ -5846,21 +5934,21 @@

    TSS
    - The evaluator shall examine the TSS and determine that enough detail is provided to explain how the implementation complies with RFC 2818. + The evaluator shall examine the TSS and determine that enough detail is provided to explain how the implementation complies with RFC 2818.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall attempt to establish an HTTPS connection with a webserver, observe the traffic with a packet analyzer, and verify that the connection succeeds and that the traffic is identified as TLS or HTTPS. + The evaluator shall attempt to establish an HTTPS connection with a webserver, observe the traffic with a packet analyzer, and verify that the connection succeeds and that the traffic is identified as TLS or HTTPS.
    FCS_HTTPS_EXT.1.2/Client @@ -5869,21 +5957,21 @@

    TSS

    - None + None

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - Other tests are performed in conjunction with the TLS package. + Other tests are performed in conjunction with the TLS package.
    FCS_HTTPS_EXT.1.3/Client @@ -5892,35 +5980,35 @@

    TSS

    - None + None

    - +

    Guidance
    - None. + None.

    - +

    Tests
      - Certificate validity shall be tested in accordance with testing performed for FIA_X509_EXT.1, and the evaluator shall perform the following test: + Certificate validity shall be tested in accordance with testing performed for FIA_X509_EXT.1, and the evaluator shall perform the following test:
    • - Test FCS_HTTPS_EXT.1.3/Client:1: The evaluator shall demonstrate that using a certificate without a valid certification path results in the selected action in the SFR. If "notify the user" + Test FCS_HTTPS_EXT.1.3/Client:1: The evaluator shall demonstrate that using a certificate without a valid certification path results in the selected action in the SFR. If "notify the user"
    - isselected + isselected
    • - is selected in the SFR, then the evaluator shall also determine that the user is notified of the certificate validation failure. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate to be used in the function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that again, using a certificate without a valid certification path results in the selected action in the SFR, and if "notify the user" was selected in the SFR, the user is notified of the validation failure. + is selected in the SFR, then the evaluator shall also determine that the user is notified of the certificate validation failure. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate to be used in the function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that again, using a certificate without a valid certification path results in the selected action in the SFR, and if "notify the user" was selected in the SFR, the user is notified of the validation failure.
    @@ -5938,7 +6026,7 @@

    FCS_HTTPS_EXT.1/Server HTTPS Protocol

    FCS_HTTPS_EXT.1.1/Server
    - The application shall implement the HTTPS protocol that complies with RFC 2818. + The application shall implement the HTTPS protocol that complies with RFC 2818.
    @@ -5946,7 +6034,7 @@

    FCS_HTTPS_EXT.1/Server HTTPS Protocol

    FCS_HTTPS_EXT.1.2/Server
    - The application shall implement HTTPS using TLS as defined in the Functional Package for TLS. + The application shall implement HTTPS using TLS as defined in the Functional Package for TLS.
    @@ -5961,21 +6049,21 @@

    FCS_HTTPS_EXT.1/Server HTTPS Protocol

    TSS
    - The evaluator shall examine the TSS and determine that enough detail is provided to explain how the implementation complies with RFC 2818. + The evaluator shall examine the TSS and determine that enough detail is provided to explain how the implementation complies with RFC 2818.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall attempt to establish an HTTPS connection to the TOE using a client, observe the traffic with a packet analyzer, and verify that the connection succeeds and that the traffic is identified as TLS or HTTPS. + The evaluator shall attempt to establish an HTTPS connection to the TOE using a client, observe the traffic with a packet analyzer, and verify that the connection succeeds and that the traffic is identified as TLS or HTTPS.
    FCS_HTTPS_EXT.1.2/Server @@ -5984,21 +6072,21 @@

    FCS_HTTPS_EXT.1/Server HTTPS Protocol

    TSS
    - None + None

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - Other tests are performed in conjunction with the TLS package. + Other tests are performed in conjunction with the TLS package.
    @@ -6013,9 +6101,9 @@

    FCS_HTTPS_EXT.2 HTTPS Protocol with Mutual Authentication

    FCS_HTTPS_EXT.2.1
    - The application shall[selection, choose one of: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid. + The application shall[selection: not establish the connection, establish or not establish the connection based on an administrative or user setting]if the peer certificate is deemed invalid.
    - Application Note: Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280. + Application Note: Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280.
    @@ -6031,28 +6119,28 @@

    FCS_HTTPS_EXT.2 HTTPS Protocol with Mutual Authentication

    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - +
      - Certificate validity shall be tested in accordance with testing performed for FIA_X509_EXT.1, and the evaluator shall perform the following test: + Certificate validity shall be tested in accordance with testing performed for FIA_X509_EXT.1, and the evaluator shall perform the following test:
    • - Test FCS_HTTPS_EXT.2.1:1: The evaluator shall demonstrate that using a certificate without a valid certification path results in the selected action in the SFR. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate to be used in the function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that again, using a certificate without a valid certification path results in the selected action in the SFR. + Test FCS_HTTPS_EXT.2.1:1: The evaluator shall demonstrate that using a certificate without a valid certification path results in the selected action in the SFR. Using the administrative guidance, the evaluator shall then load a certificate or certificates to the Trust Anchor Database needed to validate the certificate to be used in the function, and demonstrate that the function succeeds. The evaluator then shall delete one of the certificates, and show that again, using a certificate without a valid certification path results in the selected action in the SFR.
    -
    +
    @@ -6067,11 +6155,11 @@

    FCS_RBG_EXT.2 Random Bit Generation from Application

    FCS_RBG_EXT.2.1
    - The application shall perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using[selection: Hash_DRBG (any), HMAC_DRBG (any), CTR_DRBG (AES)] + The application shall perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using[selection: Hash_DRBG (any), HMAC_DRBG (any), CTR_DRBG (AES)]
    - Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. The ST author should select the standard to which the RBG services comply (either SP 800-90A or FIPS 140-2 Annex C). + Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. The ST author should select the standard to which the RBG services comply (either SP 800-90A or FIPS 140-2 Annex C).

    - SP 800-90A contains three different methods of generating random numbers; each of these, in turn, depends on underlying cryptographic primitives (hash functions/ciphers). The ST author will select the function used (if SP 800-90A is selected), and include the specific underlying cryptographic primitives used in the requirement or in the TSS. While any of the identified hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based implementations for CTR_DRBG are allowed.
    + SP 800-90A contains three different methods of generating random numbers; each of these, in turn, depends on underlying cryptographic primitives (hash functions/ciphers). The ST author will select the function used (if SP 800-90A is selected), and include the specific underlying cryptographic primitives used in the requirement or in the TSS. While any of the identified hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512) are allowed for Hash_DRBG or HMAC_DRBG, only AES-based implementations for CTR_DRBG are allowed.
    @@ -6080,11 +6168,11 @@

    FCS_RBG_EXT.2 Random Bit Generation from Application

    FCS_RBG_EXT.2.2
    - The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection, choose one of: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate. + The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and[selection: a software-based noise source, a hardware-based noise source, no other noise source]with a minimum of[selection: 128 bits, 256 bits]of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
    - Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first selection in this requirement, the ST author selects "software-based noise source" if any additional noise sources are used as input to the application's DRBG. Note that the application must use the platform's DRBG to seed its DRBG. + Application Note: This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first selection in this requirement, the ST author selects "software-based noise source" if any additional noise sources are used as input to the application's DRBG. Note that the application must use the platform's DRBG to seed its DRBG.

    - In the second selection in this requirement, the ST author selects the appropriate number of bits of entropy that corresponds to the greatest security strength of the algorithms included in the ST. Security strength is defined in Tables 2 and 3 of NIST SP 800-57A. For example, if the implementation includes 2048-bit RSA (security strength of 112 bits) and AES 256 (security strength 256 bits), then the ST author would select 256 bits.
    + In the second selection in this requirement, the ST author selects the appropriate number of bits of entropy that corresponds to the greatest security strength of the algorithms included in the ST. Security strength is defined in Tables 2 and 3 of NIST SP 800-57A. For example, if the implementation includes 2048-bit RSA (security strength of 112 bits) and AES 256 (security strength 256 bits), then the ST author would select 256 bits.
    @@ -6100,82 +6188,82 @@

    FCS_RBG_EXT.2 Random Bit Generation from Application

    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - evaluator shall perform the following tests, depending on the standard to which the RBG conforms. + evaluator shall perform the following tests, depending on the standard to which the RBG conforms.

    - +

    - Implementations Conforming to FIPS 140-2 Annex C. + Implementations Conforming to FIPS 140-2 Annex C.

    - +

    - The + The
    - + - +
    FCS_RBG_EXT.2.2 @@ -6184,27 +6272,27 @@

    FCS_RBG_EXT.2 Random Bit Generation from Application

    TSS
    - Documentation shall be produced - and the evaluator shall perform the activities - in accordance with Appendix C - Entropy Documentation and Assessment and the Clarification to the Entropy Documentation and Assessment Annex. + Documentation shall be produced - and the evaluator shall perform the activities - in accordance with Appendix C - Entropy Documentation and Assessment and the Clarification to the Entropy Documentation and Assessment Annex.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - In the future, specific statistical testing (in line with NIST SP 800-90B) will be required to verify the entropy estimates. + In the future, specific statistical testing (in line with NIST SP 800-90B) will be required to verify the entropy estimates.

    - B.2 Class: Identification and Authentication (FIA) + B.2 Class: Identification and Authentication (FIA)

    FIA_X509_EXT.1 X.509 Certificate Validation

    @@ -6216,47 +6304,47 @@

    FIA_X509_EXT.1 X.509 Certificate Validation

    FIA_X509_EXT.1.1
    - The application shall[selection, choose one of: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules: + The application shall[selection: invoke platform-provided functionality, implement functionality]to validate certificates in accordance with the following rules:
    - Application Note: FIA_X509_EXT.1.1 lists the rules for validating certificates. The ST author shall select whether revocation status is verified using OCSP or CRLs. FIA_X509_EXT.2 requires that certificates are used for HTTPS, TLS, and DTLS; this use requires that the extendedKeyUsage rules are verified. If OCSP is not supported the EKU provision for checking the OCSP Signing purpose is met by default. + Application Note: FIA_X509_EXT.1.1 lists the rules for validating certificates. The ST author shall select whether revocation status is verified using OCSP or CRLs. FIA_X509_EXT.2 requires that certificates are used for HTTPS, TLS, and DTLS; this use requires that the extendedKeyUsage rules are verified. If OCSP is not supported the EKU provision for checking the OCSP Signing purpose is met by default.

    - This requirement is included if the protocol(s) selected in FTP_DIT_EXT.1.1 require the use of certificates. If the TOE implements TLS as a HTTPS/TLS server with no mutual authentication, this requirement is not applicable. + This requirement is included if the protocol(s) selected in FTP_DIT_EXT.1.1 require the use of certificates. If the TOE implements TLS as a HTTPS/TLS server with no mutual authentication, this requirement is not applicable.

    - OCSP stapling and OCSP multi-stapling only support TLS server certificate validation. If other certificate types are validated, either OCSP or CRL should be claimed. + OCSP stapling and OCSP multi-stapling only support TLS server certificate validation. If other certificate types are validated, either OCSP or CRL should be claimed.

    Regardless of the selection of "implement functionality or invoke platform-provided functionality," the validation is expected to end in a trusted root CA certificate in a root store managed by the platform.
    @@ -6285,100 +6373,100 @@

    FIA_X509_EXT.1 X.509 Certificate Validation

    TSS
    - The evaluator shall ensure the TSS describes where the check of validity of the certificates takes place. The evaluator ensures the TSS also provides a description of the certificate path validation algorithm. + The evaluator shall ensure the TSS describes where the check of validity of the certificates takes place. The evaluator ensures the TSS also provides a description of the certificate path validation algorithm.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - 8a + 8a
    - 8a + 8a
    @@ -6390,31 +6478,31 @@

    FIA_X509_EXT.1 X.509 Certificate Validation

    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - +
      - The tests described must be performed in conjunction with the other certificate services evaluation activities, including the functions in FIA_X509_EXT.2.1. If the application supports chains of length four or greater, the evaluator shall create a chain of at least four certificates: the node certificate to be tested, two Intermediate CAs, and the self-signed Root CA. If the application supports a maximum trust depth of two, then a chain with no Intermediate CA should instead be created. + The tests described must be performed in conjunction with the other certificate services evaluation activities, including the functions in FIA_X509_EXT.2.1. If the application supports chains of length four or greater, the evaluator shall create a chain of at least four certificates: the node certificate to be tested, two Intermediate CAs, and the self-signed Root CA. If the application supports a maximum trust depth of two, then a chain with no Intermediate CA should instead be created.
    • - Test FIA_X509_EXT.1.2:1: The evaluator shall ensure that the certificate of at least one of the CAs in the chain does not contain the basicConstraints extension. The evaluator shall confirm that validation of the certificate path fails (i) as part of the validation of the peer certificate belonging to this chain; and/or (ii) when attempting to add the CA certificate without the basicConstraints extension to the TOE's trust store. + Test FIA_X509_EXT.1.2:1: The evaluator shall ensure that the certificate of at least one of the CAs in the chain does not contain the basicConstraints extension. The evaluator shall confirm that validation of the certificate path fails (i) as part of the validation of the peer certificate belonging to this chain; and/or (ii) when attempting to add the CA certificate without the basicConstraints extension to the TOE's trust store.
    • - Test FIA_X509_EXT.1.2:2: The evaluator shall ensure that the certificate of at least one of the CAs in the chain has the CA flag in the basicConstraints extension not set (or set to FALSE). The evaluator shall confirm that validation of the certificate path fails (i) as part of the validation of the peer certificate belonging to this chain; and/or (ii) when attempting to add the CA certificate with the CA flag not set (or set to FALSE) in the basicConstraints extension to the TOE's trust store. + Test FIA_X509_EXT.1.2:2: The evaluator shall ensure that the certificate of at least one of the CAs in the chain has the CA flag in the basicConstraints extension not set (or set to FALSE). The evaluator shall confirm that validation of the certificate path fails (i) as part of the validation of the peer certificate belonging to this chain; and/or (ii) when attempting to add the CA certificate with the CA flag not set (or set to FALSE) in the basicConstraints extension to the TOE's trust store.
    -
    +
    @@ -6429,9 +6517,9 @@

    FIA_X509_EXT.2 X.509 Certificate Authentication

    FIA_X509_EXT.2.1
    - The application shall use X.509v3 certificates as defined by RFC 5280 to support authentication for[selection: HTTPS, TLS, DTLS, SSH, IPsec]. + The application shall use X.509v3 certificates as defined by RFC 5280 to support authentication for[selection: HTTPS, TLS, DTLS, SSH, IPsec].
    - Application Note: This requirement is included if the protocol(s) selected in FTP_DIT_EXT.1.1 require the use of certificates to authenticate the remote entity. For example, if the TOE or platform implements TLS as a HTTPS/TLS server with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates as a TLS client, X509 authentication must be claimed. + Application Note: This requirement is included if the protocol(s) selected in FTP_DIT_EXT.1.1 require the use of certificates to authenticate the remote entity. For example, if the TOE or platform implements TLS as a HTTPS/TLS server with no mutual authentication, X509 authentication is not claimed for TLS. If the TOE or platform operates as a TLS client, X509 authentication must be claimed.
    @@ -6440,9 +6528,9 @@

    FIA_X509_EXT.2 X.509 Certificate Authentication

    FIA_X509_EXT.2.2
    - When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection, choose one of: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate]. + When the application cannot establish a connection to determine the validity of a certificate, the application shall[selection: allow the administrator to choose whether to accept the certificate in these cases, accept the certificate, not accept the certificate].
    - Application Note: Often a connection must be established to perform a verification of the revocation status of a certificate - either to download a CRL or to perform OCSP. The selection is used to describe the behavior in the event that such a connection cannot be established (for example, due to a network error). If the TOE has determined the certificate valid according to all other rules in FIA_X509_EXT.1, the behavior indicated in the selection shall determine the validity. The TOE must not accept the certificate if it fails any of the other validation rules in FIA_X509_EXT.1. + Application Note: Often a connection must be established to perform a verification of the revocation status of a certificate - either to download a CRL or to perform OCSP. The selection is used to describe the behavior in the event that such a connection cannot be established (for example, due to a network error). If the TOE has determined the certificate valid according to all other rules in FIA_X509_EXT.1, the behavior indicated in the selection shall determine the validity. The TOE must not accept the certificate if it fails any of the other validation rules in FIA_X509_EXT.1.
    @@ -6452,47 +6540,47 @@

    FIA_X509_EXT.2 X.509 Certificate Authentication

    - FIA_X509_EXT.2.2 + FIA_X509_EXT.2.2
    TSS
    - The evaluator shall check the TSS to ensure that it describes how the TOE chooses which certificates to use, and any necessary instructions in the administrative guidance for configuring the operating environment so that the TOE can use the certificates. + The evaluator shall check the TSS to ensure that it describes how the TOE chooses which certificates to use, and any necessary instructions in the administrative guidance for configuring the operating environment so that the TOE can use the certificates.

    - +

    - The evaluator shall examine the TSS to confirm that it describes the behavior of the TOE when a connection cannot be established during the validity check of a certificate used in establishing a trusted channel. The evaluator shall verify that any distinctions between trusted channels are described. If the requirement that the administrator is able to specify the default action, then the evaluator shall ensure that the operational guidance contains instructions on how this configuration action is performed. + The evaluator shall examine the TSS to confirm that it describes the behavior of the TOE when a connection cannot be established during the validity check of a certificate used in establishing a trusted channel. The evaluator shall verify that any distinctions between trusted channels are described. If the requirement that the administrator is able to specify the default action, then the evaluator shall ensure that the operational guidance contains instructions on how this configuration action is performed.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - +
      - The evaluator shall perform the following test for each trusted channel: + The evaluator shall perform the following test for each trusted channel:
    • - Test FIA_X509_EXT.2.2:1: The evaluator shall demonstrate that using a valid certificate that requires certificate validation checking to be performed in at least some part by communicating with a non-TOE IT entity. The evaluator shall then manipulate the environment so that the TOE is unable to verify the validity of the certificate, and observe that the action selected in FIA_X509_EXT.2.2 is performed. If the selected action is administrator-configurable, then the evaluator shall follow the operational guidance to determine that all supported administrator-configurable options behave in their documented manner. + Test FIA_X509_EXT.2.2:1: The evaluator shall demonstrate that using a valid certificate that requires certificate validation checking to be performed in at least some part by communicating with a non-TOE IT entity. The evaluator shall then manipulate the environment so that the TOE is unable to verify the validity of the certificate, and observe that the action selected in FIA_X509_EXT.2.2 is performed. If the selected action is administrator-configurable, then the evaluator shall follow the operational guidance to determine that all supported administrator-configurable options behave in their documented manner.
    • - Test FIA_X509_EXT.2.2:2: The evaluator shall demonstrate that an invalid certificate that requires certificate validation checking to be performed in at least some part by communicating with a non-TOE IT entity cannot be accepted. + Test FIA_X509_EXT.2.2:2: The evaluator shall demonstrate that an invalid certificate that requires certificate validation checking to be performed in at least some part by communicating with a non-TOE IT entity cannot be accepted.
    -
    +

    - B.3 Class: Protection of the TSF (FPT) + B.3 Class: Protection of the TSF (FPT)

    FPT_TUD_EXT.2 Integrity for Installation and Update

    @@ -6512,7 +6600,7 @@

    FPT_TUD_EXT.2 Integrity for Installation and Update

    The application shall be packaged such that its removal results in the deletion of all traces of the application, with the exception of configuration settings, output files, and audit/log events.
    - Application Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through means provided by the OS. + Application Note: Applications software bundled with the system/firmware image are not subject to this requirement if the user is unable to remove the application through means provided by the OS.
    @@ -6539,115 +6627,115 @@

    FPT_TUD_EXT.2 Integrity for Installation and Update

    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - The evaluator shall verify that application updates are distributed in the format supported by the platform. This varies per platform: + The evaluator shall verify that application updates are distributed in the format supported by the platform. This varies per platform:
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    @@ -6659,16 +6747,16 @@

    FPT_TUD_EXT.2 Integrity for Installation and Update

    TSS
    - None. + None.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    @@ -6676,97 +6764,97 @@

    FPT_TUD_EXT.2 Integrity for Installation and Update

    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    - ... + ...
    @@ -6778,21 +6866,21 @@

    FPT_TUD_EXT.2 Integrity for Installation and Update

    TSS
    - The evaluator shall verify that the TSS identifies how the application installation package is signed by an authorized source. The definition of an authorized source must be contained in the TSS. + The evaluator shall verify that the TSS identifies how the application installation package is signed by an authorized source. The definition of an authorized source must be contained in the TSS.

    - +

    Guidance
    - None. + None.

    - +

    Tests
    - None. + None.
    @@ -6804,13 +6892,13 @@

    Appendix C - Entropy D

    C.1 Design Description

    Documentation shall include the design of the entropy source as a whole, including the interaction of all entropy source components. Any information that can be shared regarding the design should also be included for any third-party entropy sources that are included in the product.
    - The documentation will describe the operation of the entropy source to include, how entropy is produced, and how unprocessed (raw) data can be obtained from within the entropy source for testing purposes. The documentation should walk through the entropy source design indicating where the entropy comes from, where the entropy output is passed next, any post-processing of the raw outputs (hash, XOR, etc.), if/where it is stored, and finally, how it is output from the entropy source. Any conditions placed on the process (e.g., blocking) should also be described in the entropy source design. Diagrams and examples are encouraged. + The documentation will describe the operation of the entropy source to include, how entropy is produced, and how unprocessed (raw) data can be obtained from within the entropy source for testing purposes. The documentation should walk through the entropy source design indicating where the entropy comes from, where the entropy output is passed next, any post-processing of the raw outputs (hash, XOR, etc.), if/where it is stored, and finally, how it is output from the entropy source. Any conditions placed on the process (e.g., blocking) should also be described in the entropy source design. Diagrams and examples are encouraged.
    This design must also include a description of the content of the security boundary of the entropy source and a description of how the security boundary ensures that an adversary outside the boundary cannot affect the entropy rate.
    - If implemented, the design description shall include a description of how third-party applications can add entropy to the RBG. A description of any RBG state saving between power-off and power-on shall be included. + If implemented, the design description shall include a description of how third-party applications can add entropy to the RBG. A description of any RBG state saving between power-off and power-on shall be included.

    C.2 Entropy Justification

    - There should be a technical argument for where the unpredictability in the source comes from and why there is confidence in the entropy source delivering sufficient entropy for the uses made of the RBG output (by this particular TOE). This argument will include a description of the expected min-entropy rate (i.e. the minimum entropy (in bits) per bit or byte of source data) and explain that sufficient entropy is going into the TOE randomizer seeding process. This discussion will be part of a justification for why the entropy source can be relied upon to produce bits with entropy. + There should be a technical argument for where the unpredictability in the source comes from and why there is confidence in the entropy source delivering sufficient entropy for the uses made of the RBG output (by this particular TOE). This argument will include a description of the expected min-entropy rate (i.e. the minimum entropy (in bits) per bit or byte of source data) and explain that sufficient entropy is going into the TOE randomizer seeding process. This discussion will be part of a justification for why the entropy source can be relied upon to produce bits with entropy.
    The amount of information necessary to justify the expected min-entropy rate depends on the type of entropy source included in the product.
    @@ -6818,7 +6906,7 @@

    C.2 Entropy Justi
    For third party provided entropy sources, in which the TOE vendor has limited access to the design and raw entropy data of the source, the documentation will indicate an estimate of the amount of min-entropy obtained from this third-party source. It is acceptable for the vendor to “assume” an amount of min-entropy, however, this assumption must be clearly stated in the documentation provided. In particular, the min-entropy estimate must be specified and the assumption included in the ST.
    - Regardless of type of entropy source, the justification will also include how the DRBG is initialized with the entropy stated in the ST, for example by verifying that the min-entropy rate is multiplied by the amount of source data used to seed the DRBG or that the rate of entropy expected based on the amount of source data is explicitly stated and compared to the statistical rate. If the amount of source data used to seed the DRBG is not clear or the calculated rate is not explicitly related to the seed, the documentation will not be considered complete. + Regardless of type of entropy source, the justification will also include how the DRBG is initialized with the entropy stated in the ST, for example by verifying that the min-entropy rate is multiplied by the amount of source data used to seed the DRBG or that the rate of entropy expected based on the amount of source data is explicitly stated and compared to the statistical rate. If the amount of source data used to seed the DRBG is not clear or the calculated rate is not explicitly related to the seed, the documentation will not be considered complete.
    The entropy justification shall not include any data added from any third-party application or from any state saving between restarts.

    C.3 Operating Conditions

    @@ -6833,7 +6921,7 @@

    D.1 Introduction

    A Vendor can make a claim of equivalence if the Vendor believes that a particular instance of their Product implements PP-specified security functionality in a way equivalent to the implementation of the same functionality on another instance of their Product on which the functionality was tested. The Product instances can differ in version number or feature level (model), or the instances may run on different platforms. Equivalency can be used to reduce the testing required across claimed evaluated configurations. It can also be used during Assurance Maintenance to reduce testing needed to add more evaluated configurations to a certification.

    - These equivalency guidelines do not replace Assurance Maintenance requirements or NIAP Policy #5 requirements for CAVP certificates. Nor may equivalency be used to leverage evaluations with expired certifications. + These equivalency guidelines do not replace Assurance Maintenance requirements or NIAP Policy #5 requirements for CAVP certificates. Nor may equivalency be used to leverage evaluations with expired certifications.

    These Equivalency Guidelines represent a shift from complete testing of all product instances to more of a risk-based approach. Rather than require that every combination of product and platform be tested, these guidelines support an approach that recognizes that products are being used in a variety of environments—and often in cloud environments over where the vendor (and sometimes the customer) have little or no control over the underlying hardware. Developers should be responsible for the security functionality of their applications on the platforms they are developed for—whether that is an operating system, a virtual machine, or a software-based execution environment such as a container. But those platforms may themselves run within other environments—virtual machines or operating systems—that completely abstract away the underlying hardware from the application. The developer should not be held accountable for security functionality that is implemented by platform layers that are abstracted away. The implication is that not all security functionality will necessarily be tested for all platform layers down to the hardware for all evaluated configurations—especially for applications developed for software-based execution environments such as containers. For these cases, the balancing of evaluation rigor and commercial practicability tips in favor of practicability. Note that this does not affect the requirement that at least one product instance be fully tested on at least one platform with cryptography mapped to a CAVP certificate. @@ -6925,7 +7013,7 @@

    D.5.1 Platform Equivale If an Application runs directly on hardware without an operating system—or directly on virtualized hardware without an operating system—then platform equivalence is based on processor architecture and instruction sets. In the case of virtualized hardware, it is the virtualized processor and architecture that are presented to the application that matters—not the physical hardware.

    - Platforms with different processor architectures and instruction sets are not equivalent. This is not likely to be an issue for equivalency analysis for applications since there is likely to be a different version of the application for different hardware environments. Equivalency analysis becomes important when comparing processors with the same architecture. Processors with the same architecture that have instruction sets that are subsets or supersets of each other are not disqualified from being equivalent for purposes of an App evaluation. If the application takes the same code paths when executing PP-specified security functionality on different processors of the same family, then the processors can be considered equivalent with respect to that application. For example, if an application follows one code path on platforms that support the AES-NI instruction and another on platforms that do not, then those two platforms are not equivalent with respect to that application functionality. But if the application follows the same code path whether or not the platform supports AES-NI, then the platforms are equivalent with respect to that functionality. + Platforms with different processor architectures and instruction sets are not equivalent. This is not likely to be an issue for equivalency analysis for applications since there is likely to be a different version of the application for different hardware environments. Equivalency analysis becomes important when comparing processors with the same architecture. Processors with the same architecture that have instruction sets that are subsets or supersets of each other are not disqualified from being equivalent for purposes of an App evaluation. If the application takes the same code paths when executing PP-specified security functionality on different processors of the same family, then the processors can be considered equivalent with respect to that application. For example, if an application follows one code path on platforms that support the AES-NI instruction and another on platforms that do not, then those two platforms are not equivalent with respect to that application functionality. But if the application follows the same code path whether or not the platform supports AES-NI, then the platforms are equivalent with respect to that functionality.

    The platforms are equivalent with respect to the application if the platforms are equivalent with respect to all PP-specified security functionality. @@ -6944,7 +7032,7 @@

    D.5.1 Platform Equivale

    D.5.2 Platform Equivalence—OS Platforms

    - For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order: + For traditional applications that are built for and run on operating systems, platform equivalence is determined by the interfaces between the application and the operating system that are relevant to PP-specified security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following factors applied in order: @@ -6959,17 +7047,17 @@

    D.5.2 Platform Equivalence&md

    - + - +
    FactorSame/Different/NoneGuidancePlatform VersionsDifferentPlatforms from the same vendor with different major version numbers are not equivalent.
    Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application. Platform InterfacesDifferentPlatforms from the same vendor and major version are not equivalent if there are differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application.
    Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does not provide such functionality to the application.Platform InterfacesSamePlatforms from the same vendor and major version are equivalent if there are no differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified security functionality to the application, or if the Platform does not provide such functionality to the application.
    - Table 4. Factors for Determining OS/VS Platform Equivalence + Table 4. Factors for Determining OS/VS Platform Equivalence

    D.5.3 Software-based Execution Environment Platform Equivalence

    - If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments. + If an Application is built for and runs in a non-OS software-based execution environment, such as a Container or Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows applications to be tested and run on software-based execution environments on any hardware—as in cloud deployments. @@ -7006,7 +7094,7 @@

    D.6 Level of Specificity f Traditional Applications

    - For applications that run with an operating system as their immediate platform, the claimed configuration must describe the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality. + For applications that run with an operating system as their immediate platform, the claimed configuration must describe the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security functionality.

    Software-Based Execution Environments @@ -7017,37 +7105,37 @@

    D.6 Level of Specificity f

    Appendix E - Acronyms

    FactorSame/Different/NoneGuidance
    - + - + - + - + - + - + - + - + - + - + @@ -7056,184 +7144,181 @@

    Appendix E - Acronyms

    - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7242,55 +7327,55 @@

    Appendix E - Acronyms

    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7302,59 +7387,59 @@

    Appendix E - Acronyms

    - + - + - + - + - + - + - + - +
    - Table 3: Acronyms + Table 3: Acronyms
    AcronymMeaningAcronymMeaning
    ADBAndroid Debug BridgeADBAndroid Debug Bridge
    AESAdvanced Encryption StandardAESAdvanced Encryption Standard
    ANSIAmerican National Standards InstituteANSIAmerican National Standards Institute
    APIApplication Programming InterfaceAPIApplication Programming Interface
    APKappAndroid Application PackageAPKAndroid Application Package
    APPXWindows Universal Application PackageAPPXWindows Universal Application Package
    ASLRAddress Space Layout RandomizationASLRAddress Space Layout Randomization
    BIOSBasic Input/Output SystemBIOSBasic Input/Output System
    Base-PPBase Protection ProfileBase-PPBase Protection Profile
    CCCommon Criteria CEMCommon Evaluation Methodology
    CMCCertificate Management over CMS
    CMSCryptographic Message SyntaxCMCCertificate Management over CMS
    CNCommon NamesCMSCryptographic Message Syntax
    CRLCertificate Revocation ListCNCommon Names
    CSAComputer Security ActCRLCertificate Revocation List
    cPPCollaborative Protection ProfileCSAComputer Security Act
    DEPData Execution PreventionDEPData Execution Prevention
    DESData Encryption StandardDESData Encryption Standard
    DHEDiffie-Hellman EphemeralDHEDiffie-Hellman Ephemeral
    DMGApple Disk ImageDMGApple Disk Image
    DNSDomain Name SystemDNSDomain Name System
    DPAPIData Protection Application Programming InterfaceDPAPIData Protection Application Programming Interface
    DRBGDeterministic Random Bit GeneratorDRBGDeterministic Random Bit Generator
    DSSDigital Signature StandardDSSDigital Signature Standard
    DTDate/Time VectorDTDate/Time Vector
    DTLSDatagram Transport Layer SecurityDTLSDatagram Transport Layer Security
    EAPExtensible Authentication ProtocolEAPExtensible Authentication Protocol
    ECDHEElliptic Curve Diffie-Hellman EphemeralECDHEElliptic Curve Diffie-Hellman Ephemeral
    ECDSAElliptic Curve Digital Signature AlgorithmECDSAElliptic Curve Digital Signature Algorithm
    ELFExecutable and Linkable FormatELFExecutable and Linkable Format
    EMETEnhanced Mitigation Experience ToolkitEMETEnhanced Mitigation Experience Toolkit
    ESTEnrollment over Secure TransportESTEnrollment over Secure Transport
    FIPSFederal Information Processing StandardsFIPSFederal Information Processing Standards
    GPSGlobal Positioning SystemGPSGlobal Positioning System
    HMACHash-based Message Authentication CodeHMACHash-based Message Authentication Code
    HTTPHypertext Transfer ProtocolHTTPHypertext Transfer Protocol
    HTTPSHypertext Transfer Protocol SecureHTTPSHypertext Transfer Protocol Secure
    IANAInternet Assigned Number AuthorityIANAInternet Assigned Number Authority
    IECInternational Electrotechnical CommissionIECInternational Electrotechnical Commission
    IETFInternet Engineering Task ForceIETFInternet Engineering Task Force
    IPInternet ProtocolIPInternet Protocol
    IPAiOS Package archiveIPAiOS Package archive
    IRIntermediate IntegerIRIntermediate Integer
    ISOInternational Organization for StandardizationISOInternational Organization for Standardization
    ITInformation TechnologyITInformation Technology
    ITSEFInformation Technology Security Evaluation FacilityITSEFInformation Technology Security Evaluation Facility
    JNIJava Native InterfaceJNIJava Native Interface
    LDAPLightweight Directory Access ProtocolLDAPLightweight Directory Access Protocol
    MIMEMulti-purpose Internet Mail ExtensionsMIMEMulti-purpose Internet Mail Extensions
    MPKGMeta PackageMPKGMeta Package
    MSIMicrosoft InstallerMSIMicrosoft Installer
    NFCNear Field CommunicationNFCNear Field Communication
    NIAPNational Information Assurance PartnershipNIAPNational Information Assurance Partnership
    NISTNational Institute of Standards and TechnologyNISTNational Institute of Standards and Technology
    OCSPOnline Certificate Status ProtocolOCSPOnline Certificate Status Protocol
    OEOperational EnvironmentOEOperational Environment
    OIDObject IdentifierOIDObject Identifier
    OMBOffice of Management and BudgetOMBOffice of Management and Budget
    OSOperating SystemOSOperating System
    PDFPortable Document FormatPDFPortable Document Format
    PEPortable ExecutablePEPortable Executable
    PIDProcess IdentifierPIDProcess Identifier
    EPExtended PackagePIIPersonally Identifiable Information
    FPFunctional PackagePKGPackage file
    OEOperational EnvironmentPKIPublic Key Infrastructure
    OSOperating SystemcPPCollaborative Protection Profile
    PIIPersonally Identifiable InformationEPExtended Package
    PKGPackage fileFPFunctional Package
    PKIPublic Key InfrastructureOEOperational Environment
    PPProtection ProfilePPProtection Profile
    PP-ConfigurationProtection Profile Configuration PP-ModuleProtection Profile Module
    RBGRandom Bit GeneratorRBGRandom Bit Generator
    RFCRequest for CommentRFCRequest for Comment
    RNGRandom Number GeneratorRNGRandom Number Generator
    RNGVSRandom Number Generator Validation SystemRNGVSRandom Number Generator Validation System
    S/MIMESecure/Multi-purpose Internet Mail ExtensionsS/MIMESecure/Multi-purpose Internet Mail Extensions
    SANSubject Alternative NameSANSubject Alternative Name
    SARSecurity Assurance RequirementSARSecurity Assurance Requirement
    SESecurity EnhancementsSESecurity Enhancements
    SFRSecurity Functional RequirementSFRSecurity Functional Requirement
    SHASecure Hash AlgorithmSHASecure Hash Algorithm
    SIPSession Initiation ProtocolSIPSession Initiation Protocol
    SPSpecial PublicationSPSpecial Publication
    SSHSecure ShellSSHSecure Shell
    STSecurity TargetSTSecurity Target
    SWIDSoftware IdentificationSWIDSoftware Identification
    TLSTransport Layer SecurityTLSTransport Layer Security
    TOETarget of EvaluationTOETarget of Evaluation
    TSFTOE Security Functionality TSSTOE Summary Specification
    UIUser InterfaceUIUser Interface
    URIUniform Resource IdentifierURIUniform Resource Identifier
    URLUniform Resource LocatorURLUniform Resource Locator
    USBUniversal Serial BusUSBUniversal Serial Bus
    XCCDFeXtensible Configuration Checklist Description FormatXCCDFeXtensible Configuration Checklist Description Format
    XORExclusive OrXORExclusive Or
    appApplicationappApplication
    cPPCollaborative Protection ProfilecPPCollaborative Protection Profile

    Appendix F - Bibliography

    - + - - + - +
    - Table 4: Bibliography + Table 4: Bibliography
    IdentifierTitleIdentifierTitle
    [CC]Common Criteria for Information Technology Security Evaluation - + [CC]Common Criteria for Information Technology Security Evaluation -
    [CEM] Common Evaluation Methodology for Information Technology Security - Evaluation Methodology, CCMB-2017-04-004, Version 3.1, Revision 5, April 2017. [CEM] Common Evaluation Methodology for Information Technology Security - Evaluation Methodology, CCMB-2017-04-004, Version 3.1, Revision 5, April 2017.
    [OMB] Reporting Incidents Involving Personally Identifiable Information and Incorporating the Cost for Security in Agency Information Technology Investments, OMB M-06-19, July 12, 2006. [OMB] Reporting Incidents Involving Personally Identifiable Information and Incorporating the Cost for Security in Agency Information Technology Investments, OMB M-06-19, July 12, 2006.
    diff --git a/xml-builder-test/effective.xml b/xml-builder-test/effective.xml index 8d08163..6bec6ac 100644 --- a/xml-builder-test/effective.xml +++ b/xml-builder-test/effective.xml @@ -56,23 +56,23 @@ The scope of this Protection Profile (PP) is to describe the security functionality of application software in terms of and to define functional and assurance requirements for such software. In recent years, software attacks have shifted from targeting operating systems to targeting applications. This has been the natural response to improvements in operating system security and development processes. As a result, it is paramount that the security of applications be improved to reduce the risk of compromise. - + An anti-exploitation feature which loads memory mappings into unpredictable locations. ASLR makes it more difficult for an attacker to redirect control to code that they have introduced into the address space of an application process. - + Software that runs on a platform and performs tasks on behalf of the user or owner of the platform, as well as its supporting documentation. The terms TOE and application are interchangeable in this document. - + A specification of routines, data structures, object classes, and variables that allows an application to make use of services provided by another software component, such as a library. APIs are often provided for a set of libraries included with the platform. Data that establishes the identity of a user, e.g. a cryptographic key or password. - + An anti-exploitation feature of modern operating systems executing on modern computer hardware, which enforces a non-execute permission on pages of memory. DEP prevents pages of memory from containing both data and instructions, which makes @@ -88,10 +88,10 @@ Examples of mobile code technologies include JavaScript, Java applets, Adobe Flash, and Microsoft Silverlight. - + Software that manages hardware resources and provides services for applications. - + Any information about an individual maintained by an agency, including, but not limited to, education, financial transactions, medical history, and criminal or employment history and information which can be used to distinguish or trace an @@ -149,11 +149,11 @@ This PP is conformant to Parts 2 (extended) and 3 (extended) of Common Criteria Version 3.1, Revision 5. - - This PP does not claim conformance to any other Protection Profile. The following PPs and PP-Modules are allowed to be specified in a PP-Configuration with this PP. Protection Profile for Mobile Device Management Version 4.0PP-Module for File Encryption, Version 1.0PP-Module for File Encryption Enterprise Management, Version 1.0PP-Module for VPN Clients, Version 2.2PP-Module for VPN Clients, Version 2.3PP-Module for Endpoint Detection and Response, Version 1.0PP-Module for Host Agent, Version 1.0PP-Module for Voice and Video over IP (VVoIP), Version 1.0PP-Module for Email Clients, Version 1.0 + + - - This PP is Functional Package for TLS Version 1.1 Conformant.This PP is Functional Package for SSH Version 1.0 Conformant. + + @@ -396,10 +396,10 @@ - The <h:b>application</h:b> shall<selectables onlyone="yes"><selectable id="fcs_ckm.1.1_AK_1">invoke platform-provided functionality</selectable><selectable id="fcs_ckm.1.1_AK_2">implement functionality</selectable></selectables>to generate <h:b>asymmetric</h:b> cryptographic keys in accordance with a specified cryptographic key generation algorithm<selectables><selectable id="fcs_ckm.1.1_AK_3"><h:b>[RSA schemes]</h:b> using cryptographic key sizes of <h:b>[2048-bit or greater]</h:b> that meet - the following <h:b> FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"</h:b></selectable><selectable><h:b>[ECC schemes]</h:b> using <h:b>[“NIST curves” P-256, P-384 and <selectables><selectable id="fcs_ckm.1.1_AK_5" exclusive="yes"> P-521 </selectable><selectable id="fcs_ckm.1.1_AK_6" exclusive="yes"> no other curves </selectable></selectables> ]</h:b>that meet the following: <h:b>[FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]</h:b></selectable><selectable id="fcs_ckm.1.1_AK_7"><h:b>[FFC schemes]</h:b> using cryptographic key sizes of <h:b>[2048-bit or greater]</h:b> + <title>The <h:b>application</h:b> shall<selectables><selectable id="fcs_ckm.1.1_AK_1" onlyone="yes">invoke platform-provided functionality</selectable><selectable id="fcs_ckm.1.1_AK_2" onlyone="yes">implement functionality</selectable></selectables>to generate <h:b>asymmetric</h:b> cryptographic keys in accordance with a specified cryptographic key generation algorithm<selectables><selectable id="fcs_ckm.1.1_AK_3"><h:b>[RSA schemes]</h:b> using cryptographic key sizes of <h:b>[2048-bit or greater]</h:b> that meet + the following <h:b> FIPS PUB 186-4, "Digital Signature Standard (DSS), Appendix B.3"</h:b></selectable><selectable id="fcs_ckm.1.1_AK_4"><h:b>[ECC schemes]</h:b> using <h:b>[“NIST curves” P-256, P-384 and <selectables><selectable id="fcs_ckm.1.1_AK_5" exclusive="yes"> P-521 </selectable><selectable id="fcs_ckm.1.1_AK_6" exclusive="yes"> no other curves </selectable></selectables> ]</h:b>that meet the following: <h:b>[FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.4]</h:b></selectable><selectable id="fcs_ckm.1.1_AK_7"><h:b>[FFC schemes]</h:b> using cryptographic key sizes of <h:b>[2048-bit or greater]</h:b> that meet the following: <h:b>[FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Appendix B.1]</h:b></selectable><selectable id="fcs_ckm.1.1_AK_8"><h:b>[FFC Schemes]</h:b><h:b> using Diffie-Hellman group 14</h:b> that meet the following: - <h:b>RFC 3526, Section 3</h:b></selectable><selectable><h:b>[FFC Schemes]</h:b><h:b> using “safe-prime” groups</h:b> that meet the following: <h:b>NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:b> and <selectables><selectable id="fcs_ckm.1.1_AK_10">RFC 3526</selectable><selectable id="fcs_ckm.1.1_AK_11">RFC 7919</selectable></selectables></selectable></selectables>. + RFC 3526, Section 3[FFC Schemes] using “safe-prime” groups that meet the following: NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and RFC 3526RFC 7919. The ST author shall select all key generation schemes used for key establishment and entity authentication. When key generation is used for key @@ -564,7 +564,7 @@ - The application shall<selectables onlyone="yes"><selectable id="fcs_ckm.2.1_1">invoke platform-provided functionality</selectable><selectable id="fcs_ckm.2.1_2">implement functionality</selectable></selectables>to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method: <h:p/><selectables><selectable id="fcs_ckm.2.1_3"><h:b>[RSA-based key establishment schemes]</h:b> that meets the following: <h:b>[NIST + <title>The application shall<selectables><selectable id="fcs_ckm.2.1_1" onlyone="yes">invoke platform-provided functionality</selectable><selectable id="fcs_ckm.2.1_2" onlyone="yes">implement functionality</selectable></selectables>to perform cryptographic key establishment in accordance with a specified cryptographic key establishment method: <h:p/><selectables><selectable id="fcs_ckm.2.1_3"><h:b>[RSA-based key establishment schemes]</h:b> that meets the following: <h:b>[NIST Special Publication 800-56B, “Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography”]</h:b></selectable><selectable id="fcs_ckm.2.1_4"><h:b>[RSA-based key establishment schemes]</h:b> that meet the following: <h:b>RSAES-PKCS1-v1_5 as specified in Section 7.2 of RFC 8017, @@ -573,7 +573,7 @@ Schemes Using Discrete Logarithm Cryptography”]</h:b></selectable><selectable id="fcs_ckm.2.1_6"><h:b>[Finite field-based key establishment schemes]</h:b> that meets the following: <h:b>[NIST Special Publication 800-56A, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”]</h:b></selectable><selectable id="fcs_ckm.2.1_7"><h:b>[Key establishment scheme using Diffie-Hellman group 14]</h:b> - that meets the following: <h:b>RFC 3526, Section 3</h:b></selectable><selectable><h:b>[FFC Schemes using “safe-prime” groups]</h:b> that meet the following: <h:b>‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography”</h:b> and <selectables><selectable id="fcs_ckm.2.1_9">RFC 3526</selectable><selectable id="fcs_ckm.2.1_10">RFC 7919</selectable></selectables>. </selectable></selectables>. + that meets the following: RFC 3526, Section 3[FFC Schemes using “safe-prime” groups] that meet the following: ‘NIST Special Publication 800-56A Revision 3, “Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography” and RFC 3526RFC 7919. . The ST author shall select all key establishment schemes used for the selected cryptographic protocols. TLS requires cipher suites that use RSA-based key establishment @@ -780,7 +780,7 @@ The <h:b>application</h:b> shall perform <h:i>cryptographic signature services (generation and verification)</h:i> in accordance with a specified cryptographic algorithm<selectables><selectable id="fcs_cop.1.1_Sig_1"><h:b>RSA schemes</h:b> using cryptographic key sizes of 2048-bit or greater that meet the - following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4</selectable><selectable><h:b>ECDSA schemes</h:b> using “NIST curves” P-256, P-384 and <selectables><selectable id="fcs_cop.1.1_Sig_3">P-521</selectable><selectable id="fcs_cop.1.1_Sig_4" exclusive="yes">no other curves</selectable></selectables> that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5</selectable></selectables>. + following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 4ECDSA schemes using “NIST curves” P-256, P-384 and P-521no other curves that meet the following: FIPS PUB 186-4, “Digital Signature Standard (DSS)”, Section 5. This is dependent on implementing cryptographic functionality, as in FTP_DIT_EXT.1. The ST Author should choose the algorithm implemented to perform @@ -1101,7 +1101,7 @@ - The application shall<selectables onlyone="yes"><selectable id="fcs_https_ext.1.3_Client_1">not establish the application-initiated connection</selectable><selectable id="fcs_https_ext.1.3_Client_2">notify the user and not establish the user-initiated connection</selectable><selectable id="fcs_https_ext.1.3_Client_3">notify the user and request authorization to establish the user-initiated connection</selectable></selectables>if the peer certificate is deemed invalid. + The application shall<selectables><selectable id="fcs_https_ext.1.3_Client_1" onlyone="yes">not establish the application-initiated connection</selectable><selectable id="fcs_https_ext.1.3_Client_2" onlyone="yes">notify the user and not establish the user-initiated connection</selectable><selectable id="fcs_https_ext.1.3_Client_3" onlyone="yes">notify the user and request authorization to establish the user-initiated connection</selectable></selectables>if the peer certificate is deemed invalid. Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280. @@ -1164,7 +1164,7 @@ - The application shall<selectables onlyone="yes"><selectable id="fcs_https_ext.2.1_1">not establish the connection</selectable><selectable id="fcs_https_ext.2.1_2">establish or not establish the connection based on an administrative or user setting</selectable></selectables>if the peer certificate is deemed invalid. + The application shall<selectables><selectable id="fcs_https_ext.2.1_1" onlyone="yes">not establish the connection</selectable><selectable id="fcs_https_ext.2.1_2" onlyone="yes">establish or not establish the connection based on an administrative or user setting</selectable></selectables>if the peer certificate is deemed invalid. Validity is determined by the certificate path, the expiration date, and the revocation status in accordance with RFC 5280. @@ -1395,7 +1395,7 @@ - The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and<selectables><selectable id="fcs_rbg_ext.2.2_1">a software-based noise source</selectable><selectable id="fcs_rbg_ext.2.2_2">a hardware-based noise source</selectable><selectable id="fcs_rbg_ext.2.2_3" exclusive="yes">no other noise source</selectable></selectables>with a minimum of<selectables onlyone="yes"><selectable id="fcs_rbg_ext.2.2_4">128 bits</selectable><selectable id="fcs_rbg_ext.2.2_5">256 bits</selectable></selectables>of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate. + The deterministic RBG shall be seeded by an entropy source that accumulates entropy from a platform-based DRBG and<selectables><selectable id="fcs_rbg_ext.2.2_1">a software-based noise source</selectable><selectable id="fcs_rbg_ext.2.2_2">a hardware-based noise source</selectable><selectable id="fcs_rbg_ext.2.2_3" exclusive="yes">no other noise source</selectable></selectables>with a minimum of<selectables><selectable id="fcs_rbg_ext.2.2_4" onlyone="yes">128 bits</selectable><selectable id="fcs_rbg_ext.2.2_5" onlyone="yes">256 bits</selectable></selectables>of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate. This requirement shall be included in STs in which "implement DRBG functionality" is chosen in FCS_RBG_EXT.1.1. For the first selection in this requirement, the ST author selects "software-based noise source" if @@ -1424,7 +1424,7 @@ - The application shall<selectables><selectable id="fcs_sto_ext.1.1_1" exclusive="yes">not store any credentials</selectable><selectable>invoke the functionality provided by the platform to securely store <assignable id="fcs_sto_ext.1.1_3">list of credentials </assignable></selectable><selectable>implement functionality to securely store <assignable id="fcs_sto_ext.1.1_4">list of credentials </assignable> according to <selectables><selectable id="sel-fcs-sto-skc">FCS_COP.1/SKC</selectable><selectable id="sel-fcs-sto-pbkdf">FCS_CKM.1/PBKDF</selectable></selectables></selectable></selectables>to non-volatile memory. + The application shall<selectables><selectable id="fcs_sto_ext.1.1_1" exclusive="yes">not store any credentials</selectable><selectable id="fcs_sto_ext.1.1_2">invoke the functionality provided by the platform to securely store <assignable>list of credentials </assignable></selectable><selectable id="sel_impl_sto">implement functionality to securely store <assignable>list of credentials </assignable> according to <selectables><selectable id="sel-fcs-sto-skc">FCS_COP.1/SKC</selectable><selectable id="sel-fcs-sto-pbkdf">FCS_CKM.1/PBKDF</selectable></selectables></selectable></selectables>to non-volatile memory. This requirement ensures that persistent credentials (secret keys, PKI private keys, passwords, etc) are stored securely, and never persisted in cleartext form. @@ -1616,7 +1616,7 @@ - The application shall restrict its access to<selectables><selectable id="fdp_dec_ext.1.1_1" exclusive="yes">no hardware resources</selectable><selectable id="fdp_dec_ext.1.1_2">network connectivity</selectable><selectable id="fdp_dec_ext.1.1_3">camera</selectable><selectable id="fdp_dec_ext.1.1_4">microphone</selectable><selectable id="fdp_dec_ext.1.1_5">location services</selectable><selectable id="fdp_dec_ext.1.1_6">NFC</selectable><selectable id="fdp_dec_ext.1.1_7">USB</selectable><selectable id="fdp_dec_ext.1.1_8">Bluetooth</selectable><selectable id="fdp_dec_ext.1.1_10">list of additional hardware resources </selectable></selectables>. + The application shall restrict its access to<selectables><selectable id="fdp_dec_ext.1.1_1" exclusive="yes">no hardware resources</selectable><selectable id="fdp_dec_ext.1.1_2">network connectivity</selectable><selectable id="fdp_dec_ext.1.1_3">camera</selectable><selectable id="fdp_dec_ext.1.1_4">microphone</selectable><selectable id="fdp_dec_ext.1.1_5">location services</selectable><selectable id="fdp_dec_ext.1.1_6">NFC</selectable><selectable id="fdp_dec_ext.1.1_7">USB</selectable><selectable id="fdp_dec_ext.1.1_8">Bluetooth</selectable><selectable id="fdp_dec_ext.1.1_10"><assignable>list of additional hardware resources </assignable></selectable></selectables>. The intent is for the evaluator to ensure that the selection captures all hardware resources which the application accesses, and that these are @@ -1708,7 +1708,7 @@ - The application shall restrict its access to<selectables><selectable id="fdp_dec_ext.1.2_1" exclusive="yes">no sensitive information repositories</selectable><selectable id="fdp_dec_ext.1.2_2">address book</selectable><selectable id="fdp_dec_ext.1.2_3">calendar</selectable><selectable id="fdp_dec_ext.1.2_4">call lists</selectable><selectable id="fdp_dec_ext.1.2_5">system logs</selectable><selectable id="fdp_dec_ext.1.2_7">list of additional sensitive information repositories </selectable></selectables>. + The application shall restrict its access to<selectables><selectable id="fdp_dec_ext.1.2_1" exclusive="yes">no sensitive information repositories</selectable><selectable id="fdp_dec_ext.1.2_2">address book</selectable><selectable id="fdp_dec_ext.1.2_3">calendar</selectable><selectable id="fdp_dec_ext.1.2_4">call lists</selectable><selectable id="fdp_dec_ext.1.2_5">system logs</selectable><selectable id="fdp_dec_ext.1.2_7"><assignable>list of additional sensitive information repositories </assignable></selectable></selectables>. "Sensitive information repositories" are defined as those collections of sensitive data that could be expected to be shared among some applications, users, or user roles, but to which not all @@ -1789,7 +1789,7 @@ - The application shall restrict network communication to<selectables><selectable id="fdp_net_ext.1.1_1" exclusive="yes">no network communication</selectable><selectable>user-initiated communication for <assignable id="fdp_net_ext.1.1_3">list of functions for which the user can initiate network communication </assignable></selectable><selectable>respond to <assignable id="fdp_net_ext.1.1_5">list of remotely initiated communication </assignable></selectable><selectable id="fdp_net_ext.1.1_7">list of application-initiated network communication </selectable></selectables>. + The application shall restrict network communication to<selectables><selectable id="fdp_net_ext.1.1_1" exclusive="yes">no network communication</selectable><selectable id="fdp_net_ext.1.1_2">user-initiated communication for <assignable>list of functions for which the user can initiate network communication </assignable></selectable><selectable id="fdp_net_ext.1.1_4">respond to <assignable>list of remotely initiated communication </assignable></selectable><selectable id="fdp_net_ext.1.1_7"><assignable>list of application-initiated network communication </assignable></selectable></selectables>. This requirement is intended to restrict both inbound and outbound network communications to only those required, or to network @@ -1850,7 +1850,7 @@ - The application shall<selectables onlyone="yes"><selectable id="fia_x509_ext.1.1_1">invoke platform-provided functionality</selectable><selectable id="fia_x509_ext.1.1_2">implement functionality</selectable></selectables>to validate certificates in accordance with the following rules: <h:ul><h:li>RFC 5280 certificate validation and certificate path validation.</h:li><h:li>The certificate path must terminate with a trusted CA certificate.</h:li><h:li>The application shall validate a certificate path by ensuring the presence of the + <title>The application shall<selectables><selectable id="fia_x509_ext.1.1_1" onlyone="yes">invoke platform-provided functionality</selectable><selectable id="fia_x509_ext.1.1_2" onlyone="yes">implement functionality</selectable></selectables>to validate certificates in accordance with the following rules: <h:ul><h:li>RFC 5280 certificate validation and certificate path validation.</h:li><h:li>The certificate path must terminate with a trusted CA certificate.</h:li><h:li>The application shall validate a certificate path by ensuring the presence of the basicConstraints extension and that the CA flag is set to TRUE for all CA certificates, and that any path constraints are met. </h:li><h:li>The application shall validate that any CA certificate includes caSigning purpose in the key @@ -2018,7 +2018,7 @@ </note> </f-element> <f-element id="fel-cert-fail"> - <title>When the application cannot establish a connection to determine the validity of a certificate, the application shall<selectables onlyone="yes"><selectable id="fia_x509_ext.2.2_1">allow the administrator to choose whether to accept the certificate in these cases</selectable><selectable id="fia_x509_ext.2.2_2">accept the certificate</selectable><selectable id="fia_x509_ext.2.2_3">not accept the certificate</selectable></selectables>. + When the application cannot establish a connection to determine the validity of a certificate, the application shall<selectables><selectable id="fia_x509_ext.2.2_1" onlyone="yes">allow the administrator to choose whether to accept the certificate in these cases</selectable><selectable id="fia_x509_ext.2.2_2" onlyone="yes">accept the certificate</selectable><selectable id="fia_x509_ext.2.2_3" onlyone="yes">not accept the certificate</selectable></selectables>. Often a connection must be established to perform a verification of the revocation status of a certificate - either to download a CRL or to perform OCSP. The selection @@ -2298,7 +2298,7 @@ The TSF shall be capable of performing the following management functions<selectables><selectable id="fmt_smf.1.1_1" exclusive="yes">no management functions</selectable><selectable id="fmt_smf.1.1_2"> enable/disable the transmission of any information describing the system's hardware, software, or configuration</selectable><selectable id="fmt_smf.1.1_3"> enable/disable the transmission of any PII</selectable><selectable id="fmt_smf.1.1_4"> enable/disable transmission of any application state (e.g. crashdump) - information</selectable><selectable> enable/disable network backup functionality to <assignable id="fmt_smf.1.1_6"> list of enterprise or commercial cloud backup systems </assignable></selectable><selectable id="fmt_smf.1.1_8"> list of other management functions to be provided bythe TSF </selectable></selectables>. + information enable/disable network backup functionality to list of enterprise or commercial cloud backup systems list of other management functions to be provided bythe TSF . This requirement stipulates that an application needs to provide the ability to enable/disable only those functions that it actually implements. The application @@ -2326,7 +2326,7 @@ - The application shall<selectables><selectable id="fpr_ano_ext.1.1_1" exclusive="yes">not transmit PII over a network</selectable><selectable> require user approval before executing <assignable id="fpr_ano_ext.1.1_3">list of functions that transmit PII over a network </assignable></selectable></selectables>. + The application shall<selectables><selectable id="fpr_ano_ext.1.1_1" exclusive="yes">not transmit PII over a network</selectable><selectable id="fpr_ano_ext.1.1_2"> require user approval before executing <assignable>list of functions that transmit PII over a network </assignable></selectable></selectables>. This requirement applies only to PII that is specifically requested by the application; it does not apply if the user volunteers PII without prompting from the application @@ -2442,7 +2442,7 @@ - The application shall<selectables><selectable id="fpt_aex_ext.1.2_1" exclusive="yes">not allocate any memory region with both write and execute permissions</selectable><selectable>allocate memory regions with write and execute permissions for only <assignable id="fpt_aex_ext.1.2_3"> list of functions performing just-in-time compilation </assignable></selectable></selectables>. + The application shall<selectables><selectable id="fpt_aex_ext.1.2_1" exclusive="yes">not allocate any memory region with both write and execute permissions</selectable><selectable id="fpt_aex_ext.1.2_2">allocate memory regions with write and execute permissions for only <assignable> list of functions performing just-in-time compilation </assignable></selectable></selectables>. Requesting a memory mapping with both write and execute permissions subverts the platform protection provided by DEP. If the application performs no just-in-time @@ -2732,7 +2732,7 @@ - The application<selectables onlyone="yes"><selectable id="fpt_api_ext.2.1_1">shall use platform-provided libraries</selectable><selectable id="fpt_api_ext.2.1_2">does not implement functionality</selectable></selectables>for parsing<assignable> list of formats parsed that are included in the IANA MIME media types</assignable>. + The application<selectables><selectable id="fpt_api_ext.2.1_1" onlyone="yes">shall use platform-provided libraries</selectable><selectable id="fpt_api_ext.2.1_2" onlyone="yes">does not implement functionality</selectable></selectables>for parsing<assignable> list of formats parsed that are included in the IANA MIME media types</assignable>. The IANA MIME types are listed at http://www.iana.org/assignments/media-types @@ -2756,7 +2756,7 @@ The application shall be versioned with<selectables><selectable id="fpt_idv_ext.1.1_1">SWID tags that comply with minimum requirements from ISO/IEC 19770-2:2015 - </selectable><selectable id="fpt_idv_ext.1.1_3">other version information </selectable></selectables>. + other version information . The use of SWID tag to identify application software is a requirement for DOD IT based on DoD Instruction 8500.01 which requires the use of SCAP which includes SWID tags per the NIST standard. The PP selection @@ -3071,7 +3071,7 @@ - The application shall<selectables><selectable>not transmit any <selectables><selectable id="ftp_dit_ext.1.1_2" exclusive="yes">data</selectable><selectable id="ftp_dit_ext.1.1_3" exclusive="yes">sensitive data</selectable></selectables></selectable><selectable>encrypt all transmitted <selectables><selectable id="ftp_dit_ext.1.1_5" exclusive="yes">sensitive data</selectable><selectable id="ftp_dit_ext.1.1_6" exclusive="yes">data</selectable></selectables> with <selectables><selectable id="sel_all_https_cl">HTTPS as a client in accordance with FCS_HTTPS_EXT.1/Client</selectable><selectable id="sel_all_https_sv">HTTPS as a server in accordance with FCS_HTTPS_EXT.1/Server</selectable><selectable id="sel_all_https_ma">HTTPS as a server using mutual authentication in accordance with FCS_HTTPS_EXT.2</selectable><selectable id="sel_all_tls">TLS as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=439&id=439">Functional Package for TLS</h:a></selectable><selectable id="sel_all_dtls">DTLS as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=439&id=439">Functional Package for TLS</h:a></selectable><selectable id="sel_all_ssh">SSH as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=459&id=459">Functional Package for Secure Shell</h:a></selectable><selectable id="ftp_dit_ext.1.1_7">IPsec as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=419&id=419">PP-Module for VPN Client</h:a></selectable></selectables></selectable><selectable>invoke platform-provided functionality to encrypt all transmitted sensitive data with <selectables><selectable id="ftp_dit_ext.1.1_9">HTTPS</selectable><selectable id="ftp_dit_ext.1.1_10">TLS</selectable><selectable id="ftp_dit_ext.1.1_11">DTLS</selectable><selectable id="ftp_dit_ext.1.1_12">SSH</selectable></selectables></selectable><selectable>invoke platform-provided functionality to encrypt all transmitted data with <selectables><selectable id="ftp_dit_ext.1.1_14">HTTPS</selectable><selectable id="ftp_dit_ext.1.1_15">TLS</selectable><selectable id="ftp_dit_ext.1.1_16">DTLS</selectable><selectable id="ftp_dit_ext.1.1_17">SSH</selectable></selectables></selectable></selectables>between itself and another trusted IT product. + The application shall<selectables><selectable id="ftp_dit_ext.1.1_1">not transmit any <selectables><selectable id="ftp_dit_ext.1.1_2" exclusive="yes">data</selectable><selectable id="ftp_dit_ext.1.1_3" exclusive="yes">sensitive data</selectable></selectables></selectable><selectable id="ftp_dit_ext.1.1_4">encrypt all transmitted <selectables><selectable id="ftp_dit_ext.1.1_5" exclusive="yes">sensitive data</selectable><selectable id="ftp_dit_ext.1.1_6" exclusive="yes">data</selectable></selectables> with <selectables><selectable id="sel_all_https_cl">HTTPS as a client in accordance with FCS_HTTPS_EXT.1/Client</selectable><selectable id="sel_all_https_sv">HTTPS as a server in accordance with FCS_HTTPS_EXT.1/Server</selectable><selectable id="sel_all_https_ma">HTTPS as a server using mutual authentication in accordance with FCS_HTTPS_EXT.2</selectable><selectable id="sel_all_tls">TLS as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=439&id=439">Functional Package for TLS</h:a></selectable><selectable id="sel_all_dtls">DTLS as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=439&id=439">Functional Package for TLS</h:a></selectable><selectable id="sel_all_ssh">SSH as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=459&id=459">Functional Package for Secure Shell</h:a></selectable><selectable id="ftp_dit_ext.1.1_7">IPsec as defined in the <h:a href="https://www.niap-ccevs.org/Profile/Info.cfm?PPID=419&id=419">PP-Module for VPN Client</h:a></selectable></selectables></selectable><selectable id="ftp_dit_ext.1.1_8">invoke platform-provided functionality to encrypt all transmitted sensitive data with <selectables><selectable id="ftp_dit_ext.1.1_9">HTTPS</selectable><selectable id="ftp_dit_ext.1.1_10">TLS</selectable><selectable id="ftp_dit_ext.1.1_11">DTLS</selectable><selectable id="ftp_dit_ext.1.1_12">SSH</selectable></selectables></selectable><selectable id="ftp_dit_ext.1.1_13">invoke platform-provided functionality to encrypt all transmitted data with <selectables><selectable id="ftp_dit_ext.1.1_14">HTTPS</selectable><selectable id="ftp_dit_ext.1.1_15">TLS</selectable><selectable id="ftp_dit_ext.1.1_16">DTLS</selectable><selectable id="ftp_dit_ext.1.1_17">SSH</selectable></selectables></selectable></selectables>between itself and another trusted IT product. Encryption is not required for applications transmitting data that is not sensitive. If "encrypt all transmitted" is selected and "TLS" is selected, then @@ -3164,36 +3164,21 @@
    - - The Security Objectives for the TOE in were constructed to address threats identified in - . The Security Functional Requirements (SFRs) in are a formal - instantiation of the Security Objectives. The PP identifies the Security Assurance Requirements - (SARs) to frame the extent to which the evaluator assesses the documentation applicable for the evaluation - and performs independent testing. - This section lists the set of SARs from CC part 3 that are required in evaluations against this - PP. Individual Evaluation Activities (EAs) to be performed are specified both - in as well as in this section. - The general model for evaluation of TOEs against STs written to conform to this PP is as follows: - After the ST has been approved for evaluation, the CCTL will obtain the TOE, supporting - environmental IT, and the administrative/user guides for the TOE. The CCTL is expected to - perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE and - ALC SARs. The CCTL also performs the evaluation activities contained within , - which are intended to be an interpretation of the other CEM assurance requirements as they - apply to the specific technology instantiated in the TOE. The evaluation activities that are - captured in also provide clarification as to what the developer needs - to provide to demonstrate the TOE is compliant with the PP. The results of these activities will be documented - and presented (along with the administrative guidance used) for validation. - -
    - As per ASE activities defined in . -
    The information about the TOE + +
    + As per ASE activities defined in . +
    +
    + The information about the TOE is contained in the guidance documentation available to the end user as well as the TSS portion of the ST. The TOE developer must concur with the description of the product that is contained in the TSS as it relates to the functional requirements. The evaluation activities contained in - should provide the ST authors with sufficient information to + should provide the ST authors with sufficient information to determine the appropriate content for the TSS section. - The functional + + + The functional specification describes the TSFIs. It is not necessary to have a formal or complete specification of these interfaces. Additionally, because TOEs conforming to this PP will necessarily have interfaces to the @@ -3206,8 +3191,15 @@ is necessary to satisfy the evaluation activities specified. The interfaces that need to be evaluated are characterized through the information needed to perform the assurance activities listed, rather than as an independent, abstract list. - The developer shall provide a functional specification.The developer shall provide a tracing from the functional specification to the - SFRs.As indicated in the introduction to this section, the + + + The developer shall provide a functional specification. + + + + The developer shall provide a tracing from the functional specification to the + SFRs. + As indicated in the introduction to this section, the functional specification is comprised of the information contained in the AGD_OPE and AGD_PRE documentation. The developer may reference a website accessible to application developers and the evaluator. The evaluation activities in the functional requirements @@ -3215,21 +3207,51 @@ section; since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D is implicitly already done and no additional documentation is necessary. - The functional specification shall describe the purpose and method of use for - each SFR-enforcing and SFR-supporting TSFI.The functional specification shall identify all parameters associated with each - SFR-enforcing and SFR-supporting TSFI.The functional specification shall provide rationale for the implicit - categorization of interfaces as SFR-non-interfering.The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification.The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.The evaluator shall determine that the functional specification is an accurate - and complete instantiation of the SFRs. + + + + + The functional specification shall describe the purpose and method of use for + each SFR-enforcing and SFR-supporting TSFI. + + + + The functional specification shall identify all parameters associated with each + SFR-enforcing and SFR-supporting TSFI. + + + + The functional specification shall provide rationale for the implicit + categorization of interfaces as SFR-non-interfering. + + + + The tracing shall demonstrate that the SFRs trace to TSFIs in the functional specification. + + + + The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence. + + + + The evaluator shall determine that the functional specification is an accurate + and complete instantiation of the SFRs. + There are no specific evaluation activities associated with these SARs, except ensuring the information is provided. The functional specification documentation is - provided to support the evaluation activities described in , and + provided to support the evaluation activities described in , and other activities described for AGD, ATE, and AVA SARs. The requirements on the content of the functional specification information is implicitly assessed by virtue of the other evaluation activities being performed; if the evaluator is unable to perform an activity because there is insufficient interface information, then an adequate functional specification has not been provided. -
    + + + +
    +
    + The guidance documents will be provided with the ST. Guidance must include a description of how the IT personnel verifies that the Operational Environment can fulfill its role for the security functionality. The @@ -3241,7 +3263,11 @@ particular security functionality is also provided; requirements on such guidance are contained in the evaluation activities specified with each requirement. - The developer shall provide operational user guidance.The operational user guidance does not have to be contained in a + + + + The developer shall provide operational user guidance. + The operational user guidance does not have to be contained in a single document. Guidance to users, administrators and application developers can be spread among documents or web pages. Where appropriate, the guidance documentation is expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to @@ -3249,24 +3275,58 @@ review the evaluation activities for this component to ascertain the specifics of the guidance that the evaluator will be checking for. This will provide the necessary information for the preparation of acceptable guidance. - The operational user guidance shall describe, for each user role, the + </note> + <aactivity/> + </a-element> + <a-element type="C"> + <title>The operational user guidance shall describe, for each user role, the user-accessible functions and privileges that should be controlled in a secure - processing environment, including appropriate warnings.User and administrator are to be considered in the definition - of user role.The operational user guidance shall describe, for each user role, how to use the - available interfaces provided by the TOE in a secure manner.The operational user guidance shall describe, for each user role, the available + processing environment, including appropriate warnings. + User and administrator are to be considered in the definition + of user role. + + + + The operational user guidance shall describe, for each user role, how to use the + available interfaces provided by the TOE in a secure manner. + + + + The operational user guidance shall describe, for each user role, the available functions and interfaces, in particular all security parameters under the control of - the user, indicating secure values as appropriate.The operational user guidance shall, for each user role, clearly present each + the user, indicating secure values as appropriate. + + + + The operational user guidance shall, for each user role, clearly present each type of security-relevant event relative to the user-accessible functions that need to be performed, including changing the security characteristics of entities under the - control of the TSF.The operational user guidance shall identify all possible modes of operation of + control of the TSF. + + + + The operational user guidance shall identify all possible modes of operation of the TOE (including operation following failure or operational - error), their consequences, and implications for maintaining secure operation.The operational user guidance shall, for each user role, describe the security + error), their consequences, and implications for maintaining secure operation. + + + + The operational user guidance shall, for each user role, describe the security measures to be followed in order to fulfill the security objectives for the - operational environment as described in the ST.The operational user guidance shall be clear and reasonable.The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence. + operational environment as described in the ST. + + + + The operational user guidance shall be clear and reasonable. + + + + The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence. + Some of the contents of the operational guidance will be verified by the - evaluation activities in and evaluation of the TOE - according to the . The following additional + evaluation activities in and evaluation of the TOE + according to the . The following additional information is also required. If cryptographic functions are provided by the TOE, the operational guidance shall contain instructions for @@ -3284,37 +3344,79 @@ The TOE will likely contain security functionality that does not fall in the scope of evaluation under this PP. The operational guidance shall make it clear to an administrator which security functionality is covered by the evaluation - activities.The developer shall provide the TOE, including its preparative procedures. + activities. + + + + + The developer shall provide the TOE, including its preparative procedures. + As with the operational guidance, the developer should look to the evaluation activities to determine the required content with respect to preparative - procedures.The preparative procedures shall describe all the steps necessary for secure + procedures.</note> + <aactivity/> + </a-element> + <a-element type="C"> + <title>The preparative procedures shall describe all the steps necessary for secure acceptance of the delivered TOE in accordance with the developer's - delivery procedures.The preparative procedures shall describe all the steps necessary for secure + delivery procedures. + + + + The preparative procedures shall describe all the steps necessary for secure installation of the TOE and for the secure preparation of the operational environment in accordance with the security objectives for the operational - environment as described in the ST.The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.The evaluator shall apply the preparative procedures to confirm that the TOE - can be prepared securely for operation. + environment as described in the ST. + + + + The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence. + + + + The evaluator shall apply the preparative procedures to confirm that the TOE + can be prepared securely for operation. + As indicated in the introduction above, there are significant expectations with respect to the documentation—especially when configuring the operational environment to support TOE functional requirements. The evaluator shall check to ensure that the guidance provided for the TOE adequately addresses all platforms claimed for the TOE in the ST. -
    + + + +
    +
    + At the assurance level provided for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of the life-cycle, rather than an examination of the TOE vendor’s development and configuration management process. This is not meant to diminish the critical role that a developer’s practices play in contributing to the overall trustworthiness of a product; rather, it is a reflection on the information to be made available for evaluation at this assurance level. + + This component is targeted at identifying the TOE such that it can be distinguished from other products or versions from the same vendor and can be easily specified when being procured by an end user. - The developer shall provide the TOE and a reference for the TOE.The application shall be labeled with a unique reference. + + + The developer shall provide the TOE and a reference for the TOE. + + + + The application shall be labeled with a unique reference. + Unique reference information includes: - Application NameApplication VersionApplication DescriptionPlatform on which Application RunsSoftware Identification (SWID) tags, if availableThe evaluator shall confirm that the information provided meets all - requirements for content and presentation of evidence. + Application NameApplication VersionApplication DescriptionPlatform on which Application RunsSoftware Identification (SWID) tags, if available + + + + The evaluator shall confirm that the information provided meets all + requirements for content and presentation of evidence. + The evaluator shall check the ST to ensure that it contains an identifier (such as a product name/version number) that specifically identifies the version that meets the requirements of the ST. Further, the evaluator shall check the AGD guidance @@ -3323,9 +3425,27 @@ advertising the TOE, the evaluator shall examine the information on the web site to ensure that the information in the ST is sufficient to distinguish the product. - The developer shall provide a configuration list for the TOE.The configuration list shall include the following: the TOE - itself; and the evaluation evidence required by the SARs.The configuration list shall uniquely identify the configuration items.The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence. + + + + + + The developer shall provide a configuration list for the TOE. + + + + The configuration list shall include the following: the TOE + itself; and the evaluation evidence required by the SARs. + + + + The configuration list shall uniquely identify the configuration items. + + + + The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence. + The "evaluation evidence required by the SARs" in this PP is limited to the information in the ST coupled with the guidance provided to administrators and users under the AGD requirements. By ensuring that the TOE is specifically @@ -3349,7 +3469,11 @@ TSF is uniquely identified (with respect to other products from the TSF vendor), and that documentation provided by the developer in association with the requirements in the ST is associated with the - TSF using this unique identification. + TSF using this unique identification. + + + + This component requires the TOE developer, in conjunction with any other necessary parties, to provide information as to how the end-user devices are updated to address security issues in a timely manner. The documentation describes the process of providing updates to the @@ -3357,23 +3481,48 @@ This description includes the parties involved (e.g., the developer, carriers(s)) and the steps that are performed (e.g., developer testing, carrier testing), including worst case time periods, before an update is made available to the public. - The developer shall provide a description in the TSS of how timely - security updates are made to the TOE. + + + The developer shall provide a description in the TSS of how timely + security updates are made to the TOE. + Application developers must support updates to their products for purposes of fixing security vulnerabilities. - + </note> + <aactivity/> + </a-element> + <a-element type="D"> + <title> The developer shall provide a description in the TSS of how users are notified when updates change security properties or the configuration of the product. - The description shall include the process for creating and deploying - security updates for the TOE software.The description shall express the time window as the length of time, + + + + + The description shall include the process for creating and deploying + security updates for the TOE software. + + + + The description shall express the time window as the length of time, in days, between public disclosure of a vulnerability and the public availability - of security updates to the TOE.The description shall include the mechanisms publicly available for - reporting security issues pertaining to the TOE. + of security updates to the TOE. + + + + The description shall include the mechanisms publicly available for + reporting security issues pertaining to the TOE. + The reporting mechanism could include web sites, email addresses, as well as a means to protect the sensitive nature of the report (e.g., public keys that could be used to encrypt the details of a proof-of-concept exploit). - The evaluator <h:i>shall confirm</h:i> that the information provided meets all - requirements for content and presentation of evidence. + + + + + The evaluator <h:i>shall confirm</h:i> that the information provided meets all + requirements for content and presentation of evidence. + The evaluator shall verify that the TSS contains a description of the timely security update process used by the developer to create and deploy security updates. The evaluator shall verify that this description addresses the entire application. The evaluator shall also @@ -3390,7 +3539,12 @@ The evaluator shall verify that the description of this mechanism includes a method for protecting the report either using a public key for encrypting email or a trusted channel for a website. -
    + + + +
    +
    + Testing is specified for functional aspects of the system as well as aspects that take advantage of design or implementation weaknesses. The former is done through the ATE_IND family, while the latter is through the AVA_VAN @@ -3399,29 +3553,96 @@ of the primary outputs of the evaluation process is the test report as specified in the following requirements. - + + + Testing is performed to confirm the functionality described in the TSS as well as the administrative (including configuration and operational) documentation provided. The focus of the testing - is to confirm that the requirements specified in being met, - although some additional testing is specified for SARs in . The + is to confirm that the requirements specified in being met, + although some additional testing is specified for SARs in . The evaluation activities identify the additional testing activities associated with these components. The evaluator produces a test report documenting the plan for and results of testing, as well as coverage arguments focused on the platform/TOE combinations that are claiming conformance to this PP. Given the scope of the TOE and its associated evaluation evidence requirements, this component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. - The developer shall provide the TOE for testing.The developer must provide at least one product instance of the TOE for complete testing on at least + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in being met, + although some additional testing is specified for SARs in . The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in being met, + although some additional testing is specified for SARs in . The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in being met, + although some additional testing is specified for SARs in . The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + Testing is performed to confirm the + functionality described in the TSS as well as the administrative + (including configuration and operational) documentation provided. The focus of the testing + is to confirm that the requirements specified in being met, + although some additional testing is specified for SARs in . The + evaluation activities identify the additional testing activities associated with these + components. The evaluator produces a test report documenting the plan for and results of + testing, as well as coverage arguments focused on the platform/TOE + combinations that are claiming conformance to this PP. Given the scope of the + TOE and its associated evaluation evidence requirements, this + component’s evaluation activities are covered by the evaluation activities listed for ALC_CMC.1. + + + The developer shall provide the TOE for testing. + The developer must provide at least one product instance of the TOE for complete testing on at least platform regardless of equivalency. See the Equivalency Appendix for more details. - The TOE shall be suitable for testing.The evaluator <h:i>shall confirm</h:i> that the information provided meets all - requirements for content and presentation of evidence.The evaluator shall test a subset of the TSF to confirm - that the TSF operates as specified.The evaluator shall test the application on the most current - fully patched version of the platform. + + + + + The TOE shall be suitable for testing. + + + + The evaluator <h:i>shall confirm</h:i> that the information provided meets all + requirements for content and presentation of evidence. + + + + The evaluator shall test a subset of the TSF to confirm + that the TSF operates as specified. + The evaluator shall test the application on the most current + fully patched version of the platform. + The evaluator shall prepare a test plan and report documenting the testing aspects of the system, including any application crashes during testing. The evaluator shall determine the root cause of any application crashes and include that information in the report. The test plan covers all of the testing actions contained in - the and the body of this PP’s evaluation activities. + the and the body of this PP’s evaluation activities. While it is not necessary to have one test case per test listed in an evaluation activity, the evaluator must document in the test plan that each applicable testing requirement in the ST is covered. The test plan identifies the platforms to be tested, and for those @@ -3450,7 +3671,12 @@ a cumulative account, so if there was a test run that resulted in a failure; a fix installed; and then a successful re-run of the test, the report would show a “fail” and “pass” result (and the supporting details), and not just the “pass” result. -
    + + + +
    +
    + For the current generation of this protection profile, the evaluation lab is expected to survey open sources to discover what vulnerabilities have been discovered in these types of products. In most cases, these @@ -3460,15 +3686,37 @@ the documentation provided by the vendor. This information will be used in the development of penetration testing tools and for the development of future protection profiles. - The developer shall provide the TOE for testing.The application shall be suitable for testing.Suitability for testing means not being obfuscated or + + + + The developer shall provide the TOE for testing. + + + + The application shall be suitable for testing. + Suitability for testing means not being obfuscated or packaged in such a way as to disrupt either static or dynamic analysis by the - evaluator.The evaluator shall confirm that the information provided meets all requirements - for content and presentation of evidence.The evaluator shall perform a search of public domain sources to identify - potential vulnerabilities in the TOE.Public domain sources include the Common Vulnerabilities + evaluator. + + + + The evaluator shall confirm that the information provided meets all requirements + for content and presentation of evidence. + + + + The evaluator shall perform a search of public domain sources to identify + potential vulnerabilities in the TOE. + Public domain sources include the Common Vulnerabilities and Exposures (CVE) dictionary for publicly known vulnerabilities. Public domain - sources also include sites which provide free checking of files for viruses.The evaluator shall conduct penetration testing, based on the identified + sources also include sites which provide free checking of files for viruses.</note> + <aactivity/> + </a-element> + <a-element type="E"> + <title>The evaluator shall conduct penetration testing, based on the identified potential vulnerabilities, to determine that the TOE is resistant to - attacks performed by an attacker possessing Basic attack potential. + attacks performed by an attacker possessing Basic attack potential. + The evaluator shall generate a report to document their findings with respect to this requirement. This report could physically be part of the overall test report mentioned in ATE_IND, or a separate document. The evaluator performs a search of public information to find @@ -3480,10 +3728,14 @@ to confirm the vulnerability, if suitable. Suitability is determined by assessing the attack vector needed to take advantage of the vulnerability. If exploiting the vulnerability requires expert skills and an electron microscope, for instance, then a test would not be suitable and - an appropriate justification would be formulated.For Windows, Linux, macOS and Solaris: + an appropriate justification would be formulated. The evaluator shall also run a virus scanner with the most current virus definitions against the application files and verify that no files are flagged as malicious. -
    + + + +
    + This appendix describes the required supplementary information for the entropy diff --git a/xml-builder-test/meta-info.txt b/xml-builder-test/meta-info.txt index b4809f8..e978319 100644 --- a/xml-builder-test/meta-info.txt +++ b/xml-builder-test/meta-info.txt @@ -1,2 +1,2 @@ T_VER=master-2024-04-30_10:59:56_-0400 -BUILD_TIME=2024-07-16 20:32 +BUILD_TIME=2024-08-07 15:31 diff --git a/xml-builder-test/tds.svg b/xml-builder-test/tds.svg index ca0742a..d46b3e1 100644 --- a/xml-builder-test/tds.svg +++ b/xml-builder-test/tds.svg @@ -1,20 +1,20 @@ - - TDs: 9:0 + + TDs: 9:18 - + - - + + \ No newline at end of file diff --git a/xml-builder-test/validation.svg b/xml-builder-test/validation.svg index 0a6a557..6bfbbf1 100644 --- a/xml-builder-test/validation.svg +++ b/xml-builder-test/validation.svg @@ -1,20 +1,20 @@ - - Validation: 0 + + Validation: 18 - + - - + + \ No newline at end of file