개요

본 문서는 허큘리스 제품의 보안 변수 기능을 설명하는 문서입니다.
보안 변수 기능을 사용하기 전에 먼저 Hive SDK 적용을 완료해야 합니다.

보안 변수의 특징은 다음과 같습니다.

  • 메모리에서 특정 값이 외부 툴에 의해 검색되지 않도록 값을 암호화 합니다.
  • 암호화 한 값이 변조되더라도 값을 읽을 때 유효한 값 인지 검증합니다.
  • 지원 언어는 C/C++ 과 C#(Unity) 이 있습니다.

 

보안 변수 사용

C# (Unity)용

  • 기본적으로 C#에서 사용 가능한 데이터형을 Generic 클래스로 사용할 수 있습니다.
  • 각 데이터 형에 매칭되는 보안 데이터 형이 아래와 같이 있습니다.
  • 기본타입은 모두 8바이트 타입으로 캐스팅 되므로 int대신 long을, float 대신 double을 사용하는 등의 8바이트 타입 사용을 권장합니다.
기본 타입 보안 타입 기본 타입 보안 타입
bool HerculesVar<bool> int HerculesVar<int>
char HerculesVar<char> uint HerculesVar<uint>
sbyte HerculesVar<sbyte> long HerculesVar<long>
byte HerculesVar<byte> ulong HerculesVar<ulong>
short HerculesVar<short> float HerculesVar<float>
ushort HerculesVar<ushort> double HerculesVar<double>
string HerculesString
사용 예제 C++

iOS, Android

  • C의 경우는 변수의 값을 저장하거나 읽을 때 마다 API를 직접 호출해야 하므로 C++ 사용을 권장합니다. C++에는 템플릿 클래스가 정의되어 있습니다.
  • 가급적이면 보안 변수를 전역 변수로 사용, 혹은 너무 잦은 할당과 해제가 이루어 지지 않는 곳에 위치시킨 후 사용하는 것이 좋습니다.
  • #include 구문을 extern “C” 블럭 안에 넣으면 안 됩니다.
  • Hive SDK가 초기화 된 이후에 사용해야 합니다.
사용 예제1. C++

사용 예제 C Language

참고 사항 (C++)

  • 보안 변수에 초기 값이 설정된 상태에서 사용하세요. (객체를 할당한 상태)
  • 필요한 연산을 모두 마치고 최종적으로 나온 결과를 한번 대입하는 형태로 사용하세요.
  • 아래 예제를 참고하세요. (C++은 연산자 오버로딩이 되어 있습니다.)
  • 권장하는 방법
  • 권장하지 않는 방법(잦은 접근)