Replies: 1 comment 1 reply
-
My dude. That was the finest feature request I've ever had the pleasure to read. So the good news is that we're releasing EJBCA 8.0 Enterprise in June with SSH Certificate support. The SCP publisher has been around for a few years (albeit somewhat unloved), but naturally connecting the two is on the roadmap. I can't say for sure that it'll make it into 8.0, but likely in a release before the year is out. Now, the solemn news is that while we've released the SCP publisher to the Community, we're not quite ready to do so for SSH certs, so the above feature won't be in Community as it's planned right now. But again let me say...that was a gorgeous damn FR. Cheers, |
Beta Was this translation helpful? Give feedback.
-
Overview
In a service delivery organization where operation, governance and administration is often distributed over multiple roles and responsibilities, it is beneficent if service administration can be performed uniformly in a central administration/management facility rather than being spread across different access forms and user interfaces which in turn often challenges restriction of privileged access. An example of such non uniformity in EJBCA is the configuration of SCP Publishers where admin portal (GUI) facilities, access and rights is not sufficient to be able to implement and configure the publisher service as it also requires direct (remote) file system access to the operating system on which EJBCA resides.
At current the SCP Publisher requires a SSH key pair and the list of known SSH hosts to be present as files in the local file system of the operating system that EJBCA resides on. The path and name of these files are then entered as parameters to a SCP Publisher configuration and the EJBCA system accesses these files from the file system as required when the SCP Publisher job is executed. This is particularly problematic when running appliance variants of EJBCA where direct OS access and custom additions to the file system is undesirable.
This feature request is raised to address the particular issue of SCP Publisher administration in an effort to improve the management of the PKI service platform and potentially improve its operational robustness and resiliency. Further, the overall security of the PKI eco system may also be improved if the SSH private key is generated in EJBCA and never exposed neither to the administrator or to the underlying operating system when compared to the current implementation.
Proposed implementation
Internally the EJBCA code base utilizes the JSch (Java Secure Channel) library to perform SSH/SCP operations. Currently the EJBCA implementation is to provide JSch with the path and file names which it in turn reads from the file system when a session is created (ScpPublisher.java, lines 446-451). The JSch library provides alternative functions where the key file contents can be provided directly through byte arrays ( public void addIdentity(String name, byte[]prvkey, byte[]pubkey, byte[] passphrase) ). With regards to known hosts there is a function available where the contents can be provided in the form of an inputstream object ( public void setKnownHosts(InputStream stream) ). Thus, the facilities exists in the dependency library to utilize data stored in the EJBCA database instead of referencing to files as in the current implementation.
Expected additions and alterations to be implemented:
Makes sense?
Now, I am a infrastructure and service architect and not a Java developer, so I do not think I would do a very good job at coming up with the code so I would have to leave that to the professionals :)
Discussion and comments welcome.
BR,
Knut
(Edit: changed indentation on some items in the bullet list, mostly for aesthetics)
Beta Was this translation helpful? Give feedback.
All reactions