암호 기본 유형
암호 기본 유형은 암호화된 키 저장소 기반 값입니다.
ThingWorx 8.2의 변경 사항
ThingWorx 8.2에서 암호 기본 유형의 보안이 향상되었습니다. 암호 기본 유형이 암호화된 키 저장소 기반 값으로 변경되었습니다. 이러한 변경은 암호를 가져오고 내보낼 때 영향을 줄 수 있습니다. 모범 사례는 아래에 설명되어 있습니다.
* 
더 강력한 보안 모델로 인해 일부 에지 에이전트가 새 암호 기본 유형과 호환되지 않습니다.
이러한 변경 전에는 C SDK, .NET SDK, EMS 및 iOS SDK가 암호에 액세스할 수 없었으며 해당 동작을 계속 유지합니다.
ThingWorx 8.2 이전에서 Java SDK 및 Android SDK에는 암호를 수신하는 기능이 있었으며, 암호화된 값이 에지에 도달하면 암호를 해독하기 위한 라이브러리가 포함되어 있었습니다. 이러한 변경으로 암호화된 값을 수신할 수 없거나 해독할 수 없습니다. 암호 기본 유형 값을 에지로 보낸 경우 에지가 암호를 해독하려고 시도하면 Java 및 Android SDK에서 오류가 트리거됩니다.
JSDK 6.1 이전 오류:
[O: c.t.t.d.u.ValueCollectionSerializer] [T: main] Error reading value collection data: Unable to read primitive value from stream : Decrypt ERROR: null JSDK
JSDK 6.1 및 이후 오류:
[L: ERROR] [O: c.t.t.d.u.ValueCollectionSerializer] [T: main] Error reading value collection data: Unable to read primitive value from stream : java.lang.IllegalArgumentException: No key store file path specified
* 
PASSWORD 기본 유형을 데이터 테이블의 기본 키로 사용해서는 안 됩니다.
데이터 테이블 및 스트림에 암호 추가에 대한 모범 사례
Composer 또는 REST API를 통해 AddEntry 서비스(예: AddIntegerStreamEntry)를 사용하여 데이터 테이블 또는 스트림에 항목을 추가할 때 암호는 EncryptionServices.encryptPropertyValue를 사용하여 암호화되어야 합니다. 예를 들면 다음과 같습니다.
// test password value
var test_password = "test_123"
// values:INFOTABLE(Datashape: test_shape)
var values = Things["test_table"].CreateValues();

var params = {
data: test_password /* STRING */
};
values.p1 = Resources["EncryptionServices"].EncryptPropertyValue(params);
values.s1 = "test_string"; //STRING [Primary Key]

var params = {
source : me.name,
values : values
};
암호 가져오기 및 내보내기에 대한 모범 사례
암호를 가져오고 내보낼 때 기본 내보내기 시스템을 사용하여 가져오기를 수행하는 시스템에 동일한 키 저장소가 설치되어 있는지 확인합니다.
일반 텍스트 암호 내보내기가 필요한 경우(키 회전에만 권장됨) 내보내기는 REST API를 통해 수행되어야 하고 중요한 정보로 처리되어야 합니다.
* 
주의: 일반 텍스트 암호를 내보낼 때 적절한 방식으로 파일을 암호화해야 합니다. 일반 텍스트 내보내기에는 기본 제공 보안이 포함되지 않습니다.
일반 텍스트 암호를 포함하는 REST API 호출에 대한 예는 다음과 같습니다.
GET /Thingworx/Exporter/Users/test HTTP/1.1
Host: localhost:8080
Accept: text/xml
Content-Type: application/json
universal: password
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==
* 
암호를 데이터 테이블의 기본 키로 내보내지 마십시오.
* 
암호화 키(키 저장소)가 손실되면 암호화된 데이터가 모두 손실됩니다.
암호 키 회전에 대한 모범 사례
키 회전에 대한 모범 사례는 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf 항목을 참조하십시오.
페더레이션 시나리오의 암호에 대한 모범 사례
페더레이션 시나리오에서 암호를 게시하거나 구독할 때 동일한 암호 암호화 키를 사용할 경우에만 암호화 및 암호 해독이 성공합니다. 키가 다를 경우 페더레이션 서버에서 암호 해독이 실패하며 속성을 읽을 수 없게 됩니다. 동일한 암호화 키를 사용하려고 시도할 경우 오류가 기록됩니다.