[英]java keystore and password security for smartcard on windows
http://docs.oracle.com/javase/6/docs/api/java/security/KeyStore.html
在下面的代碼中,java應用程序向用戶請求密碼:
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
// get user password and file input stream
char[] password = getPassword();
java.io.FileInputStream fis =
new java.io.FileInputStream("keyStoreName");
ks.load(fis, password);
fis.close();
這是否意味着應用程序可以獲得我的數字證書密碼,即使它是在智能卡上並可能用於其他東西?
是的,具有足夠權限的另一個應用程序可以從內存中讀取密碼的內容,或者在輸入鍵盤時隱藏密碼。
代碼示例顯示存儲為char
數組的密碼,這是推薦的做法。 使用密碼后,這些數組可以重置為不同的值,這與不可變的String
不同。 這可以最小化攻擊窗口,但不會將其刪除。
多家智能卡制造商提供外部密碼鍵盤設備,確保密碼直接發送到卡上。 您可以考慮調查其中一種解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.