해결책
LabVIEW VI 비밀번호 보호LabVIEW VI 비밀번호 보호는 사용자가 VI를 실행할 수 있게 하지만, 비밀번호 없이 VI의 블록 다이어그램을 보거나 편집할 수 없게 합니다. 이 기능은 VI가 다시 컴파일되는 한, 이후 버전의 LabVIEW에서 열 때 적용됩니다. VI의 비밀번호 보호를 하는 방법을 익히기 위해
Creating Password-Protected VIs 를 참고하십시오.
LabVIEW가 VI를 다시 컴파일을 하기 위해서는 VI의 블록 다이어그램을 읽을 수 있어야 합니다. 사용자에게 암호를 묻지 않고 LabVIEW를 실행할 수 있어야 하기 때문에 LabVIEW는 VI의 블록 다이어그램을 보호하기 위해 강력한 암호화를 사용할 수 없습니다. 현재 VI 암호 보호 메커니즘은 VI 암호에서 파생된 해시 세트와 VI 내부의 서로 다른 위치에 포함된 추가 솔트(해시 함수에 대한 입력으로 사용된 데이터)에 의존합니다. 암호 자체는 VI에 저장되지 않으므로 VI를 다시 컴파일해야 하는 경우, LabVIEW가 암호를 묻지 않고 블록 다이어그램에 계속 액세스할 수 있습니다. 동시에 VI의 블록 다이어그램을 보거나 편집하려는 경우 VI 암호를 입력하라는 메시지가 표시됩니다. 사용자가 암호를 입력할 때 LabVIEW는 입력한 암호에 대해 계산된 해시 세트를 VI에 저장된 해시와 비교하여 사용자가 블록 다이어그램에 액세스할 수 있도록 합니다. 이러한 접근방식과 VI의 블록 다이어그램을 암호화하지 않기로 한 결정의 결과로 다음과 같은 경우 공격자가 암호 해시를 자신의 것으로 교체할 수 있습니다.
- 솔트뿐만 아니라, VI 파일 내의 해시의 정확한 위치를 결정 -또는-
- LabVIEW 프로세스의 해시 비교 루틴 수정 (예 : 메모리 디버거 사용)
현재로선 드물다고 생각하지만, 공격자는 VI의 암호 보호를 해제하여 암호를 다른 공격자가 선택한 암호로 바꿀 수 있는 프로그램을 만들 수 있습니다.
VI 암호 보호에서 제공하는 것보다 더 큰 보안이 필요한 경우 VI의 블록 다이어그램을 제거하는 것이 좋습니다.
VI의 블록 다이어그램 제거하기VI의 블록 다이어그램을 제거하면 VI 비밀번호 보호를 사용하는 것보다 더 큰 보호 기능을 제공하지만 블록 다이어그램을 쉽게 복구하거나 다른 LabVIEW 버전에서 사용할 수는 없습니다. VI 블록 다이어그램을 제거하는 방법은
Removing Block Diagrams from VIs를 참조하십시오.
VI의 블록 다이어그램을 제거한 후에는 VI에서 원래 블록 다이어그램을 복구하기가 매우 어려우며, 텍스트 언어 컴파일러에서 생성된 기계 지침이 포함된 실행 가능한 어플리케이션만 제공하는 텍스트 프로그램의 소스를 복구하는 것과 비슷합니다. 또한 LabVIEW는 VI가 컴파일 및 저장된 동일한 LabVIEW 버전 및 플랫폼에서 VI를 실행할 수 있으며 향후 LabVIEW 버전 또는 기타 플랫폼은 VI를 다시 컴파일할 수 없습니다. 따라서 지원하려는 LabVIEW 버전 및 플랫폼의 각 조합에 대해 별도의 VI를 제공해야 합니다.
VI 블록 다이어그램 제거와 함께 수반되는 이러한 VI 분포 부담을 피하는 것이 VI 블록 다이어그램 제거보다 안전하지 않더라도 VI 암호 보호 기능을 지속적으로 제공하는 이유입니다.