암호호/복호화 관련된 질문입니다.
- 작성자 :
- 장*주
- 작성일 :
- 2012-05-15 16:32:37
- 조회수 :
- 2,457
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요... 전자정부프레임워크 2.0.0 을 이용해서 프로젝트를 진행중입니다.
암호화/복호화 부분을 하고 있는데 질문사항이 몇가지 있습니다..
아무리 찾아봐서 관련된 자료를 찾을수가 없네요...
<질문>
1. 1.0.0 에서는 암호화 관련 설정을 context-config.xml 에다가 했었는데요
이번에 2.0.0 도 똑같은 위치에 하면 되는건가요?? 이걸 꼭 맞추지 않아도
된다는걸 알고 있지만.. 그래도 모든 사람이 똑같은 위치에 해놔야 바로바로
찾을수 있을거 같아서요...
2. egovframework.rte.fdl.crypto-2.0.0.jar 를 사용하려면 라이브러리를
추가해야 하는거 같은데... 아래의 2개만 추가하면 되는건가요??
commons-codec-1.3.jar
icu4j-3.4.4.jar
3. 교육교재 2.0.0 에보면 xml 에 아래와 같이 설정을 하라고 되어 있는데...
이 4개의 클래스들이 어떤 역할을 하며 어떻게 사용되는 것들인지 궁금합니다.
<bean id="passwordEncoder" class="egovframework.rte.fdl.cryptography.EgovPasswordEncoder">
<property name="algorithm" value="${crypto.password.algorithm}" />
<property name="hashedPassword" value="${crypto.hashed.password}" />
</bean>
<bean id="ARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl">
<property name="passwordEncoder" ref="passwordEncoder" />
<property name="blockSize" value="1024" />
</bean>
<bean id="digestService" class="egovframework.rte.fdl.cryptography.impl.EgovDigestServiceImpl">
<property name="algorithm" value="SHA-256" />
<property name="plainDigest" value="false" />
</bean>
<bean id="generalCryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovGeneralCryptoServiceImpl">
<property name="passwordEncoder" ref="passwordEncoder" />
<property name="algorithm" value="PBEWithSHA1AndDESede" />
<property name="blockSize" value="1024" />
</bean>
4. 기존에 1.0.0 에서 텍스트를 암호화 하기 위해서는
egovframework.rte.fdl.crypto.impl.EgovARIAEDcryptionTxtServiceImpl
클래스를 이용하면 됐는데... 2.0.0 에서는 어떤 클래스를 이용해야 되는건
가요???
암호화/복호화에 관련된건 어디에도 자세하게 나와 있지 않은것 같아서
이렇게 질문을 드립니다... 수고하세요...
암호화/복호화 부분을 하고 있는데 질문사항이 몇가지 있습니다..
아무리 찾아봐서 관련된 자료를 찾을수가 없네요...
<질문>
1. 1.0.0 에서는 암호화 관련 설정을 context-config.xml 에다가 했었는데요
이번에 2.0.0 도 똑같은 위치에 하면 되는건가요?? 이걸 꼭 맞추지 않아도
된다는걸 알고 있지만.. 그래도 모든 사람이 똑같은 위치에 해놔야 바로바로
찾을수 있을거 같아서요...
2. egovframework.rte.fdl.crypto-2.0.0.jar 를 사용하려면 라이브러리를
추가해야 하는거 같은데... 아래의 2개만 추가하면 되는건가요??
commons-codec-1.3.jar
icu4j-3.4.4.jar
3. 교육교재 2.0.0 에보면 xml 에 아래와 같이 설정을 하라고 되어 있는데...
이 4개의 클래스들이 어떤 역할을 하며 어떻게 사용되는 것들인지 궁금합니다.
<bean id="passwordEncoder" class="egovframework.rte.fdl.cryptography.EgovPasswordEncoder">
<property name="algorithm" value="${crypto.password.algorithm}" />
<property name="hashedPassword" value="${crypto.hashed.password}" />
</bean>
<bean id="ARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl">
<property name="passwordEncoder" ref="passwordEncoder" />
<property name="blockSize" value="1024" />
</bean>
<bean id="digestService" class="egovframework.rte.fdl.cryptography.impl.EgovDigestServiceImpl">
<property name="algorithm" value="SHA-256" />
<property name="plainDigest" value="false" />
</bean>
<bean id="generalCryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovGeneralCryptoServiceImpl">
<property name="passwordEncoder" ref="passwordEncoder" />
<property name="algorithm" value="PBEWithSHA1AndDESede" />
<property name="blockSize" value="1024" />
</bean>
4. 기존에 1.0.0 에서 텍스트를 암호화 하기 위해서는
egovframework.rte.fdl.crypto.impl.EgovARIAEDcryptionTxtServiceImpl
클래스를 이용하면 됐는데... 2.0.0 에서는 어떤 클래스를 이용해야 되는건
가요???
암호화/복호화에 관련된건 어디에도 자세하게 나와 있지 않은것 같아서
이렇게 질문을 드립니다... 수고하세요...
A
안녕하세요.. 장선주님..
다음과 같이 답변 드리겠습니다..
1. context-config.xml은 임의의 위치에 놓으시면 됩니다.. 이 부분은.. 공통적은 설정 부분이 아니라.. 적용되는 프로젝트 부분의 설정이기 때문에 위치는 전혀 상관이 없습니다.
2. 다음과 같은 egovframe쪽 dependency만 추가하시면 됩니다.
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.crypto</artifactId>
<version>2.0.0</version>
</dependency>
필요한 것들은 내부에서 참조되도록 되어 있습니다.
3.
passwordEncoder는 패스워드를 다른 ARIACryptoService, generalCryptoService의 패스워드 지정을 위해 사용되는 것입니다.
(패스워드를 그냥 String 형태의 원문으로 처리를 하면.. 보안 상에 문제가 있기 때문에.. 별도의 패스워드 hash 값을 같으 passwordEncoder를 지정하는 것입니다.
hashed된 패스워드 생성 방법은 EgovPasswordEncoder 부분의 main 메소드를 확인해 보십시오..)
ARIACryptoService는 국정원의 ARIA 알고리즘을 가지고 암복호화를 수행하는 서비스입니다.
digestService는 MD5, SHA와 같은 hash function을 통해 메시지 digest값을 생성하는 서비스를 제공합니다.
generalCryptoService는 일반적으로 사용하는 대칭키 암복호화 서비스를 제공합니다. (JASYPT를 통해 다양한 알고리즘 지원)
4. 암호화를 위해서는 egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl나 egovframework.rte.fdl.cryptography.impl.EgovGeneralCryptoServiceImpl를 사용하시면 됩니다. (3번의 ARIACryptoService 또는 generalCryptoService)
즉.. 기존의 여러 개의 암복호화서비스를 위 2개로 변경/통합하였습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
다음과 같이 답변 드리겠습니다..
1. context-config.xml은 임의의 위치에 놓으시면 됩니다.. 이 부분은.. 공통적은 설정 부분이 아니라.. 적용되는 프로젝트 부분의 설정이기 때문에 위치는 전혀 상관이 없습니다.
2. 다음과 같은 egovframe쪽 dependency만 추가하시면 됩니다.
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.crypto</artifactId>
<version>2.0.0</version>
</dependency>
필요한 것들은 내부에서 참조되도록 되어 있습니다.
3.
passwordEncoder는 패스워드를 다른 ARIACryptoService, generalCryptoService의 패스워드 지정을 위해 사용되는 것입니다.
(패스워드를 그냥 String 형태의 원문으로 처리를 하면.. 보안 상에 문제가 있기 때문에.. 별도의 패스워드 hash 값을 같으 passwordEncoder를 지정하는 것입니다.
hashed된 패스워드 생성 방법은 EgovPasswordEncoder 부분의 main 메소드를 확인해 보십시오..)
ARIACryptoService는 국정원의 ARIA 알고리즘을 가지고 암복호화를 수행하는 서비스입니다.
digestService는 MD5, SHA와 같은 hash function을 통해 메시지 digest값을 생성하는 서비스를 제공합니다.
generalCryptoService는 일반적으로 사용하는 대칭키 암복호화 서비스를 제공합니다. (JASYPT를 통해 다양한 알고리즘 지원)
4. 암호화를 위해서는 egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl나 egovframework.rte.fdl.cryptography.impl.EgovGeneralCryptoServiceImpl를 사용하시면 됩니다. (3번의 ARIACryptoService 또는 generalCryptoService)
즉.. 기존의 여러 개의 암복호화서비스를 위 2개로 변경/통합하였습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.