보안 애플리케이션을 위해 Liberty 튜닝
보안 애플리케이션의 성능을 최적화하도록 Liberty를 튜닝할 수 있습니다.
이 태스크 정보
WebSphere® 애플리케이션 환경을 보안 설정할 때 보안이 성능에 미칠 수 있는 영향을 이해해야 합니다. 애플리케이션 서버 환경에서 보안 설정이 포함된 애플리케이션을 실행하면 보안 태스크(예: 암호화, 인증 및 권한 부여)를 위한 프로세스 사용이 증가하므로 성능이 종종 저하될 수 있습니다. 이러한 서비스를 수행하기 위해 애플리케이션 서버 요청의 경로가 길어지므로 각 요청에 필요한 자원이 늘어나며 애플리케이션 처리량이 느려질 수 있습니다.
대부분의 경우 성능을 조정하여 이러한 보안 관련 성능 저하를 줄이거나 제거할 수 있습니다. 보안 서비스에서 사용하는 자원을 조정하고 특정 애플리케이션이나 환경에 필요한 보안 서비스만 사용하도록 선택할 수 있습니다. 필수 보안을 유지하면서 최상의 성능을 내려면 애플리케이션의 보안 요구사항과 네트워크 토폴로지를 이해해야 합니다.
프로시저
- 암호화할 연결을 선택하십시오.
WebSphere Application Server 환경에서 다음 전송을 암호화할 수 있습니다.
- 웹 서버로 전송되는 HTTP 트래픽
- 웹 서버에서 애플리케이션 서버로 전송되는 HTTP 트래픽
- SOAP/JMX 트래픽
- 파일 전송 서비스
- HTTP를 통한 웹 서비스
암호화된 연결을 통해 전송할 트래픽을 결정할 때 통신 시스템에 연결 중인 네트워크가 개인용인지 아니면 공용인지를 고려하십시오. 보안 연결을 설정하고 이 연결을 통해 트래픽을 암호화하고 복호화하는 데 상당한 양의 자원이 관련됩니다. 예를 들어, 보안 네트워크를 통해 암호화할 필요가 없으면 성능을 상당히 향상시킬 수 있습니다. 클라이언트에서 HTTP 서버로 전송되는 트래픽과 HTTP 서버에서 애플리케이션 서버로 전송되는 트래픽을 사용자의 애플리케이션에서는 암호화하지 않아도 되는 경우 클라이언트에서 HTTP 서버로의 트래픽에만 SSL을 사용할 수 있으므로 보안에 필요한 자원을 줄일 수 있습니다.
- 온칩 고급 암호화 표준(AES) 암호화를 사용하십시오.
IBM® SDK Java™ Technology Edition 버전 7, 서비스 팩 3 이상을 사용하고 AES-NI(Advanced Encryption Standard New Instructions) 지시사항 세트를 지원하는 Intel 프로세서에서 실행 중인 경우 온칩 AES 암호화를 이용하여 성능을 향상시킬 수 있습니다. 이 기능을 사용하면 추가 소프트웨어 없이 하드웨어 명령어를 이용하여 AES 암호화와 복호화를 실행할 수 있습니다.
AES-NI를 사용하려면 JVM 명령행이나 jvm.options 파일에 다음 특성을 추가하십시오.
com.ibm.crypto.provider.doAESInHardware=true
JVM 명령행이나 jvm.options 파일에 다음 특성을 추가하여 프로세서가 AES-NI 명령어 세트를 지원하는지 확인하십시오.
com.ibm.crypto.provider.AESNITrace=true
자세한 정보는 Intel Advanced Encryption Standard New Instructions를 참조하십시오.
- 암호 키 길이를 선택하십시오.
몇몇 경우에, 암호 키의 길이(비트)는 일정한 유형의 데이터에 지정된 규정에 따라 달라집니다. 이러한 경우 특정 SSL 연결에 사용하도록 선택하는 암호 및 키 길이를 미리 결정할 수 있습니다. 키 길이가 규제되지 않는 경우 성능이 필요 이상으로 감소되지 않도록 보안에 할당할 적절한 자원을 선택해야 합니다. 예를 들어, 256비트 암호는 상응하는 128비트 암호보다 보안이 더 강화된 암호화를 제공합니다. 그러나, 보안이 더 강화된 암호를 사용하는 메시지는 처리하는 데 시간이 더 필요합니다.
선택할 암호화 보안 수준을 결정할 때 네트워크에서 이동 중인 데이터의 유형을 고려하십시오. 예를 들어, 금융이나 의료 기록과 같이 민감한 정보는 최고의 보안 수준이 필요합니다. 네트워크에 대한 액세스 권한이 있는 사용자도 고려하십시오. 방화벽을 통해 네트워크를 보호하는 경우 암호의 보안 수준을 감소시키거나 복호화된 연결로 데이터를 전송할 수 있습니다.
Liberty에서 SSL 설정을 구성하는데 관한 자세한 정보는 Liberty:SSL 구성 속성의 내용을 참조하십시오.
- 연결 유지 요청을 설정하십시오.
SSL(Secure Socket Layer) 프로토콜에서 초기 핸드쉐이크는 더 빠른 개인 키 암호를 위한 개인 키로 교환하기 위해 공용 키를 사용합니다. 초기 핸드쉐이크 이후부터는 이 더 빠른 암호를 사용하여 통신을 암호화하고 복호화합니다. 후속 통신에 사용된 암호는 초기 핸드쉐이크에 사용된 암호보다 더 빠르므로 애플리케이션 서버에서 수행되는 SSL 핸드쉐이크의 수를 제한하는 조치가 성능 관점에서 중요합니다. 세션 선호도를 높여 SSL의 길이를 늘리면 이와 같은 결과를 얻을 수 있습니다.
단일 SSL 연결 기간을 늘리는 한 방법은 지속 HTTP 유지 연결을 사용하는 것입니다. 기간을 늘리면 연속적 요청에서 SSL 핸드쉐이크가 발생하지 않도록 합니다. server.xml 파일에서 httpOptions 요소의 keepAliveEnabled 속성이 true로 설정되었는지 확인하여 지속적 연결이 사용 가능한지 확인할 수 있습니다. 기본값은 true입니다.
지속적 연결을 조정하는 또 다른 방법으로는 단일 HTTP 연결에서 최대 연속 요청 수를 설정하는 방법이 있습니다. 클라이언트가 연속적으로 100개가 넘게 요청하는 경우 server.xml 파일에서 httpOptions 요소의 maxKeepAliveRequests 속성 값을 늘리십시오. 기본값은 100입니다.
keep-alive 연결 속성에 대한 자세한 정보는 Java Servlets 3.0의 내용을 참조하십시오.
- 인증 캐시 설정을 설정하십시오.
인증 주제를 작성하면 프로세서 사용이 늘어날 수 있으므로 Liberty는 사용자 인증 성공 후 주제를 저장하기 위한 인증 캐시를 제공합니다. 성능을 향상시키기 위해 이 서비스를 완전히 이용하려면 이 서비스가 켜져 있으며 사용자와 애플리케이션에 따라 조정되었는지 확인해야 합니다.
인증 캐시를 사용 안하도록 설정하지 않았는지 확인하십시오. 기본적으로 성능을 향상시키기 위해 인증 캐시를 사용합니다.
인증 캐시 제한시간 값을 변경하도록 고려하십시오. 제한시간 값을 늘리면 주제가 인증 캐시에 더 오래 남아 있게 되고 필요한 재인증 수가 감소됩니다. 그러나 제한시간 값을 늘리면 수정된 외부 저장소(예: LDAP)와 비교하여 사용자 권한의 시간이 경과될(stale) 위험이 높아집니다. 클라이언트 세션의 예상 길이를 반영하도록 인증 캐시 제한시간을 설정하십시오. server.xml 파일의 authCache 요소에서 제한시간 속성의 값을 원하는 시간으로 설정하여 캐시 제한시간을 지정할 수 있습니다. 기본값은 600초입니다.
마지막으로, 인증 시간이 예상보다 길거나 외부 인증 저장소에 전송되는 트래픽 양이 예상보다 많은 경우 인증 캐시가 가득 찼을 가능성이 있습니다. 인증 캐시가 가득차면 주제가 제거됩니다. 인증된 사용자와 인증 캐시 항목이 일대일로 맵핑되어 있지 않습니다. 사용자당 캐시의 항목 수는 기타 보안 구성에 따라 달라집니다. 인증 캐시의 최대 크기를 한 번에 서버에 액세스하는 고유하게 인증된 사용자의 수보다 크게 설정하는 방법이 좋습니다. 이 방식으로 인증 캐시의 최대 크기를 설정하면 제한시간이 초과되기 전에 캐시에서 주제가 제거되지 않게 됩니다. server.xml 파일에서 authCache 요소의 maxSize 속성 값을 설정하여 인증 캐시의 최대 크기를 변경할 수 있습니다. 기본 크기는 25000입니다.
자세한 정보는 Liberty에서 인증 캐시 구성의 내용을 참조하십시오.
- HTTP 세션 선호도 설정을 구성하십시오.
보안 애플리케이션 환경에서 성능을 가장 저하시키는 조작 중 하나는 SSL 핸드쉐이크와 인증을 포함하는 초기 설정입니다. 클러스터 환경에서 웹 클라이언트가 다른 애플리케이션 서버에 액세스하면 성능이 감소될 수 있습니다. SSL 핸드쉐이크와 재인증으로 인한 프로세서 사용이 증가되지 않도록 반드시 HTTP 세션 선호도를 구성하도록 하십시오.
HTTP 세션 선호도를 구성하면 연속 클라이언트 요청이 동일한 애플리케이션 서버로 라우팅됩니다. HTTP 세션 선호도는 여러 방식으로 성능에 도움이 되지만 특히 재인증과 SSL 핸드쉐이크로 인한 프로세서 사용이 증가되지 않도록 합니다. HTTP 세션 선호도를 설정하는 데 대한 지시사항은 HTTP Server 또는 로드 밸런서의 문서를 참조하십시오.
자세한 정보는 Liberty에 대한 세션 지속성 구성의 내용을 참조하십시오.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_tun_sec
파일 이름: twlp_tun_sec.html