2016-07-29 3 views
0

내 프로젝트에 JSONStore를 사용하여 일부 데이터를 저장하고 있지만 데이터를 잠금 해제하는 데 사용되는 키를 저장하려고합니다.JSONStore에서 암호화 키/암호를 저장하는 방법

는 MobileFirst는 안전하게 클라이언트 측 또는 서버 측에서 키를 저장

  • 수있는 방법을 제공한다.
  • 어댑터에서 키를 가져 오거나 어댑터에 연결하여 JSONStore를 잠금 해제 할 수있는 방법이 있습니까?

답변

1

나는 당신이 JSONStore 컬렉션 내부의 데이터를 암호화하고 동시에 사용자가 비밀번호를 입력하지 않고도 컬렉션을 해독 할 수 있기를 원한다고 생각합니다.

접근 1 : 클라이언트 측

당신이 그 목적을 위해 터치 ID를 사용할 수있는 아이폰 OS에서이 작업을 수행하려면

. https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/t_setting_up_touch_id_jsonstore.html

안드로이드의 경우, 안드로이드 마쉬멜로어 (6.0)를 시작으로 사용할 수있는 지문 스캐너 용 API가 있습니다. https://developer.android.com/about/versions/marshmallow/android-6.0.html#fingerprint-authentication

위에서 언급 한 접근 방식을 사용하면 기본적으로 임의의 암호를 만들어 장치에 안전하게 저장합니다. 그런 다음 장치는 사용자에게 인증 (지문 스캐너 또는 핀 코드)을 묻는 메시지를 표시 한 다음 성공하면 해당 임의의 암호에 대한 액세스 권한을 얻습니다.

접근법 2 :이 방법에서 서버 측

당신은 클라이언트에서 보낸 토큰/문자열을 해시 어댑터를 사용합니다. 이 작업을 위해 당신이 WL.Device.getID 상수 즉, 장치 ID 남아 뭔가를 사용해야합니다() https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Device.html#getID

은/암호 해시 수 어댑터에서

WL.Device.getID(function(response){ 
    var id = response.deviceID; 

    var req = WLResourceRequest('/adapters/Util/hash', WLResourceRequest.POST); 

    return req.sendFormParameters({ 
    pass: id 
    }); 
}).then(function(response){ 
    var passwordHash = response.responseJSON.hash; 


    // open JSONStore collection with the passwordHash 
}); 

을 app.js 그런 다음 장치 ID를 장치로 반환하여 JSONStore 컬렉션을 엽니 다. Java 어댑터에서 비밀번호를 해시하려면 How can I hash a password in Java?을 확인하십시오.

이 방법은 합법적 인 사용자에 대해 JSONStore를 열거 나 암호 해독하기 위해 인증해야하기 때문에 조금 까다 롭습니다.

관련 문제