911 Software Implementation Guideline 911 Software Development Team 2013/10/28 Implementation Guideline REVIEW IMPLEMENTATION GUIDELINE .......................................................................................... 6 1 INTRODUCTION ...................................................................................................................................... 6 1.1 Aim ................................................................................................................................................... 6 1.2 Range ................................................................................................................................................ 6 2 ROLES AND RESPONSIBILITIES .............................................................................................................. 6 3 REVIEW TYPE ........................................................................................................................................ 6 4 STEPS OF FORMAL REVIEW ................................................................................................................... 6 4.1 Establish Review Plan ...................................................................................................................... 6 4.1.1 Confirm the products needed to review ............................................................................................... 6 4.1.2 Book the review time, the location and the related personnel .............................................................. 7 4.1.3 Provide the work products to the relevant personnel ........................................................................... 7 4.2 Formal review .................................................................................................................................. 7 4.3 Chairman’s speaking ........................................................................................................................ 7 4.4 The owner introduce the work products ........................................................................................... 7 4.5 Verification the work products ......................................................................................................... 7 4.6 Identify imperfections and make an open reply ................................................................................ 7 4.7 Discuss about solutions of the imperfections .................................................................................... 7 4.8 Results after the meeting................................................................................................................... 8 4.9 Output ............................................................................................................................................... 8 4.10 Estimate the review........................................................................................................................... 8 5 4.10.1 Tracing the imperfections until solved ................................................................................................. 8 4.10.2 Analyze the data during review, provide an improvement approach ................................................... 8 INFORMAL REVIEW ................................................................................................................................ 8 5.1 Aim ................................................................................................................................................... 8 5.2 Roles ................................................................................................................................................. 8 5.3 Start Standards ................................................................................................................................. 9 5.4 Input ................................................................................................................................................. 9 5.5 Main Steps ........................................................................................................................................ 9 5.5.1 Prepare Review .................................................................................................................................... 9 5.5.2 Review ................................................................................................................................................. 9 5.5.3 Modification, tracing and review ....................................................................................................... 10 5.6 End Standards ................................................................................................................................ 10 6 NOTES ................................................................................................................................................. 10 7 OTHER ................................................................................................................................................. 12 7.1 A technical review should be integrated with quality assurance dynamically. It’s a good way to invite the QA staff to participate and supervise the formal review ................................................. 12 Page 2 7.2 A technical review should be integrated with the configuration managements dynamically. Those work products which do not pass the technical review cannot be the baseline files. ..................... 12 REQUIREMENT MANAGEMENT GUIDELINE .................................................................................. 13 8 INTRODUCTION .................................................................................................................................... 13 9 REQUIREMENT MANAGEMENT PROCESS ............................................................................................. 14 10 CONFIRM REQUIREMENTS.................................................................................................................... 14 10.1 Aim 15 10.2 Roles and Responsibility ................................................................................................................. 15 10.3 Start Standards ............................................................................................................................... 15 10.4 Input ............................................................................................................................................... 16 10.5 Main Steps ...................................................................................................................................... 16 10.5.1 Get new requirements from the clients’ system ................................................................................. 16 10.5.2 Recreate the requirements .................................................................................................................. 16 10.5.3 Get Commitment of the Requirements............................................................................................... 16 10.6 Output ............................................................................................................................................. 16 10.7 End Standards ................................................................................................................................ 16 11 REQUIREMENTS TRACING ................................................................................................................... 17 11.1 Aim 17 11.2 Character and Duty ........................................................................................................................ 17 11.3 Start Standards ............................................................................................................................... 17 11.4 Input ............................................................................................................................................... 17 11.5 Main Steps ...................................................................................................................................... 17 11.5.1 Write Deliver Xml and Code Comments ........................................................................................... 17 11.5.2 Find the inconsistency........................................................................................................................ 17 11.5.3 Eliminate the inconsistency ............................................................................................................... 18 11.6 Output ............................................................................................................................................. 18 11.7 End Standards ................................................................................................................................ 18 12 REQUIREMENT CHANGE CONTROL ...................................................................................................... 18 12.1 Aim 18 12.2 Character and Duty ........................................................................................................................ 18 12.3 Start Standards ............................................................................................................................... 18 12.4 Input ............................................................................................................................................... 19 12.5 Main Steps ...................................................................................................................................... 19 12.5.1 Request for a Requirement Change .................................................................................................... 19 12.5.2 Review the Request............................................................................................................................ 19 12.5.3 Modify the Requirement Document ................................................................................................... 19 12.5.4 Reconfirm the Requirement ............................................................................................................... 19 Page 3 12.6 Output ............................................................................................................................................. 20 12.7 Notes for Change Control............................................................................................................... 20 12.8 End Standards ................................................................................................................................ 20 TECHNOLOGY SOLUTION IMPLEMENTATION GUIDELINE...................................................... 21 13 AIM ..................................................................................................................................................... 21 14 ROLES AND RESPONSIBILITIES ............................................................................................................ 21 Industry Standards ................................................................................................................................. 21 Separation between Dev/Test and Production ....................................................................................... 21 15 START STANDARDS ............................................................................................................................. 22 16 INPUT .................................................................................................................................................. 22 17 PROCESS.............................................................................................................................................. 23 Select Candidate Solution ...................................................................................................................... 25 Implement Design .................................................................................................................................. 25 Implement Standards .......................................................................................................................................... 25 Review Design ....................................................................................................................................... 58 Requirement Recreation and Confirmation ........................................................................................... 58 Coding ................................................................................................................................................... 58 Unit Test ................................................................................................................................................ 58 Walk through ......................................................................................................................................... 58 Code review ........................................................................................................................................... 58 Check in code......................................................................................................................................... 58 18 OUTPUT ............................................................................................................................................... 58 19 END STANDARDS................................................................................................................................. 59 20 RELEASE AND DELIVERY ..................................................................................................................... 59 21 PATCH/UPDATE MANAGEMENT .......................................................................................................... 62 22 MAINTENANCE .................................................................................................................................... 65 SYSTEM TEST IMPLEMENTATION GUIDELINE ............................................................................. 66 23 AIM ..................................................................................................................................................... 66 24 INTRODUCTION .................................................................................................................................... 66 25 SYSTEM TEST ...................................................................................................................................... 67 25.1 Aim 67 25.2 Roles and Responsibilities .............................................................................................................. 68 25.3 Start Standards ............................................................................................................................... 68 25.4 Input ............................................................................................................................................... 68 25.5 Main Steps ...................................................................................................................................... 68 25.5.1 Make a plan of system test ................................................................................................................. 68 Page 4 25.5.2 Design system test use cases .............................................................................................................. 68 25.5.3 Start System Test ............................................................................................................................... 68 25.5.4 Imperfection management and modifications .................................................................................... 69 25.5.5 Verification ........................................................................................................................................ 69 25.5.6 Vulnerability Testing for Web Applications ...................................................................................... 71 25.5.7 External Vulnerability Identification ................................................................................................. 72 25.5.8 Cardholder data must not be internet accessible ................................................................................ 72 25.6 Output ............................................................................................................................................. 72 25.7 End Standards ................................................................................................................................ 72 25.8 Measurement .................................................................................................................................. 73 APPENDICES.............................................................................................................................................. 74 26 SOFTWARE AND HARDWARE ENVIRONMENTS ..................................................................................... 74 27 SAMPLE KEY CUSTODIAN FORM ......................................................................................................... 75 Page 5 Review Implementation Guideline 1 Introduction 1.1 Aim Establish our organization’s review Implementation guideline to guide our work better. 1.2 Range This document is suitable for all review tasks. 2 Roles and Responsibilities Roles Chairman Spokesman Recorder Conferee 3 Review Type Type Formal review Individual review Walkthrough 4 Responsibilities Description Response for the plan and management of the review Response for explaining the contents and goal of the review Response for recording the contents and questions of the review All those who need to attend the meeting, must give opinions about the content of the review Description Suitable for the key points of the project progress Suitable for the details of the project progress Level High Medium Low Steps of Formal Review 4.1 Establish Review Plan 4.1.1 Confirm the products needed to review If time is allowed, for the purpose of the product quality control, we must have a technical review of all our work products. If not, for saving time, we can select some important ones to have a technical review. Page 6 4.1.2 Book the review time, the location and the related personnel Book the review time and the location according to the schedule in the <”Project Plan”> Book the chairman and the conferee according to the features of the work products. 4.1.3 Provide the work products to the relevant personnel Send the work products and checklists to the review relevant personnel one day in advance. 4.2 Formal review 4.3 Chairman’s speaking The chairman speaks about the agenda, the priorities, the principles and the time limit of the review meeting. 4.4 The owner introduce the work products The owner introduces the work products briefly. 4.5 Verification the work products The conferee verifies the work products according to the checklist. If there are some items which do not meet the demands of the checklist, the review cannot continue. Only if all items meet the demands of the checklist we do the review. 4.6 Identify imperfections and make an open reply The conferee looks for imperfections of the work products according to the checklist. The owner replies the questions of the conferee. Both sides must reach an agreement of each imperfection. 4.7 Discuss about solutions of the imperfections The owner and the conferee discuss about the solutions of the imperfections together. If a problem cannot be solved in the meeting, the chairman can decide if it is necessary to continue the discussion or to discuss it in another time. Page 7 4.8 Results after the meeting The conferee makes a conclusion and some opinions to the work products. The meeting ends after the chairman signs in the conclusion. There are three kinds of conclusions: Qualified, “no need to modify” or “need minor modifications but no need to review once more”. Basically qualified, need some modifications, and must pass a review after the modifications. Not qualified, need a large amount of modifications, and must review the work products again after the modifications. 4.9 Output Team Leader provides a <”Review Report”> and project emails. 4.10 Estimate the review 4.10.1 Tracing the imperfections until solved As to the imperfections found in the review meeting, if there is a proper way to solve them, then trace them until solved. If not, decide whether it’s need to have another review meeting according to the circumstances. 4.10.2 Analyze the data during review, provide an improvement approach Summarize and analyze the review data for improvements to the process of the review. 5 5.1 Informal review Aim Review the work products rapidly and flexibly, to identify and eradicate the imperfections in the work products before it’s too late. 5.2 Roles Owner: the developer of the work products which need to be reviewed can be some Individual or a team. The owner replies the questions of the conferee, and tries to find the imperfections and discuss about the solutions of those imperfections with the conferee. When the review is over, the owner should eradicate the imperfections in the work products as soon as possible. Page 8 Adjudicator: An adjudicator can be one of the owner’s companions or an expert of the same occupation. One or two is enough. The adjudicator should look for the imperfections in the work products carefully according to the checklist, and discuss about the solutions to the imperfections in the work products. Because an informal review does not need so many people to attend, a recorder can act as an adjudicator at the same time. 5.3 Start Standards The owner has finished his work according to the desired pattern (For instance a template), and has done an internal check in his work products, has eradicated the primary mistakes such as spelling mistakes and composing mistakes. 5.4 Input The work products waiting for a review 5.5 Main Steps 5.5.1 Prepare Review The adjudicators and the owner decide the time, the location, the devices, and the conferee together. The adjudicators have had a walkthrough of the work products and files related, the schedule of the review, the checklist etc. 5.5.2 Review 1. The owner introduces the work products briefly. 2. The adjudicators look for imperfections in the work products carefully according to the checklist. 3. The owner replies the adjudicator’s questions. Both sides must reach an agreement to every imperfection (avoid misunderstanding). 4. Discuss about the solutions to the imperfections. For problems that can’t be solved during the review time, we can affirm that the result of the review is not qualified. And we must report this to the superior. 5. Make a result of the review The adjudicator makes a conclusion and some opinions to the work products. The meeting ends after the chairman signs in the conclusion. There are three kinds of conclusions: Qualified, “no need to modify” or “need minor modifications but no need to review once more”. Basically qualified, need some modifications, and must pass a review after the modifications. Not qualified, need a large amount of modifications, and must review the work products again after the modifications. Page 9 5.5.3 Modification, tracing and review 1. Modification and tracing The owner modifies the work products, eradicate the imperfections. The adjudicator traces the status of every imperfection. 2. Review After all the imperfections are eradicated, the owner should send the modified work products to the adjudicator for review purpose. 3. Review the work products. There are two kinds of conclusions: (1) The modified work products are qualified. (2) The modified work products are still not qualified, need to be modified again. 4. The adjudicator updates problems found to <”Code Review”>, <”Walk Through”>. 5.6 End Standards All the identified imperfections have been eradicated from the work products. 6 Notes Code Review 1. Code changes are reviewed by knowledgeable individuals other than the originating code author 2. Appropriate corrections are implemented prior to release 3. Code review results are reviewed and approved by management prior to release During our code review process, the code author will never be the code reviewer. The code reviewer is usually a programmer with more experiences, might be the technical manager or a senior programmer. They will point out the imperfections in the code for the author; even the code style must meet the standards of our company. And a production release will not start until all the appropriate corrections on the imperfections are made. During code review, we will first check whether our implementation meets the requirements of our clients. And we’ll then check whether our implementation is rational without redundant code and with high efficiency. When the code has passed the review, the author will upload the related code to our SVN server. So that means the code review process is finished. And a review report will be written by the reviewer. After verified by PM, the report will also be archived to the SVN server. Page 10 The reviewers are usually assigned by PM of the project. One or two will be needed for the review process. The reviewers must be familiar to the project and must be senior programmers. Every time the code is changed, we’ll add some comment on the change. This includes the author, the time for the change and a brief introduction of clients’ requirements. SVN will manage all the changes. So we can easily return any code change to its’ original author at any time. After the code review is over, the reviewer must hand over the review report to PM. And PM will need to check the report and sign off the code review process. Web Application 1. Code review ensures code is developed according to secure coding guidelines such as OWASP 2. Training requirements for developers based on guidance such as OWASP The 911 software is a windows application. It’s not a web application and it does not have any web-facing components. Wireless Applications 3. Use strong encryption for wireless authentication and transmission. The 911 software is a windows application. It’s not a wireless application and does not have any wireless module in it. If wireless is used: • Change encryption keys at installation and whenever anyone with knowledge of the keys leaves the company or changes positions • Change default SNMP community strings • Change default passwords and passphrases • Update firmware to support strong encryption for authentication and transmission • Identify and change any other security-related vendor defaults • A firewall must be installed between any wireless networks and systems that store cardholder data Page 11 • Firewalls must be configured to deny or control (if such traffic is necessary for business purposes) any traffic from the wireless environment into the cardholder data environment 7 7.1 Other A technical review should be integrated with quality assurance dynamically. It’s a good way to invite the QA staff to participate and supervise the formal review 7.2 A technical review should be integrated with the configuration managements dynamically. Those work products which do not pass the technical review cannot be the baseline files. Page 12 Requirement Management Guideline 8 Introduction There are three parts of requirement management which are requirement confirmation, requirement tracing, and requirement change management. Requirement confirmation is that we review the requirements with Clients, reach an agreement on the requirements and make promises. We can implement it by means of a phone call, an email or a meeting. Requirement tracing is that we build and maintain a bidirectional relationship on the requirements through comparing the correspondence between the requirements and the follow-up work such as design documents, coding, and test use case, so as to ensure that our products are developed according to the requirements. Requirement change management is that we handle the change of requirements according to a process of “Request for Change-Review-Change-Reconfirm”, so as to ensure that the change of requirement should not lose control and cause chaos to our project. Page 13 9 Requirement Management Process 10 Confirm requirements Requirement confirmation is the process of recreation in the picture. We will confirm with our clients every Wednesday. For example, in the following picture, add a column to show whether a transaction was MANUAL or SWIPED. We should discuss with our clients about the details, such as the caption and location of the column added. And ensure that what we will do meets the clients’ requirements. The following description will take this requirement as an example. Page 14 10.1 Aim Recreate clients’ requirements, so as to confirm the authenticity of clients’ requirements. And then manage them by Project.net. We ensure that in the picture there was no relevant column to show whether a transaction was MANUAL or SWIPED. And we should ensure that the requirement is feasible and our change is stable. Then we will manage the requirement by Project.net. 10.2 Roles and Responsibility Test members or the assigned requirements manager recreate the requirements according to the description. And our test members will test our program and check the dialog. They should ensure that our program did the same procedure as the picture showed. And they should ensure that the change is meaningful. Then they will report it. 10.3 Start Standards Every morning test members should check the clients’ requirement management system to see if there are new requirements. If yes, then we start to work on them. Every day the test members should report “Daily Bug Status” for us. The “Daily Bug Status” let us know if there is any bug or requirement. And it also let us know what we should do. Page 15 10.4 Input Clients’ new requirements The test member should confirm the requirements every day. Then add it to Project.net and mark the status of the requirement. 10.5 Main Steps 10.5.1 Get new requirements from the clients’ system Every morning test members should check the clients’ requirement management system to see if there are any new requirements, record them to Project.Net, and set their status to confirming. And send emails to inform the team leader and PM. 10.5.2 Recreate the requirements Test members recreate clients’ requirements in our system. The results should be as following: 1. Can be recreated, set the requirement status in Project.net to “Confirmed”. 2. Cannot be recreated, set the requirement status in Project.net to “Pending”. And send an email to confirm it with clients. Once we get the results of the confirmation: a. If it can be recreated, follow step 1; b. If not, set the requirement status to “Rejected”,” Canceled” or “Resolved”. If the time used in confirmation is over 1 hour, the test member should write a Deliver Xml. 10.5.3 Get Commitment of the Requirements Related personnel should add a blog of commitment to undertake the requirement after PM distributes the requirements to them. 10.6 Output Requirements and the promises in Project.Net In Project.net we should describe the requirement and confirmation. At the same time we should show the expected result. Those will help developer to code and the test member to test. 10.7 End Standards Requirements are confirmed and added to Project.net. And related personnel make promises to undertake them. Page 16 11 Requirements Tracing Ensure developers and test members to make corresponding changes when the requirements changes, and change requirements status in time. 11.1 Aim The descriptions or expected results of clients may change, so the code and tests should also change. When the descriptions of clients are changed, we should change our work plan, especially the developer and the test member should do as new description. 11.2 Character and Duty The related personnel write a deliver xml of the current requirement and add comments to the code. There should be an index of the requirement in the comments. The deliver xml will let the clients know what we have done about the requirements. And it also records the changes in our program at the same time. We will know the details about the change in future. And the developer will trace code conveniently. 11.3 Start Standards The requirement is recreated. Before we do, we should ensure the problem. It will avoid that what we do is unnecessary. And it will help the developer to know more about the requirement. 11.4 Input Maintenance type project: a list of requirements after they are recreated, the code, docs of requirements (optional). For requirements, we should record them in detail. The developer will code it with reference. The test member will test them as description. The PM also manages it easily. 11.5 Main Steps 11.5.1 Write Deliver Xml and Code Comments A deliver xml is used to explain that which files are modified for which requirements. The comments in the code are used to explain that which requirements are related to this file. 11.5.2 Find the inconsistency Reopen the status of a requirement, by walkthrough, add new descriptions of new requirements and update the xml. Page 17 11.5.3 Eliminate the inconsistency Eliminate the inconsistency by tests and walk through. The developer should do unit test and ensure the change. If OK. The test member will walk through it. Those will eliminate the inconsistency. And ensure the requirement to be met. 11.6 Output Changes of requirements in Project.net The test member or PM will output the changes of requirements in Project.net. It will record the change. It will also help developer and test member to code or test. 11.7 End Standards All the requirements are marked as “confirmed”. After we confirm the requirements, we will mark it as “conformed”. It will let us know which requirement to confirm and which requirement confirmed. It also helps developer to start coding and it will let the test member to write test documents. 12 Requirement Change Control 12.1 Aim Modify the incorrect places in the old requirement documents and create new requirement documents. Manage the changes of requirements. 12.2 Character and Duty The sponsor of development control changes of requirements together with clients. The sponsor of development keeps in touch with clients. If requirements change, the sponsor can update it quickly. 12.3 Start Standards Clients send emails to request for changes in requirements. If clients change the requirements, they can send emails to the sponsor. About the requirement we take as example, at first we change it as the following picture: Page 18 But then the client sent emails to us to sort the column dialog for additional requirements. 12.4 Input Requirement list in Project.net We should input the updated the requirement in Project.net. 12.5 Main Steps 12.5.1 Request for a Requirement Change Receive an email that clients request for a requirement change. 12.5.2 Review the Request PM will decide whether or not to accept the request in the email. PM will take the updated requirement into account. If ok, he will tell developers to update the program. Then test members also update the test documents. 12.5.3 Modify the Requirement Document Add a newest description in the requirement descriptions in Project.net. 12.5.4 Reconfirm the Requirement Remake commitments in Project.net Page 19 If PM decides to modify the requirements, and the status also should be remarked. 12.6 Output Modified requirement descriptions in Project.net 12.7 Notes for Change Control 1. Every change must have customer impact documented 2. Every change must have management sign-off 3. Every change must be tested for operational functionality 4. Every change must have a back-out or de-installation procedure We make changes according to customers’ request. We have an email system to handle with this. When a request email comes from a customer, we’ll discuss it with our customer through phone calls or IM tools. When we reach an agreement with our customer, we’ll request an email as a confirmation from our customer. We won’t make any changes until we get the confirmation letter. And of course we’ll run a thorough test before we send the release to our customer. We will record every change with a revision number in our SVN. We can easily roll back all these changes. 12.8 End Standards The status in Project.net is modified as “confirmed” If we finish updating the requirements, we will mark the status as “confirmed”. Page 20 Technology Solution Implementation Guideline 13 Aim Clarify how to design, code and unit test. 14 Roles and Responsibilities Roles Responsibilities PM Responsible for roles, assignments, evaluation, supervision etc. Designer Responsible for designing documents based on customers’ requirements in Project.net. Developer Responsible for coding and unit test Test member Walk through and test before checking in Code Reviewer Review the code before checking in Industry Standards Our general software development processes based on CMM3 standards. All personnel involved in our development must be trained with the basic knowledge of CMM3 and use it throughout our development processes. Separation between Dev/Test and Production We set up different virtual machines for Dev/Test and Production. The virtual machines for Dev/Test are more in favor of development, with IDE tools in them. While the virtual machines for Production is much closer to the customers’ environment. The virtual machines for Production are well monitored and kept with a clean environment. Only when the time comes for a Production release, we’ll use them. The virtual machines for Dev/Test belong to the develop department, while the virtual machines for Production belong to the Production department. Different virtual machines are kept in different pcs. They’re independent and will not affect each other. Everyone must provide his account and password to log on to these virtual machines. And the password will be changed periodically. Only PM of the project and the related QA have access to the production systems. Page 21 When a build in the DEV machine passes all the tests, all the code changes will be reviewed. When the review process is passed, we’ll update the code in the production machine and make a production build for the clients. 15 Start Standards The project has been approved. The requirement status of the project has been marked as "Confirmed" in Project.net. 16 Input The requirement list of clients is in Project.net and the <”product requirements specifications">. Page 22 17 Process Page 23 Page 24 Select Candidate Solution Select a candidate solution from the blog in Project.net. The rule for selecting a candidate solution is that the solution must be easy to implemented, and will not increase the burden on the system. Implement Design Designers are responsible for implement design. This includes system architecture design, module design, database design, interface design, UI design etc. Not every project has to do all the design, for instance some projects don’t need a database, or some projects don’t need UI. Use JUDE or MS Visio to create UML diagrams and work flow diagrams, and use Toad module to design the database during implement design. Implement Standards 1) Protect sensitive authentication data prior to authentication 1. Minimize the sensitive authentication data that need to be stored prior to authorization. 2. If sensitive authentication data is stored prior to authorization, encrypt it. 3. If sensitive authentication data is stored prior to authorization, delete the data securely afterwards by filling out all zeros. For example: Let’s use a typical online transaction as an example. When the customer swipes their cards, the system will store the encrypted cards' data in a file with the suffix SES. And send this file to 911server. Page 25 Our software temporarily stores SAD prior to authorization. If it is a swiped transaction necessary data from card track will be stored. If it is a manually input transaction, necessary input data will be temporarily stored depending on what has been input. The necessary data includes PAN, name, CVV, Address Data, Address Zip. These data will be deleted immediately after authorization. For the application, logs cannot be configured by customers, or resellers/integrators. The following are the logs needed by the Operating System, the log path is "SYSTEM\CurrentControlSet\Services\EventLog\Application\CreditLine": 1. Cannot allocate memory for card processing: This log will be created if there is not enough memory space when doing settlement. 2. "Processor Name" Batch Successful: This log will be created when batch successful. 3. "Processor Name" Batch Failed: This log will be created when batch failed. Page 26 Whether the transaction is online or offline, the card number and the expiration date will be stored in the file CCV_JOR.DAT. This file is encrypted with AES256 encryption algorithm with multi-level key management. *Our software will not collect SAD by any means. Temporarily stored SAD will only be used for bug tracing. And it will be fully encrypted and deleted after used. *Before deleting the files, make sure to fill all the binary bits in the files with zero. 2) Delete any sensitive authentication data (pre-authorization) gathered as a result of troubleshooting the payment application. Collect sensitive data only when needed to solve a specific problem Collect the least amount of sensitive data possible to solve the problem Store sensitive data in specific, known locations with limited access Encrypt sensitive data while stored Securely delete sensitive data immediately after use The client can use this menu item to collect support files (containing the log file and other program setup files): Page 27 Choose a time period: Then press OK, the support files will be generated in 911\SUPPORTFLIES. Page 28 In this zip package, the MESSAGE folder is used to store transaction session files. The LOG folder is used to store the log files after a batch. The JOR folder is used to store the batched transaction data. The DATA folder is used to store log files and transaction data which are not batched. The log of all actions taken can be found in the data folder within the file CCV_LOG.txt. In these files, only masked account number and the transaction time and the processor file are recorded, in order to compare those transactions with a host when necessary. And these will be the least data we need for the purpose of tracing problems. Page 29 Debug files do not save the SAD. And files in the JOR directory and the LOG directory only encrypt and save the account number and the expiration date. These files only contain private information about transaction process, and have nothing to do with clients’ private information. This information is used by the technicians to debug. And finally, we reserved the insignificant data into log files. Page 30 These log files will be deleted immediately after support work is done. End users will also need to delete these trace logs after the issue is resolved. Check the following picture for how to delete the trace files. This is VERY IMPORTANT for PCI compliance: Logs must not be disabled and doing so will result in non-compliance with PCI DSS. When this is done, all SAD collected to solve the issue will be purged from the log file. The customers can use the menu item in following screenshot to manually purge data after the defined retention period. Page 31 Strongly advise that customers and resellers/integrators control access, via unique user ID and PCI DSS-compliant secure authentication, to any PCs, servers, and databases with payment applications and cardholder data. 3) Implement key management process and procedures for keys used to encrypt cardholder data 1. Payment application must generate strong keys 2. Payment application must distribute keys securely 3. Payment application must store keys securely 4. Payment application must facilitate periodic key rotation When customers update encryption keys, the update date will be recorded in file “C:\911\Data\911_CCV.INI” The encryption keys’ default lift cycle is 90 days which is defined in file “C:\911\Data\911_CCV.INI”. The customers can change the default “KeyLiftCycle”. The encryption keys were used more than the period defined in “KeyLifeCycle”. You cannot do any action in CreditLine’s interface and there is a popup to remind customers to update key. Page 32 5. Payment application must facilitate archiving, destruction, or revocation of old keys 6. Payment application must facilitate replacement of compromised keys 7. Payment application must facilitate split knowledge of keys 8. Payment application must prevent unauthorized key substitution 9. Payment application must allow for key custodians to sign a form specifying that they understand and accept their key-custodian responsibilities Page 33 When a user start 911CreditLine main program, the program will generate a unique KEKEK by using DPAPI. And then our program will use AES256 algorithm to generate an encrypted KEK with the KEKEK and some random 32 bit string. This will be done for 1000 times to form an Encrypted KEKs table with a key index from 000 to 999. Page 34 In the following process, our program will use AES256 algorithm to generate an encrypted DEK with a KEK which has the corresponding index and some random 32 bit string. This will also be done for 1000 times to form an Encrypted DEKs table which will also record the index of every DEK. When the program is going to encrypt some transaction data, it will pick up an index randomly first. Then it decrypts the KEK which has the corresponding index from Encrypted KEKs Table with KEKEK. And it decrypts the DEK which has the corresponding index from Encrypted DEKs Table with this KEK. And finally the program encrypts transaction data with this DEK and records the index. Our program will use the recorded index to get the DEK from Encrypted DEKs Table to decrypt transaction data. 1. There is a table of 1000 “data encrypting keys” a. Each piece of encrypted data contains the index of the “data encrypting key” which is used for the encryption b. Each “data encrypting key” is encrypted using a “key encrypting key” c. The application provides the function to re-generate the “data encrypting keys” i. It generates the new keys ii.It decrypts the previous data using the old keys iii. It re-encrypts the data using the new keys 2. There is a table of 1000 “key encrypting keys” a. Each encrypted “data encrypting key” contains the index of the “key encrypting key” which is used for the encryption b. Each “key encryption key” is encrypted using a “master key” c. The application provides the function to re-generate the “key encrypting keys” Page 35 i. It generates the new keys ii.It decrypts the “data encrypting keys” using the old keys iii. It re-encrypts the “data encrypting keys” using the new keys 3. The “master key” is protected by Microsoft “Data Protection API” – DPAPI a. The DPAPI is set to use the machine credential, different PC has different machine credential, so there will be much difference in encrypting or decrypting data. The encrypted data can only be decrypted in the same machine b. The secondary entropy is set using the application’s hash value c. The application provides the function to re-generate the “master key” i. It generates the new key ii.It decrypts the “key encrypting keys” using the old master key iii. It re-encrypts the “key encrypting keys” using the new master key When the CCV_MANAGER is initializing three “.ini” files will be generated in the “Data” folder to archive old keys which are “MasterKey.ini”, “KeyEncryptingKey.ini”, “DataEncryptingKey.ini”. And they are encrypted. Please pay attention that: In order to keep the same length in “KeyEncryptingKey.ini” and “DataEncryptingKey.ini”, all the DEK and KEKs are converted by Base64 Algorithm. So it should be rollback in the code when encrypting sensitive data. Page 36 We can manage these keys on the UI of Manager program. Page 37 The menu item “Update KeyEncryptingKey” and “Update DataEncryptingKey” are used in destruction or revocation of old keys and facilitating the replacement of compromised keys. The previous keys will be overwritten if you click these two menu items (Such irretrievability is absolutely necessary for the end-user's PCI DSS compliance.). Note: The previous keys are deleted by the secure deletion which does not allow keys to be retrieved by other means. The steps are: 1. Overwrite the whole file with random values to make sure the original binary key information written on the track of the hard disk has been overwritten. 2. Deleted the file from the disk. 3. Create a new file and store the new keys. Note: Cryptographic key material and/or cryptograms from prior versions of the application must be rendered irretrievable. Access should be removed from all users other than administrators. You can do this according to the following screenshot: Note: Customers must limit administrative access on the operating system and the application to keep personnel with key access and log access to the fewest number of personnel possible. Right click the KEY files>Properties>Security>Edit>click the group or user>Click Remove>Click OK. Page 38 Cardholder data exceeding a retention period must be purged. This can be done by delete all the contents within the JOR folder and the LOG folder in the installation directory (for example c:\911). There is no place to set a customer-defined retention period within the software and that this must be performed by an administrative user on their own schedule. These two folders (“C:\911\LOG”, “C:\911\JOR”) are where cardholder data could possibly be stored. In order to prevent inadvertent capture or retention of cardholder data, please configure the system wisely. Below are the steps: In order to protect the installation files from the arbitrary deletion/modification, please change the default permission as soon as you complete the installation. You can change the permissions according to the steps below: 1. Right-click the installation directory (“911” folder), click Properties. Page 39 2. Click the “Security” tab, then click “Edit” button. 3. You can click the checkbox below to allow or deny the access permissions of the specified user/group or click remove button to remove the specified user/group directly. Page 40 Note: If your operating system is Windows XP, you should uncheck the “Use simple file sharing(Recommended)” option in Folder Options(Start->Control Panel>Folder Options) first before trying to installation directory’s default permission . Page 41 To prevent inadvertent capture or retention of cardholder data, please do NOT include the 911 folder in restores and backups by the following steps: 1. Open Control Panel\All Control Panel Items\Backup and Restore 2. Click on "Change settings" 3. Select the same target as before and click Next. 4. Click on "Let me choose" 5. Expand the structure of disk 6. Uncheck the checkbox next to the “C:\911” folder Page 42 4) Payment application must facilitate use of unique usernames and secure authentication for all administrative access and for all access to cardholder data 1. All users must have a unique ID 2. The authentication method is user name and password 3. Group, shared, or generic accounts and passwords must not be used 4. Passwords must be changed at least every 90 days 5. Passwords must be at least seven characters long 6. Passwords must contain both numeric and alphabetic characters 7. Passwords must not repeat any of the last four used 8. Accounts must lock out after no more than six failed attempts 9. Accounts must remain locked out for at least 30 minutes or until an administrator re-enables the ID 10. Account logins must time-out and require password re-entry after no more than 15 minutes We set up a user name and a password for every custodian. The name is unique. And every record of custodian info has a unique ID. Custodians can change their password anytime at our web site “license.911software.com”. We have rules when custodians change their password just like the above. And we’ve got the session-break rules and account-lock rules for our web server log-in system. For example: When 911 software is installed the default user name pre-stored in ccv_info.dat is “admin” and the password is “creditline1”. When the users are using their own processor file, this default name and password will be deleted and replaced by their own administrator accounts. They will need to apply for a new administrator’s account for the software and sign a certification with 911 software to claim that they understand and accept their key-custodian responsibilities. In CCV_INFO file Group, shared or generic accounts and passwords do not exist. So group, shared, or generic accounts and passwords will not be used. Page 43 We can reset the password if it’s the first time to log in. Page 44 If the new password is shorter than 7 bytes, the program will prompt as below: If the new password is not combined with letters and numbers, the program will prompt as below: Page 45 If the new password is the same with any of the last 4 passwords, the program will prompt: We can set multiple user accounts and passwords by choose menu Configuration->Security: Page 46 After selecting Security from the main menu, the user needs to log in as an administrator so that he can enter the User Management window. Use Add to add an account for an administrator or a normal user. Account name needs to be unique, or our system will prompt "Try another name". Please modify to grant authorizations for the account as below. In order to protect your CreditLine application, please create your owner user having administrator’s permission and then delete the default admin account. Create custom user with administrator’s permission: Page 47 Delete the default admin account: Add directions that the admin user must be deleted here. Page 48 When a user logs in, if the system detects that it’s already longer than 90 days since the last login, or the password has been user for longer than 90 days, the program will prompt as below. Page 49 After a user logs in successfully, if no operation is detected by the system for 15 minutes, the session will be automatically timeout. The program will prompt: After press OK button, the user needs to re-login. If an account has not a particular authorization, a hint will pop out when he tries to use the function. Page 50 Click "Delete" button to delete the selected account. If the user has input wrong passwords for 6 times, the current account will be locked and not usable. The user needs to call an administrator to unlock his account. If there is no current available administrator account anymore, he will have to call 911 software for support. We use the binary file CCV_INFO.DAT to store these accounts and passwords. Only 911CreditLine knows how to change the contents of this file. The binary file CCV_INFO.DAT can be renewed from 911 software. Before moving our software to production, we'll rebuild installation package with a clean environment. Before making this production installation package, all test data will be removed. In the package, there are only executables, dependency dll files and other configuration files. And the test accounts will be removed from the customer account configuration file "CCV_INFO.dat" before packaged in. Page 51 Customers will be required to create one administrator account as well as one normal user account before using our software, if not, all functionalities will stop working. Pic 1, the customers are required to create their own accounts before using our software: Pic 2, where to create the accounts, we can see that default installation will have no test accounts in the system: *Important Notice: Before releasing a new version, we MUST remove any default administrator accounts. Page 52 File operations can be logged by the following system setup: 1. From Start menu, Open "Control Panel" ->”System and Security” ->"Administrative Tools"->"Local Security Policy". Expand “Local Policies” and choose "Security Options"-> change "Audit: Force audit policy subcategory settings..." to "Disabled". 2. Choose "Audit Policy"->change "Audit object access" by ticking up the "Success" checkbox. Page 53 3. Right click on the 911 folder, select "Properties", go to "Security" tab, click "Advanced" button. Then go to the "Auditing" tab, click "Continue". 4. Click "Add..." button to add a user or group, check "Full control" under Successful and Failed in the Auditing Entry screen. Check "Apply these auditing entries to objects...", then click "OK" button. Click "Apply" or "OK" for all other screens to save all these settings. (Please do this action for all users) Page 54 5. If a user who has been added to the auditing entries deletes any file or folder within the 911 folder, we can open windows event log ("Control Panel"->"Administrative Tools"->"Event Viewer"). Choose “Windows Logs”->“Security” all file deletion operations will be logged here. Below is one instance and by doing so Windows will log: • Individual access to cardholder data • Actions taken by any individual with administrative privileges • Access to application audit trails managed by or within the application • Invalid logical access attempts • Use of the payment application's identification and authentication mechanisms • Initialization of application audit logs • Creation and deletion of system-level objects within or by the application And for each event record: • User identification • Type of event • Date and time stamp • Success or failure indication • Origination of event • Affected data, system component, or resource Page 55 Other notifications: 1. MD5 hash check files accompany our build release. This is to check whether the released build is infected with viruses, or edited by other possible tools. 2. A firewall must be in use within the merchant environment as required by other points within the documentation. 3. Customers need to encrypt all non- console administrative access with strong cryptography, using technologies such as SSH, VPN, or SSL/TLS for web-based management and other non-console administrative access. Note: Telnet or rlogin must never be used for administrative access. 4. A review will be performed at least annually and updates to keep the documentation current with all major and minor software changes as well as with changes to the requirements in this document. Page 56 5. Payment application resellers and integrators need to know how to implement the payment application and related systems and networks according to the PA-DSS Implementation Guide and in a PCI DSS-compliant manner. Please refer to our website www.911software.com for the directions. 6. The training materials on our website will be updated on an annual basis and whenever new payment application versions are released. 7. If vendors, resellers/integrators, or customers can access customers’ payment applications remotely, the remote access must be implemented securely. Note: Examples of remote access security features include: Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer). Allow connections only from specific(known) IP/MAC addresses. Use strong authentication and complex passwords for logins (See PA-DSS Requirements. 3.1.1 through 3.1.1.0) Enable encrypted data transmission according to PA-DSS Requirement 12.1. Enable account lockout after a certain number of failed login attempts. (See PA- DSS Requirement 3.1.8.) Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed. Enable the logging function. Restrict access to customer passwords to authorized reseller/integrator personnel. Establish customer passwords according to PA-DSS Requirements 3.1.1through3.1.10.Aligns with PCI DSS Requirement 8.3 8. There is no two-factor solution provided by 911 Software. All remote access to CreditLine Manager requires two-factor authentication. Access must be controlled by the customer, only enabled when in use, monitored while in use, and disabled immediately after use. 9. The 911 Software does not allow the sending of PAN by end-user messaging technologies. 10. The911 software allows data transmission over public networks using TLSv1 encryption protocols. 11. The magnetic stripe data, card validation codes, PINs, and PIN blocks are NOT stored by previous versions of the 911 software. The cardholder data stored in the folder "C:\911\JOR" is the only sensitive data stored by previous versions which must be purged. This can be done by removing all the contents within the JOR folder. (Note: Such removal is absolutely necessary for the end-user's PCI DSS compliance) Page 57 Review Design PM and related personnel will participate in the review. The purpose is to determine that the design meets users' requirements, well-structured, easy to implement, scalable, maintainable, etc. Requirement Recreation and Confirmation After receiving requirements from clients’ requirement management system, test members need to recreate them and confirm the existence of the issue. If confirmed, go for the next step. If not, then we need to confirm it with clients. Coding Coding is the process that the programmer turns requirements into real products. The code must meet our company's coding standards. Or need to use the code formatting tools of our company to format the code. Unit Test When coding is over, the programmer must run the unit test, to ensure that the program can be executed correctly and efficiently. Walk through When the unit test is passed, test members need to walk through the program to verify the implementation of the program. Code review When the walk through is passed, the programmer needs to ask for a code review. The project manager has to sign off on the code review process. Check in code When the code review is over, we need to check in the code to the specified position of the server with specified version control tools. If it is a maintenance type project we should write a deliver xml. 18 Output Required: architecture design document, interface design document, the source code, the deliver xml Optional: module design document, database design document, UI design document, user manual Page 58 19 End Standards For a maintenance type project: the code checked in, the deliver xml is written 20 Release and delivery Before delivery we must do the pre-release cleanup: 1. Live PANs are not used for testing or development 2. Test data and accounts must be removed before a production system becomes active 3. Custom accounts, usernames, and passwords must be removed before customer release We ask the processor for test accounts and scripts. They will provide us all the physical test cards. The test data is only activated for test server of the host. When the test is done, we’ll uninstall the program and manually delete the test data. These data is not effective for the production server of the host. We use test cards for our testing and developments. These accounts are acquired from the host when we add support of new processors to our project. For example, we use the test card account number “4111111111111111” for a TSYS processor. And these accounts can only be used for testing. When we do a production release, these accounts will be removed. And we use test usernames and passwords for our license registration web service project. Before the real web service is deployed, all these test usernames and passwords will be cleared out from the database. We’ll do sanity test before a version release. First modify 911_CCV.ini, open test mode, to keep the safety of the data: Page 59 We can replace the file CCV_INFO.DAT in the DATA folder to test different processors: Page 60 4. When the software is ready to be released, we will update the version according to the following version methodology: 911 Software utilizes a major, minor, subminor version methodology and an internal build number in the following format: Version 'Major'.'Minor' SP 'Subminor' Build 'Build#' 'Build#' numbers: indicate non-functional changes and are incremented when cosmetic or other non-functional changes are made. 'Subminor' numbers: indicate bug fixes and are incremented when defects in intended functionality are corrected. 'Minor' numbers: indicate minor changes and additions and are incremented when minor changes and additions to functionality are implemented. 'Major' numbers: indicate major changes and additions and are incremented when major changes and additions to functionality are implemented. e.g. Version 4.1 SP88 Build 1102 indicated Major=4, Minor=1, Subminor=88,and Build#=1102 Page 61 21 Patch/Update Management 1. Patches must be developed and deployed in a timely manner 2. Patches must be delivered in a secure manner with a known chain-of-trust 3. Patches must be delivered in a manner that maintains integrity of the deliverable 4. Patches must be integrity checked by the target system prior to installation When a new requirement is coming from the client, we will establish a new requirement doc for it. Then the programmers will implement the requirement. After this is done, Our QA will test the program to verify the implementation. When the test is passed, we’ll make a patch for the client. When the implementation is approved by the client, we’ll include the change in the next public version release. The download site does not use HTTPS. But it uses MD5 Hash. The download file and the setup files all have the Hash file generated and available. The customers download the installation package as well as the MD5 file. By verifying the Hash Value, it can be determined that if the installation package has been tampered. We upload the installation file and corresponding *.MD5 file to 911 software’s official download site (http://www.911software.com/files/) in every routine delivery. Here are the steps of generating and Verifying MD5 file, you can also find the information on 911 software’s website: The steps to generate the original MD5 file: 1. Please download MD5summer.exe from http://www.md5summer.org/download.html 2. Run the MD5 summer.exe and add the original installation file to create sums, then click OK to generate and save the MD5 file. Page 62 The steps to confirm the correctness of the customer’s installation file: 3. Please download the MD5 file that match the installation file from http://www.911software.com/files/. 4. Put the customer’s installation file and the original MD5 file in the same folder. 5. Right click the original MD5 file->Verify with md5summer. Page 63 6. Save the verified result to txt file. 7. Open the txt file to see the verified result. Our sanity test includes all transaction types and uses all test cards supplied by different processors. And all the tests are running according to the test scripts supplied by different processors. The below is part of the test script: We have a monthly delivery plan. New build will be available for customers to download from our web site. Every month, we collect requests for changes and possible issues from our customers, and trying to make these changes and solve these issues. We do a thorough sanity test before the delivery to test for the integrity and security. The downloading web site contains all history versions of our software. Page 64 22 Maintenance 1. The Implementation Guideline must be disseminated to all customers, resellers, and integrators 2. The Implementation Guideline must cover all applicable requirements in the PA-DSS 3. The Implementation Guideline must be reviewed and updated at least annually 4. The Implementation Guideline must be reviewed and updated whenever the application is updated 5. The Implementation Guideline must be reviewed and updated whenever the PA-DSS is updated Page 65 System Test Implementation Guideline 23 Aim The aim of a system test is to do an overall test to the final software system, to ensure that the final software system meets the product requirements and follows the system design steps. 24 Introduction The system test flow is as Pic 3-1. The aim of a system test is to verify that the final software system meets the product requirements and follows the system design steps, so after product requirements and system design documents are finished, the system test team can make the plan of the test and design the test use cases. The system test team does not need to wait for the implementation and testing to be finished. They can begin to make test plans and test use cases ahead of time. This can benefit the efficiency of the system test. The imperfections found in the system test must use poject.net. Developers must eradicate the imperfections as soon as possible. Page 66 Pic 3-1 diagram of the system test flow 25 System Test 25.1 Aim The aim of a system test is to do an overall test to the final software system, to ensure that the final software system meets the product requirements and follows the system design steps. Page 67 25.2 Roles and Responsibilities The PM establishes the system test team, and assigns a member to be the team leader. All members of the system test team make test plans together, design test use cases together and execute the test together and write documents about the tests. The team leader is in charge of all the arrangements. Developers must eradicate all the imperfections found by the test team. 25.3 Start Standards After product requirements and system design documents are finished. 25.4 Input <”Product requirements specifications”> 25.5 Main Steps 25.5.1 Make a plan of system test Members of the system test team discuss about the test plan together. The team leader writes the <”System Test Plan”> according to an assigned template. This plan should include: Test range (contents) Test method Environments Personnel and task list PM’s approval on <”System Test Plan”> 25.5.2 Design system test use cases Members of system test team make test use cases according to the <”System Test Plan”> and assigned templates. The team leader can tell the developers to review the <”System Test Use Cases”> together. After the test use cases pass the review, we can start the system test immediately. 25.5.3 Start System Test Members of the system test team execute system tests according to the <”System Test Plan”> and <”System Test Use Cases”>. Record the test results in the <”System Test Report”>. Manage the imperfections with Project.net. And inform developers as soon as possible. Page 68 25.5.4 Imperfection management and modifications During the test, anyone who finds an imperfection needs to record the problem to Project.net. As for the bugs to be modified before delivery, developers must solve them as soon as possible. The developers must run a regression test after the bugs solved, in order not to bring new bugs into the project. 25.5.5 Verification All security patches and system and software configuration changes must be tested before deployment 1. Verify validation of input (to prevent cross-site scripting, injection flaws, malicious file execution, etc...) 2. Verify proper error handling 3. Verify secure cryptographic storage 4. Verify secure communication 5. Verify proper role-based access control 6. Tests for injection flaws, particularly SQL injection (Validate input to verify user data cannot modify meaning of commands and queries, utilize parameterized queries, etc.) 7. Tests for buffer overflow (Validate buffer boundaries and truncate input strings.) 8. Tests for all "High" vulnerabilities as identified by internal risk analysis. 9. Processes to assign a risk ranking to identify vulnerabilities. (At minimum, the most critical, highest risk vulnerabilities should be ranked as “High”) For example: Test the input box with different irregular inputs; Let’s input some special characters in 911CreditLine Manager as below: Page 69 It cannot pass the verification, the error message will be: Try to do transactions with incorrect card info; We’ll input some invalid card numbers without any special character as below: Page 70 It still cannot pass the verification, the error message will be: 25.5.6 Vulnerability Testing for Web Applications 1. Test for cross-site scripting (XSS) vulnerabilities 2. Test for injection flaws (SQL, etc...) 3. Test for malicious file execution 4. Test for insecure direct object references 5. Test for cross-site request forgery 6. Test for improper error handling and information leakage 7. Test for broken authentication and session management 8. Test for insecure cryptographic storage Page 71 9. Test for insecure communications 10. Test for failure to restrict URL access This is not a web application and we do not have any web -facing components. 25.5.7 External Vulnerability Identification 1. Use MSRC as an outside source of security vulnerability information 2. Test the application for new vulnerabilities once per month 3. The vulnerability identification process must apply to all software provided with or required by the payment application MSRC is in our consideration. When some new security problems are reported by Microsoft, we will estimate the possible influence to our product. First we’ll inform our QA to run a test for it. If that causes some vulnerability problems of our product, we’ll tell the programmer to make possible modifications to deal with it. We have a monthly testing plan for this. This is done along with the monthly sanity test of our software. All programs will be tested including the CCV_SERVER.EXE, CCV_MANAGER.EXE, and all the DLL interfaces which include clc.dll, CLClient.ocx, ClcCs.dll, CLCAPIW2.dll. 25.5.8 Cardholder data must not be internet accessible 1. The application must store cardholder data on the internal network only, never in the DMZ 2. The application must allow for the use of a DMZ to separate the Internet from systems storing data CHD is stored in the server machine of our software as a file. This file is encrypted and placed in an internal network. It’s easy to prove that. Even if the internet is not accessible, this file can be generated. A firewall system is needed here to keep this file from the internet. 25.6 Output <”System Test Use Cases”> <”System Test Report”> 25.7 End Standards For non-strict systems we can use the rule “based on test use cases”: Functional test use cases should be passed by a rate of 100%. Page 72 Non-functional test cases should be passed by a rate of 80%. 25.8 Measurement Members of the test team and the develop team should record the amount of work in tests and modifications, and the quantity and types of the imperfections, and should fill the data to the rating form. Page 73 Appendices 26 Software and Hardware Environments This is a table of all required protocols, services, components, and dependent software and hardware that are necessary for 911 software, including those provided by third parties: Type Item Name Hardware Software Protocol Service PC, PINPAD Framework 2.0 or higher version, Windows Notepad TCP, TLS, HTTPS, CGI, COM, FILE SHARING N/A Page 74 27 Sample Key Custodian Form The responsibilities of a key custodian include protecting the key itself as well as access to the key. By signing below, I __________________ acknowledge and understand that: I will follow the policies and procedures associated with key management and agree to comply with them to the best of their ability. Non‐compliance with these policies can lead to termination of employment and possible legal liability. I must never divulge to any unauthorized party the key management practices, procedures or permit unauthorized access to systems, passwords, processes, or other sensitive information associated with the company. I must promptly report any suspicious activity to management, to include suspected key compromise, unauthorized access to systems, and theft. I agree to the above in full and understand my responsibilities as indicated above. Signed: _______________________________________________________ Printed Name: ___________________________________________________ Date: ________________________________________________________ Manager: ______________________________________________________ Printed Name: __________________________________________________ Date: _________________________________________________________ Page 75