반응형

 rsa_js.zipRSA.java

홈페이지 SSL을 사용할 수 없는경우에 개인정보를 암호화 처리를 하여 전송을 하여야하는데 그방법중 하나가 RSA 암호화 입니다. 

첫번째 RSA.java 파일 생성(첨부파일:RSA.java)

RSA.java  파일은 RSA암호화를 위해 공개키와 개인키를 생성하여 암호화 복호화를 실행하는 부분입니다.

 

두번째 로그인 페이지(jsp)로 넘어가는 자바에서 RSA.java에서 키값을 받아온다.

RSA rsa = RSA.getEncKey();
request.setAttribute("publicKeyModulus", rsa.getPublicKeyModulus());
request.setAttribute("publicKeyExponent", rsa.getPublicKeyExponent());
request.getSession().setAttribute("__rsaPrivateKey__", rsa.getPrivateKey());

 

세번째 로그인을 실행하는 jsp파일에서 자바스크립트 파일을 추가하고,                           (첨부파일:RSA_js.zip)

<script type="text/javascript" src="../js/util/jsbn.js"></script>
<script type="text/javascript" src="../js/util/rsa.js"></script>
<script type="text/javascript" src="../js/util/prng4.js"></script>
<script type="text/javascript" src="../js/util/rng.js"></script>

아이디와 비밀번호를 전송하기전에 암호화 처리를 해준다.(자바스크립트로 처리)

var rsaPublicKeyModulus = document.getElementById("rsaPublicKeyModulus").value;
var rsaPublicKeyExponent = document.getElementById("rsaPublicKeyExponent").value;
var encPassword = fnRsaEnc(document.getElementById("userPw").value, rsaPublicKeyModulus, rsaPublicKeyExponent);
document.frm.encPw.value = encPassword;

 

function fnRsaEnc(value, rsaPublicKeyModulus, rsaPpublicKeyExponent) {

    var rsa = new RSAKey();

    rsa.setPublic(rsaPublicKeyModulus, rsaPpublicKeyExponent);


     var encValue = rsa.encrypt(value);     // 사용자ID와 비밀번호를 RSA로 암호화한다.

     return encValue;

}


(

*암호화 처리를 위해 jsp페이지 안에서 rsaPublicKeyModulus, rsaPublicKeyExponent, encPassword 를 input type="hidden" 처리를 해줘야한다.

ex)<input type="hidden" id="rsaPublicKeyModulus" value="${publicKeyModulus}">

<input type="hidden" id="rsaPublicKeyExponent" value="${publicKeyExponent}">

<input type="hidden" name="encPw" value="">

)

 

마지막으로 로그인을 처리하는 java파일에서 암호화된 비밀번호를 복호화한 후 로그인 처리를 하면 된다.

String encPw = DataUtil.notnull(param.get("encPw"));//암호화된 비밀번호를 받는다.
String decPw = RSA.decryptRsa((PrivateKey) request.getSession().getAttribute("__rsaPrivateKey__"), encPw);//암호화된 비밀번호를 복호화한다.

param.put("userPw", decPw);

 

 

반응형

'JSP' 카테고리의 다른 글

JSP 썸네일 이미지 만들기 (thumbnail)  (0) 2017.02.27
반응형

리눅스에서 웹 서버 (도메인) 정보를 확인하는 명령어는

curl -i 도메인

명령어를 통해 확인 할 수 있습니다.

 ex)

위에서 보면 Server에 해당하는 정보가 Apache로 나오는데 이부분은 안나오게 수정을 했기 때문이다.

서버정보에서 IIS버전 정보가 노출되는 것은 보안상 위험하기 때문에 감춰야한다.

우선 tomcat에서 server.xml 파일에서

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" 
    redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" server=""/>

위의 부분에서 server="" 을 지워 준다.

그리고 apache에서 httpd.conf 파일에서

TraceEnable Off 을 Off로 고쳐주고

ServerTokens Prod 를 Full에서 Prod 로 고쳐준다.

(Full로 되어있는 경우 모든 정보를 보여주게된다.)

ServerSignature Off 로 설정하여 브라우저에서 apache 정보를 감춰준다.

 

위와 같이 설정을 해준 후 다시 서버정보를 확인하면 서버정보가 감춰져서 나오는 것을 확인 할 수 있다. 만약 안된다면 다른부분의 설정도 찾아봐야 될 것 같다.

반응형
반응형

ora-12519 the connection descriptor used by the client was:

멀쩡히 오라클을 사용하던 도중 갑자기 ora-12519라는 에러가 발생했다.

검색해 보니 개발하다가 흔히 발생할 수 있는 현상이라고는 하나, 해결을 해야 하므로....


sqlplus로 오라클에 접속하려 하니

ora-00020: 최대 프로세스 (%s) 수를 초과했습니다.

위와 같은 또다른 에러가 발생하는데, 세션의 수를 늘려주면 해결가능하다고 한다.


오라클이 설치되어있는 파일 경로에가서

init.ora 파일에서 Processes and Sessions 의 세션수를 늘려주고

오라클 서비스를 재가동 했더니 정상작동한다.

반응형

+ Recent posts