VNFRQTS - Reword and Move Security Req SECCOM 1
[vnfrqts/requirements.git] / docs / Chapter4 / Security.rst
1 .. Modifications Copyright © 2017-2018 AT&T Intellectual Property.
2
3 .. Licensed under the Creative Commons License, Attribution 4.0 Intl.
4    (the "License"); you may not use this documentation except in compliance
5    with the License. You may obtain a copy of the License at
6
7 .. https://creativecommons.org/licenses/by/4.0/
8
9 .. Unless required by applicable law or agreed to in writing, software
10    distributed under the License is distributed on an "AS IS" BASIS,
11    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12    See the License for the specific language governing permissions and
13    limitations under the License.
14
15
16 VNF Security
17 ----------------------
18
19 The objective of this section is to provide the key security
20 requirements that need to be met by VNFs. The security requirements are
21 grouped into five areas as listed below. Other security areas will be
22 addressed in future updates. These security requirements are applicable
23 to all VNFs. Additional security requirements for specific types of VNFs
24 will be applicable and are outside the scope of these general
25 requirements.
26
27 Section 4.3 Security in *VNF Guidelines* outlines
28 the five broad security areas for VNFs that are detailed in the
29 following sections:
30
31 -  **VNF General Security**: This section addresses general security
32    requirements for the VNFs that the VNF provider will need to address.
33
34 -  **VNF Identity and Access Management**: This section addresses
35    security requirements with respect to Identity and Access Management
36    as these pertain to generic VNFs.
37
38 -  **VNF API Security**: This section addresses the generic security
39    requirements associated with APIs. These requirements are applicable
40    to those VNFs that use standard APIs for communication and data
41    exchange.
42
43 -  **VNF Security Analytics**: This section addresses the security
44    requirements associated with analytics for VNFs that deal with
45    monitoring, data collection and analysis.
46
47 -  **VNF Data Protection**: This section addresses the security
48    requirements associated with data protection.
49
50 VNF General Security Requirements
51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
53 This section provides details on the VNF general security requirements
54 on various security areas such as user access control, network security,
55 ACLs, infrastructure security, and vulnerability management. These
56 requirements cover topics associated with compliance, security patching,
57 logging/accounting, authentication, encryption, role-based access
58 control, least privilege access/authorization. The following security
59 requirements need to be met by the solution in a virtual environment:
60
61 General Security Requirements
62
63 Integration and operation within a robust security environment is necessary
64 and expected. The security architecture will include one or more of the
65 following: IDAM (Identity and Access Management) for all system and
66 applications access, Code scanning, network vulnerability scans, OS,
67 Database and application patching, malware detection and cleaning,
68 DDOS prevention, network security gateways (internal and external)
69 operating at various layers, host and application based tools for
70 security compliance validation, aggressive security patch application,
71 tightly controlled software distribution and change control processes
72 and other state of the art security solutions. The VNF is expected to
73 function reliably within such an environment and the developer is
74 expected to understand and accommodate such controls and can expected
75 to supply responsive interoperability support and testing throughout
76 the product’s lifecycle.
77
78
79 .. req::
80     :id: R-23740
81     :target: VNF
82     :keyword: MUST
83     :updated: casablanca
84
85     The VNF **MUST** implement and enforce the principle of least privilege
86     on all protected interfaces.
87
88 .. req::
89     :id: R-61354
90     :target: VNF
91     :keyword: MUST
92     :updated: casablanca
93
94     The VNF **MUST** provide a mechanism (e.g., access control list) to
95     permit and/or restrict access to services on the VNF by source,
96     destination, protocol, and/or port.
97
98 .. req::
99     :id: R-92207
100     :target: VNF
101     :keyword: SHOULD
102     :updated: casablanca
103
104     The VNF **SHOULD** provide a mechanism for performing automated
105     system configuration auditing at configurable time intervals.
106
107 .. req::
108     :id: R-23882
109     :target: VNF
110     :keyword: SHOULD
111     :updated: casablanca
112
113     The VNF **SHOULD** provide the capability for the Operator to run security
114     vulnerability scans of the operating system and all application layers.
115
116 .. req::
117     :id: R-46986
118     :target: VNF
119     :keyword: SHOULD
120
121     The VNF **SHOULD** have source code scanned using scanning
122     tools (e.g., Fortify) and provide reports.
123
124 .. req::
125     :id: R-99771
126     :target: VNF
127     :keyword: MUST
128     :updated: casablanca
129
130     The VNF **MUST** have all code (e.g., QCOW2) and configuration files
131     (e.g., HEAT template, Ansible playbook, script) hardened, or with
132     documented recommended configurations for hardening and interfaces that
133     allow the Operator to harden the VNF. Actions taken to harden a system
134     include disabling all unnecessary services, and changing default values
135     such as default credentials and community strings.
136
137 .. req::
138     :id: R-19768
139     :target: VNF
140     :keyword: SHOULD
141     :updated: casablanca
142
143     The VNF **SHOULD** support Layer 3 VPNs that enable segregation of
144     traffic by application (i.e., AVPN, IPSec VPN for Internet routes).
145
146 .. req::
147     :id: R-40813
148     :target: VNF
149     :keyword: SHOULD
150     :updated: casablanca
151
152     The VNF **SHOULD** support the use of virtual trusted platform
153     module.
154
155 .. req::
156     :id: R-56904
157     :target: VNF
158     :keyword: MUST
159
160     The VNF **MUST** interoperate with the ONAP (SDN) Controller so that
161     it can dynamically modify the firewall rules, ACL rules, QoS rules, virtual
162     routing and forwarding rules.
163
164 .. req::
165     :id: R-69649
166     :target: VNF
167     :keyword: MUST
168     :updated: casablanca
169
170     The VNF Provider **MUST** have patches available for vulnerabilities
171     in the VNF as soon as possible. Patching shall be controlled via change
172     control process with vulnerabilities disclosed along with
173     mitigation recommendations.
174
175 .. req::
176     :id: R-62498
177     :target: VNF
178     :keyword: MUST
179     :updated: casablanca
180
181     The VNF **MUST** support encrypted access protocols, e.g., TLS,
182     SSH, SFTP.
183
184 .. req::
185     :id: R-35144
186     :target: VNF
187     :keyword: MUST
188
189     The VNF **MUST**, if not using the NCSP's IDAM API, comply
190     with the NCSP's credential management policy.
191
192 .. req::
193     :id: R-80335
194     :target: VNF
195     :keyword: MUST
196     :updated: casablanca
197
198     For all GUI and command-line interfaces, the VNF **MUST** provide the
199     ability to present a warning notice that is set by the Operator. A warning
200     notice is a formal statement of resource intent presented to everyone
201     who accesses the system.
202
203 .. req::
204     :id: R-19082
205     :target: VNF
206     :keyword: MUST
207     :updated: casablanca
208
209     The VNF **MUST** allow the Operator to disable or remove any security
210     testing tools or programs included in the VNF, e.g., password cracker,
211     port scanner.
212
213 .. req::
214     :id: R-21819
215     :target: VNF
216     :keyword: MUST
217     :updated: casablanca
218
219     The VNF **MUST** provide functionality that enables the Operator to comply
220     with requests for information from law enforcement and government agencies.
221
222 .. req::
223     :id: R-86261
224     :target: VNF
225     :keyword: MUST NOT
226     :updated: casablanca
227
228     The VNF **MUST NOT** allow vendor access to VNFs remotely.
229
230 .. req::
231    :id: R-638682
232    :target: VNF
233    :keyword: MUST
234    :introduced: casablanca
235    :validation_mode: in_service
236
237    The VNF **MUST** log any security event required by the VNF Requirements to
238    Syslog using LOG_AUTHPRIV for any event that would contain sensitive
239    information and LOG_AUTH for all other relevant events.
240
241 VNF Identity and Access Management Requirements
242 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
243
244 The following security requirements for logging, identity, and access
245 management need to be met by the solution in a virtual environment:
246
247
248 Identity and Access Management Requirements
249
250 .. req::
251     :id: R-99174
252     :target: VNF
253     :keyword: MUST
254     :updated: casablanca
255
256     The VNF **MUST** allow the creation of multiple IDs so that
257     individual accountability can be supported.
258
259 .. req::
260     :id: R-42874
261     :target: VNF
262     :keyword: MUST
263     :updated: casablanca
264
265     The VNF **MUST** allow the Operator to restrict access based on
266     the assigned permissions associated with an ID in order to support
267     Least Privilege (no more privilege than required to perform job
268     functions).
269
270 .. req::
271     :id: R-71787
272     :target: VNF
273     :keyword: MUST
274     :updated: casablanca
275
276     Each layer of the VNF **MUST** support access restriction
277     independently of all other layers so that Segregation of Duties
278     can be implemented.
279
280 .. req::
281     :id: R-59391
282     :target: VNF
283     :keyword: MUST NOT
284     :updated: casablanca
285
286     The VNF **MUST NOT** not allow the assumption of the permissions of
287     another account to mask individual accountability.
288
289 .. req::
290     :id: R-64503
291     :target: VNF
292     :keyword: MUST
293
294     The VNF **MUST** provide minimum privileges for initial
295     and default settings for new user accounts.
296
297 .. req::
298     :id: R-86835
299     :target: VNF
300     :keyword: MUST
301     :updated: casablanca
302
303     The VNF **MUST** set the default settings for user access
304     to deny authorization, except for a super user type of account.
305     When a VNF is added to the network, nothing should be able to use
306     it until the super user configures the VNF to allow other users
307     (human and application)  have access.
308
309 .. req::
310     :id: R-81147
311     :target: VNF
312     :keyword: MUST
313
314     The VNF **MUST** have greater restrictions for access and
315     execution, such as up to 3 factors of authentication and restricted
316     authorization, for commands affecting network services, such as
317     commands relating to VNFs.
318
319 .. req::
320     :id: R-39562
321     :target: VNF
322     :keyword: MUST
323
324     The VNF **MUST** disable unnecessary or vulnerable cgi-bin programs.
325
326 .. req::
327     :id: R-15671
328     :target: VNF
329     :keyword: MUST
330     :updated: casablanca
331
332     The VNF **MUST** provide access controls that allow the Operator
333     to restrict access to VNF functions and data to authorized entities.
334
335 .. req::
336     :id: R-85419
337     :target: VNF
338     :keyword: SHOULD
339     :updated: casablanca
340
341     The VNF **SHOULD** support OAuth 2.0 authorization using an external
342     Authorization Server.
343
344 .. req::
345     :id: R-75041
346     :target: VNF
347     :keyword: MUST
348     :updated: casablanca
349
350     The VNF **MUST**, if not integrated with the Operator's Identity and
351     Access Management system, support configurable password expiration.
352
353 .. req::
354     :id: R-98391
355     :target: VNF
356     :keyword: MUST
357     :updated: casablanca
358
359     The VNF **MUST**, if not integrated with the Operator's Identity and
360     Access Management system, support Role-Based Access Control to enforce
361     least privilege.
362
363 .. req::
364     :id: R-46908
365     :target: VNF
366     :keyword: MUST
367     :updated: casablanca
368
369     The VNF **MUST**, if not integrated with the Operator’s Identity and
370     Access Management system, comply with “password complexity” policy. When
371     passwords are used, they shall be complex and shall at least meet the
372     following password construction requirements: (1) be a minimum configurable
373     number of characters in length, (2) include 3 of the 4 following types of
374     characters: upper-case alphabetic, lower-case alphabetic, numeric, and
375     special, (3) not be the same as the UserID with which they are associated
376     or other common strings as specified by the environment, (4) not contain
377     repeating or sequential characters or numbers, (5) not to use special
378     characters that may have command functions, and (6) new passwords must
379     not contain sequences of three or more characters from the previous
380     password.
381
382 .. req::
383     :id: R-79107
384     :target: VNF
385     :keyword: MUST
386     :updated: casablanca
387
388     The VNF **MUST**, if not integrated with the Operator's Identity
389     and Access Management system, support the ability to disable the
390     userID after a configurable number of consecutive unsuccessful
391     authentication attempts using the same userID.
392
393 .. req::
394     :id: R-23135
395     :target: VNF
396     :keyword: MUST
397     :updated: casablanca
398
399     The VNF **MUST**, if not integrated with the Operator's identity and
400     access management system, authenticate all access to protected GUIs, CLIs,
401     and APIs.
402
403 .. req::
404     :id: R-78010
405     :target: VNF
406     :keyword: MUST
407     :updated: casablanca
408
409     The VNF **MUST** integrate with standard identity and access management
410     protocols such as LDAP, TACACS+, Windows Integrated Authentication
411     (Kerberos), SAML federation, or OAuth 2.0.
412
413 VNF API Security Requirements
414 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
415
416 This section covers API security requirements when these are used by the
417 VNFs. Key security areas covered in API security are Access Control,
418 Authentication, Passwords, PKI Authentication Alarming, Anomaly
419 Detection, Lawful Intercept, Monitoring and Logging, Input Validation,
420 Cryptography, Business continuity, Biometric Authentication,
421 Identification, Confidentiality and Integrity, and Denial of Service.
422
423 The solution in a virtual environment needs to meet the following API
424 security requirements:
425
426
427 API Requirements
428
429 .. req::
430     :id: R-43884
431     :target: VNF
432     :keyword: SHOULD
433     :updated: casablanca
434
435     The VNF **SHOULD** integrate with the Operator's authentication and
436     authorization services (e.g., IDAM).
437
438 .. req::
439     :id: R-21652
440     :target: VNF
441     :keyword: MUST
442
443     The VNF **MUST** implement the following input validation
444     control: Check the size (length) of all input. Do not permit an amount
445     of input so great that it would cause the VNF to fail. Where the input
446     may be a file, the VNF API must enforce a size limit.
447
448 .. req::
449     :id: R-54930
450     :target: VNF
451     :keyword: MUST
452     :updated: casablanca
453
454     The VNF **MUST** implement the following input validation controls:
455     Do not permit input that contains content or characters inappropriate
456     to the input expected by the design. Inappropriate input, such as
457     SQL expressions, may cause the system to execute undesirable and
458     unauthorized transactions against the database or allow other
459     inappropriate access to the internal network (injection attacks).
460
461 .. req::
462     :id: R-21210
463     :target: VNF
464     :keyword: MUST
465     :updated: casablanca
466
467     The VNF **MUST** implement the following input validation control
468     on APIs: Validate that any input file has a correct and valid
469     Multipurpose Internet Mail Extensions (MIME) type. Input files
470     should be tested for spoofed MIME types.
471
472 VNF Security Analytics Requirements
473 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
474
475 This section covers VNF security analytics requirements that are mostly
476 applicable to security monitoring. The VNF Security Analytics cover the
477 collection and analysis of data following key areas of security
478 monitoring:
479
480 -  Anti-virus software
481
482 -  Logging
483
484 -  Data capture
485
486 -  Tasking
487
488 -  DPI
489
490 -  API based monitoring
491
492 -  Detection and notification
493
494 -  Resource exhaustion detection
495
496 -  Proactive and scalable monitoring
497
498 -  Mobility and guest VNF monitoring
499
500 -  Closed loop monitoring
501
502 -  Interfaces to management and orchestration
503
504 -  Malformed packet detections
505
506 -  Service chaining
507
508 -  Dynamic security control
509
510 -  Dynamic load balancing
511
512 -  Connection attempts to inactive ports (malicious port scanning)
513
514 The following requirements of security monitoring need to be met by the
515 solution in a virtual environment.
516
517 Security Analytics Requirements
518
519
520 .. req::
521     :id: R-48470
522     :target: VNF
523     :keyword: MUST
524
525     The VNF **MUST** support Real-time detection and
526     notification of security events.
527
528 .. req::
529     :id: R-22286
530     :target: VNF
531     :keyword: MUST
532
533     The VNF **MUST** support Integration functionality via
534     API/Syslog/SNMP to other functional modules in the network (e.g.,
535     PCRF, PCEF) that enable dynamic security control by blocking the
536     malicious traffic or malicious end users.
537
538 .. req::
539     :id: R-32636
540     :target: VNF
541     :keyword: MUST
542
543     The VNF **MUST** support API-based monitoring to take care of
544     the scenarios where the control interfaces are not exposed, or are
545     optimized and proprietary in nature.
546
547 .. req::
548     :id: R-22367
549     :target: VNF
550     :keyword: MUST
551
552     The VNF **MUST** support detection of malformed packets due to
553     software misconfiguration or software vulnerability.
554
555 .. req::
556     :id: R-73223
557     :target: VNF
558     :keyword: MUST
559
560     The VNF **MUST** support proactive monitoring to detect and
561     report the attacks on resources so that the VNFs and associated VMs can
562     be isolated, such as detection techniques for resource exhaustion, namely
563     OS resource attacks, CPU attacks, consumption of kernel memory, local
564     storage attacks.
565
566 .. req::
567     :id: R-58370
568     :target: VNF
569     :keyword: MUST
570     :updated: casablanca
571
572     The VNF **MUST** operate with anti-virus software which produces
573     alarms every time a virus is detected.
574
575 .. req::
576     :id: R-56920
577     :target: VNF
578     :keyword: MUST
579
580     The VNF **MUST** protect all security audit logs (including
581     API, OS and application-generated logs), security audit software, data,
582     and associated documentation from modification, or unauthorized viewing,
583     by standard OS access control mechanisms, by sending to a remote system,
584     or by encryption.
585
586 .. req::
587     :id: R-54520
588     :target: VNF
589     :keyword: MUST
590     :updated: casablanca
591
592     The VNF **MUST** log successful and unsuccessful authentication
593     attempts, e.g., authentication associated with a transaction,
594     authentication to create a session, authentication to assume elevated
595     privilege.
596
597 .. req::
598     :id: R-55478
599     :target: VNF
600     :keyword: MUST
601
602     The VNF **MUST** log logoffs.
603
604 .. req::
605     :id: R-13344
606     :target: VNF
607     :keyword: MUST
608
609     The VNF **MUST** log starting and stopping of security
610     logging.
611
612 .. req::
613     :id: R-07617
614     :target: VNF
615     :keyword: MUST
616     :updated: casablanca
617
618     The VNF **MUST** log success and unsuccessful creation, removal, or
619     change to the inherent privilege level of users.
620
621 .. req::
622     :id: R-94525
623     :target: VNF
624     :keyword: MUST
625     :updated: casablanca
626
627     The VNF **MUST** log connections to the network listeners of the
628     resource.
629
630 .. req::
631     :id: R-31614
632     :target: VNF
633     :keyword: MUST
634
635     The VNF **MUST** log the field "event type" in the security audit
636     logs.
637
638 .. req::
639     :id: R-97445
640     :target: VNF
641     :keyword: MUST
642
643     The VNF **MUST** log the field "date/time" in the security audit
644     logs.
645
646 .. req::
647     :id: R-25547
648     :target: VNF
649     :keyword: MUST
650
651     The VNF **MUST** log the field "protocol" in the security audit logs.
652
653 .. req::
654     :id: R-06413
655     :target: VNF
656     :keyword: MUST
657
658     The VNF **MUST** log the field "service or program used for access"
659     in the security audit logs.
660
661 .. req::
662     :id: R-15325
663     :target: VNF
664     :keyword: MUST
665
666     The VNF **MUST** log the field "success/failure" in the
667     security audit logs.
668
669 .. req::
670     :id: R-89474
671     :target: VNF
672     :keyword: MUST
673
674     The VNF **MUST** log the field "Login ID" in the security audit logs.
675
676 .. req::
677     :id: R-04982
678     :target: VNF
679     :keyword: MUST NOT
680
681     The VNF **MUST NOT** include an authentication credential,
682     e.g., password, in the security audit logs, even if encrypted.
683
684 .. req::
685     :id: R-63330
686     :target: VNF
687     :keyword: MUST
688     :updated: casablanca
689
690     The VNF **MUST** detect when its security audit log storage
691     medium is approaching capacity (configurable) and issue an alarm.
692
693 .. req::
694     :id: R-41252
695     :target: VNF
696     :keyword: MUST
697
698     The VNF **MUST** support the capability of online storage of
699     security audit logs.
700
701 .. req::
702     :id: R-41825
703     :target: VNF
704     :keyword: MUST
705     :updated: casablanca
706
707     The VNF **MUST** activate security alarms automatically when
708     a configurable number of consecutive unsuccessful login attempts
709     is reached.
710
711 .. req::
712     :id: R-43332
713     :target: VNF
714     :keyword: MUST
715     :updated: casablanca
716
717     The VNF **MUST** activate security alarms automatically when
718     it detects the successful modification of a critical system or
719     application file.
720
721 .. req::
722     :id: R-74958
723     :target: VNF
724     :keyword: MUST
725     :updated: casablanca
726
727     The VNF **MUST** activate security alarms automatically when
728     it detects an unsuccessful attempt to gain permissions
729     or assume the identity of another user.
730
731 .. req::
732     :id: R-15884
733     :target: VNF
734     :keyword: MUST
735
736     The VNF **MUST** include the field "date" in the Security alarms
737     (where applicable and technically feasible).
738
739 .. req::
740     :id: R-23957
741     :target: VNF
742     :keyword: MUST
743
744     The VNF **MUST** include the field "time" in the Security alarms
745     (where applicable and technically feasible).
746
747 .. req::
748     :id: R-71842
749     :target: VNF
750     :keyword: MUST
751
752     The VNF **MUST** include the field "service or program used for
753     access" in the Security alarms (where applicable and technically feasible).
754
755 .. req::
756     :id: R-57617
757     :target: VNF
758     :keyword: MUST
759
760     The VNF **MUST** include the field "success/failure" in the
761     Security alarms (where applicable and technically feasible).
762
763 .. req::
764     :id: R-99730
765     :target: VNF
766     :keyword: MUST
767
768     The VNF **MUST** include the field "Login ID" in the Security
769     alarms (where applicable and technically feasible).
770
771 .. req::
772     :id: R-29705
773     :target: VNF
774     :keyword: MUST
775     :updated: casablanca
776
777     The VNF **MUST** restrict changing the criticality level of a
778     system security alarm to users with administrative privileges.
779
780 .. req::
781     :id: R-13627
782     :target: VNF
783     :keyword: MUST
784
785     The VNF **MUST** monitor API invocation patterns to detect
786     anomalous access patterns that may represent fraudulent access or other
787     types of attacks, or integrate with tools that implement anomaly and
788     abuse detection.
789
790 .. req::
791     :id: R-04492
792     :target: VNF
793     :keyword: MUST
794     :updated: casablanca
795
796     The VNF **MUST** generate security audit logs that can be sent
797     to Security Analytics Tools for analysis.
798
799 .. req::
800     :id: R-30932
801     :target: VNF
802     :keyword: MUST
803     :updated: casablanca
804
805     The VNF **MUST** log successful and unsuccessful access to VNF
806     resources, including data.
807
808 .. req::
809     :id: R-54816
810     :target: VNF
811     :keyword: MUST
812
813     The VNF **MUST** support the storage of security audit logs
814     for agreed period of time for forensic analysis.
815
816 .. req::
817     :id: R-84160
818     :target: VNF
819     :keyword: MUST
820
821     The VNF **MUST** have security logging for VNFs and their
822     OSs be active from initialization. Audit logging includes automatic
823     routines to maintain activity records and cleanup programs to ensure
824     the integrity of the audit/logging systems.
825
826 .. req::
827     :id: R-34552
828     :target: VNF
829     :keyword: MUST
830     :updated: casablanca
831
832     The VNF **MUST** be implemented so that it is not vulnerable to OWASP
833     Top 10 web application security risks.
834
835 .. req::
836     :id: R-33488
837     :target: VNF
838     :keyword: MUST
839     :updated: casablanca
840
841     The VNF **MUST** protect against all denial of service
842     attacks, both volumetric and non-volumetric, or integrate with external
843     denial of service protection tools.
844
845 VNF Data Protection Requirements
846 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
847
848 This section covers VNF data protection requirements that are mostly
849 applicable to security monitoring.
850
851
852 Data Protection Requirements
853
854 .. req::
855     :id: R-58964
856     :target: VNF
857     :keyword: MUST
858     :updated: casablanca
859
860     The VNF **MUST** provide the capability to restrict read
861     and write access to data handled by the VNF.
862
863 .. req::
864     :id: R-83227
865     :target: VNF
866     :keyword: MUST
867
868     The VNF **MUST** Provide the capability to encrypt data in
869     transit on a physical or virtual network.
870
871 .. req::
872     :id: R-32641
873     :target: VNF
874     :keyword: MUST
875     :updated: casablanca
876
877     The VNF **MUST** provide the capability to encrypt data on
878     non-volatile memory.Non-volative memory is storage that is
879     capable of retaining data without electrical power, e.g.
880     Complementary metal-oxide-semiconductor (CMOS) or hard drives.
881
882 .. req::
883     :id: R-13151
884     :target: VNF
885     :keyword: SHOULD
886
887     The VNF **SHOULD** disable the paging of the data requiring
888     encryption, if possible, where the encryption of non-transient data is
889     required on a device for which the operating system performs paging to
890     virtual memory. If not possible to disable the paging of the data
891     requiring encryption, the virtual memory should be encrypted.
892
893 .. req::
894     :id: R-73067
895     :target: VNF
896     :keyword: MUST
897     :updated: casablanca
898
899     The VNF **MUST** use NIST and industry standard cryptographic
900     algorithms and standard modes of operations when implementing
901     cryptography.
902
903 .. req::
904     :id: R-12467
905     :target: VNF
906     :keyword: MUST NOT
907     :updated: casablanca
908
909     The VNF **MUST NOT** use compromised encryption algorithms.
910     For example, SHA, DSS, MD5, SHA-1 and Skipjack algorithms.
911     Acceptable algorithms can be found in the NIST FIPS publications
912     (https://csrc.nist.gov/publications/fips) and in the
913     NIST Special Publications (https://csrc.nist.gov/publications/sp).
914
915 .. req::
916     :id: R-02170
917     :target: VNF
918     :keyword: MUST
919     :updated: casablanca
920
921     The VNF **MUST** use, whenever possible, standard implementations
922     of security applications, protocols, and formats, e.g., S/MIME, TLS, SSH,
923     IPSec, X.509 digital certificates for cryptographic implementations.
924     These implementations must be purchased from reputable vendors or obtained
925     from reputable open source communities and must not be developed in-house.
926
927 .. req::
928     :id: R-70933
929     :target: VNF
930     :keyword: MUST
931     :updated: casablanca
932
933     The VNF **MUST** provide the ability to migrate to newer
934     versions of cryptographic algorithms and protocols with minimal impact.
935
936 .. req::
937     :id: R-95864
938     :target: VNF
939     :keyword: MUST
940     :updated: casablanca
941
942     The VNF **MUST** support digital certificates that comply with X.509
943     standards.
944
945 .. req::
946     :id: R-12110
947     :target: VNF
948     :keyword: MUST NOT
949
950     The VNF **MUST NOT** use keys generated or derived from
951     predictable functions or values, e.g., values considered predictable
952     include user identity information, time of day, stored/transmitted data.
953
954 .. req::
955     :id: R-69610
956     :target: VNF
957     :keyword: MUST
958     :updated: casablanca
959
960     The VNF **MUST** provide the capability of using X.509 certificates
961     issued by an external Certificate Authority.
962
963 .. req::
964     :id: R-47204
965     :target: VNF
966     :keyword: MUST
967     :updated: casablanca
968
969     The VNF **MUST** be capable of protecting the confidentiality and integrity
970     of data at rest and in transit from unauthorized access and modification.
971
972
973 VNF Cryptography Requirements
974 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
975
976 This section covers VNF cryptography requirements that are mostly
977 applicable to encryption or protocol meethods.
978
979 .. req::
980     :id: R-48080
981     :target: VNF
982     :keyword: SHOULD
983     :updated: casablanca
984
985     The VNF **SHOULD** support an automated certificate management protocol
986     such as CMPv2, Simple Certificate Enrollment Protocol (SCEP) or
987     Automated Certificate Management Environment (ACME).
988
989 .. req::
990     :id: R-93860
991     :target: VNF
992     :keyword: SHOULD
993     :updated: casablanca
994
995     The VNF **SHOULD** provide the capability to integrate with an
996     external encryption service.
997
998 .. req::
999     :id: R-44723
1000     :target: VNF
1001     :keyword: MUST
1002     :updated: casablanca
1003
1004     The VNF **MUST** use symmetric keys of at least 112 bits in length.
1005
1006 .. req::
1007     :id: R-25401
1008     :target: VNF
1009     :keyword: MUST
1010     :updated: casablanca
1011
1012     The VNF **MUST** use asymmetric keys of at least 2048 bits in length.
1013
1014 .. req::
1015     :id: R-52060
1016     :target: VNF
1017     :keyword: MUST
1018     :updated: casablanca
1019
1020     The VNF **MUST** provide the capability to configure encryption
1021     algorithms or devices so that they comply with the laws of the jurisdiction
1022     in which there are plans to use data encryption.
1023
1024 .. req::
1025     :id: R-83500
1026     :target: VNF
1027     :keyword: MUST
1028     :updated: casablanca
1029
1030     The VNF **MUST** provide the capability of allowing certificate
1031     renewal and revocation.
1032
1033 .. req::
1034     :id: R-29977
1035     :target: VNF
1036     :keyword: MUST
1037     :updated: casablanca
1038
1039     The VNF **MUST** provide the capability of testing the validity
1040     of a digital certificate by validating the CA signature on the certificate.
1041
1042 .. req::
1043     :id: R-24359
1044     :target: VNF
1045     :keyword: MUST
1046     :updated: casablanca
1047
1048     The VNF **MUST** provide the capability of testing the validity
1049     of a digital certificate by validating the date the certificate is being
1050     used is within the validity period for the certificate.
1051
1052 .. req::
1053     :id: R-39604
1054     :target: VNF
1055     :keyword: MUST
1056     :updated: casablanca
1057
1058     The VNF **MUST** provide the capability of testing the
1059     validity of a digital certificate by checking the Certificate Revocation
1060     List (CRL) for the certificates of that type to ensure that the
1061     certificate has not been revoked.
1062
1063 .. req::
1064     :id: R-75343
1065     :target: VNF
1066     :keyword: MUST
1067     :updated: casablanca
1068
1069     The VNF **MUST** provide the capability of testing the
1070     validity of a digital certificate by recognizing the identity represented
1071     by the certificate - the "distinguished name".
1072
1073 .. req::
1074     :id: R-49109
1075     :target: VNF
1076     :keyword: MUST
1077     :updated: casablanca
1078
1079     The VNF **MUST** support HTTP/S using TLS v1.2 or higher
1080     with strong cryptographic ciphers.
1081
1082 .. req::
1083     :id: R-41994
1084     :target: VNF
1085     :keyword: MUST
1086     :updated: casablanca
1087
1088     The VNF **MUST** support the use of X.509 certificates issued from any
1089     Certificate Authority (CA) that is compliant with RFC5280, e.g., a public
1090     CA such as DigiCert or Let's Encrypt, or an RFC5280  compliant Operator
1091     CA.
1092
1093     Note: The VNF provider cannot require the use of self-signed certificates
1094     in an Operator's run time environment.