(U) This opening is supporting a project to provide confidentiality and integrity guarantees for enterprise cloud environments. The focus is protecting data-in-use, beginning with data protection and key management improvements at the data nodes, and gradually adding protections for data throughout the system. The team is using Accumulo to test our security designs. There are two tasks for FY19 and beyond which are described below:
(U) Task 1:
(U) Modify Accumulo to provide robust file level encryption integrated with distrusted key management. Then create a new Accumulo crypto module and integrate this module into Accumulo. This work includes, but is not limited to the following:
(U) Task 2:
- Java and C development work on Accumulo, including prototyping and developing production grade code ready for release as an open source project.
- Integrating a stand-alone distributed key management tool with Accumulo.
- Updating and maintaining the local Java development environment
- Working with the team to surmount implementation issues.
- Junit testing and other quality assurance measures.
- Project documentation, including in-house documentation and documentation to accompany an open source release.
(U) Provide local key storage support for Accumulo nodes using the Trusted Platform Module (TPM) and Intel’s SGX as roots of trust for the storage of material on the nodes. This work includes but is not limited to the following:
LCAT Required Skills:
- Linux Bash script development
- C or C++ code development
- Use of the TPM, Trusted Software Stack (TSS), and TPM tools
- Use of Key Management Interoperability Protocol (KMIP)
- Interfacing with Accumulo to pass key information.
DO Required Skills:
- A minimum of 7 years of experience as a SWE in programs and contracts of similar scope, type, and complexity.
- A minimum of a Bachelor’s Degree in Computer Science or related discipline from an accredited college or university.
- 4 years of additional SWE experience on projects with similar software processes may be substituted for a Bachelor’s Degree.
DO Desired Skills:
- Within the last 5 years, a minimum of 3 years of experience developing in C or C++
- Within the last 5 years, a minimum of 2 years of experience with collaborative software development tools (ex., Jira, etc…)
- Within the last 5 years, a minimum of 2 years of experience designing and implementing unit tests.
- Familiarity with a high-level object oriented programming language.
- Demonstrated experience documenting software.
- Candidate must be comfortable interfacing with the open source software development community and engagement.
- Candidate must have strong communication and interpersonal skills
- Experience with Apache Accumulo development
- Experience coding Hadoop-based distributed compute architectures.
- Experience coding applications that use the TPM.
- Understanding of cryptography basics and implementing standard crypto libraries in Java, C, and C++ software for file encryption.
- Experience developing Java applications.