여러 사용자가 Java 애플릿을 실행하려고 할 때 "보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다(Your security settings have blocked an untrusted application from running)"라는 오류 메시지를 접하고 있습니다. 이 문제는 특정 Windows 버전에만 국한된 것이 아니라, Windows Vista, Windows 7, Windows 8, Windows 10 등 최근 버전 전반에서 동일하게 나타나는 현상입니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202307.jpg)
보안 설정이 응용 프로그램 실행을 차단하는 원인은?
다양한 사용자 사례와 이들이 실제로 적용한 복구 방법을 분석하여 이 오류의 원인을 살펴보았습니다.
조사 결과, 이 오류는 Java 7 Update 21부터 도입된 Java 브라우저 플러그인의 새로운 보안 정책 때문에 발생하는 것으로 밝혀졌습니다. 이 변경 사항은 사용자가 웹 브라우저 내에서 Java 기반 애플릿을 실행할 때 더욱 신중하게 판단할 수 있도록 하기 위한 목적이었습니다.
Java 7 Update 21 이상 버전에서는 인증서가 없거나 응용 프로그램 이름 또는 게시자 정보가 누락된 애플리케이션이 기본적으로 차단됩니다. 이는 안전하지 않거나 고위험으로 분류되는 응용 프로그램으로부터 사용자를 보호하기 위한 조치입니다.
새로운 보안 정책이 적용된 이후 이 오류 메시지를 유발하는 세 가지 주요 원인은 다음과 같습니다.
- 응용 프로그램이 서명되지 않은 경우 – 인증서가 없거나 게시자 정보와 이름이 누락된 애플리케이션은 기본적으로 차단됩니다. 이러한 애플리케이션은 시스템을 외부 공격에 취약하게 만들 수 있습니다.
- 신뢰할 수 없는 기관의 자체 서명(self-signed) 응용 프로그램을 실행하는 경우 – Java 7 Update 51부터 자체 서명 인증서를 사용하는 애플리케이션 역시 기본적으로 차단됩니다. 컴퓨터 내 개인 데이터 접근 권한이 부여될 가능성이 있어, 서명되지 않은 애플리케이션보다 더 위험한 것으로 간주됩니다.
- 애플리케이션의 jar 파일에 권한(permission) 속성이 누락된 경우 – 권한 속성은 애플리케이션이 개발자가 지정한 것과 동일한 권한 수준을 요청하는지 검증합니다. jar 속성이 누락된 애플리케이션은 공격자가 서로 다른 권한 수준으로 애플리케이션을 실행해 사용자를 악용할 수 있기 때문에 차단됩니다.
일반적으로 이러한 핵심 식별 정보가 누락된 애플릿이나 애플리케이션은 안전하지 않은 것으로 간주해야 합니다. 출처를 확실히 알지 못한다면 실행하지 않는 것을 강력히 권장합니다.
다만, 게시자를 알고 있으며 해당 애플릿을 신뢰할 수 있는 경우(예: 직접 개발했거나 테스트 중인 경우)에는 이 오류를 우회할 수 있는 방법이 존재합니다.
아래에서 이 오류를 해결할 수 있는 몇 가지 방법을 소개합니다. 방법 1이 일반적으로 가장 표준적인 해결책으로 널리 권장되지만, 같은 목적을 달성하기 위해 방법 2를 활용할 수도 있습니다.
방법 1: 예외 사이트 목록(Exception Site List) 구성하기
Java가 안전하지 않다고 판단하는 애플리케이션을 실행할 때 따르는 위험을 충분히 이해하고 있다면, 해당 애플리케이션을 예외 사이트 목록에 추가함으로써 오류 메시지가 더 이상 나타나지 않도록 설정할 수 있습니다. 이 설정은 Java 제어판의 보안 탭에서 찾을 수 있습니다.
다음은 Java 제어판을 열고 문제가 되는 Java 애플릿을 예외 사이트 목록에 추가하는 단계별 가이드입니다.
- Windows 키 + R을 눌러 실행 대화 상자를 연 뒤, "control"을 입력하고 Enter 키를 눌러 제어판을 엽니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202344.jpg)
- 제어판 창에서 프로그램(Programs)을 클릭한 후 Java 아이콘을 클릭하여 Java 제어판을 엽니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202367.jpg)
- Java 제어판 창에서 보안(Security) 탭으로 이동한 다음 사이트 목록 편집(Edit Site List)을 클릭합니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202403.jpg)
- 예외 사이트 목록에서 추가(Add) 버튼을 클릭하고 문제가 발생하는 Java 애플릿의 URL을 붙여넣습니다. 이후 확인(Ok)을 눌러 해당 URL을 예외 목록에 추가합니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202475.jpg)
참고: 실행하려는 애플릿에 따라서는 비표준 포트 번호까지 Java 예외 목록에 함께 추가해야 할 수도 있습니다. - 이어지는 보안 경고(Security Warning) 화면에서 계속(Continue)을 클릭하여 방금 입력한 URL을 예외 목록에 추가하는 것을 확인합니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202582.jpg)
- 이전에 오류가 표시되던 애플릿을 다시 실행합니다. 더 이상 오류가 발생하지 않을 것입니다.
다른 방식으로 이 오류를 해결하고 싶으시다면, 아래의 다음 방법을 참고하세요.
방법 2: 응용 프로그램 보안 수준을 '높음(High)'으로 설정하기
이 오류를 해결하는 또 다른 방법은 Java 보안 수준을 '매우 높음(Very High)' 대신 '높음(High)'으로 낮추는 것입니다.
이 방법은 적용하기가 훨씬 쉽고 빠르다는 장점이 있지만, 그만큼 컴퓨터를 여러 잠재적 위험에 노출시킬 수 있다는 점을 유의해야 합니다. 따라서 출처를 신뢰할 수 있다면 보안 수준을 변경하기보다 방법 1을 따르는 것이 바람직합니다.
그럼에도 불구하고 이 방법을 선택하셨다면, 오류를 유발하는 Java 응용 프로그램의 사용을 마친 후에는 반드시 기본 보안 설정 수준으로 되돌려 놓기를 권장합니다.
다음은 보안 수준을 변경하는 단계별 가이드입니다.
- Windows 키 + R을 눌러 실행(Run) 대화 상자를 연 뒤, "control"을 입력하고 Enter 키를 눌러 제어판을 엽니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202344.jpg)
- 제어판 창에서 프로그램(Programs)을 클릭한 후 Java 아이콘을 클릭하여 Java 제어판을 엽니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202367.jpg)
- Java 제어판 창에서 보안(Security) 탭으로 이동한 후, 예외 사이트 목록이 아닌 응용 프로그램 보안 수준(Security level for applications) 항목에서 높음(High) 옵션을 선택합니다. 이후 적용(Apply)을 클릭하여 변경 사항을 저장합니다.
![[해결 방법] 보안 설정에 의해 신뢰할 수 없는 응용 프로그램의 실행이 차단되었습니다 오류 수정하기](https://kr.wsxdn.com/UploadFiles_1288/202204/2022041114202573.jpg)
- 애플릿을 실행 중인 브라우저를 재시작한 뒤 페이지를 다시 로드하여 문제가 해결되었는지 확인합니다.