Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 3.0-alpha-7
-
Fix Version/s: Issues to be reviewed for 3.x
-
Component/s: General
-
Labels:None
-
Complexity:Intermediate
-
Number of attachments :
Description
The current encryption scheme implemented by Maven avoids the use of cleartext passwords on local files by allowing them to be encrypted locally and decrypted just before the maven client requests from or deploys to a central artifact repository.
I would like to suggest that the Maven team replicate the idea adopted by Artifactory, where passwords are transmitted encrypted, and only decrypted on the server side by the repository. Requests and deployments are made over http and transmitted in the clear. Where the passwords are system passwords integrated to Active Directory or similar using LDAP, this is not an option even within a company's LAN. I like the idea of where Nexus and the Maven development stack in general is going (I listened to Jason's seminar recently and I'm keen on much of where you are going). But passwords in the clear over http is a showstopper and I'm surprised you haven't already borrowed this idea from the competition.
Another irritating side effect of maven's insistence in using cleartext passwords has been mentioned by a colleague of mine in MNG-4611. We currently use Artifactory for EXACTLY this reason (the password encryption) and maven logs loudly about the fact that the passwords are encrypted.
Maven was built assuming no intelligence on the repository side, so it exactly follows the http standards wrt authentication. Simply encrypting the password is a false sense of security, if you really have sensitive data, you should instead be using https to encrypt the whole transfer. The encryption built into Maven 2.1 was intended to provide a way to give some security to your password by obscuring it from the settings.xml. Naturally to conform to http standards, we needed to reverse the encryption before putting in on the wire.
There may be some consideration done to define a new repository manager protocol and some password encryption around that, but for the moment, this seems to be out of scope for Maven itself.
That said, we have developed this functionality in Nexus Pro, but never shipped it because of some incompatibilities with the sun http provider in some edge cases. It sort of fell off the priority list, but we will be resurrecting and polishing this up soon.