Design and Implementation of the SSL Component based on CBD

CBD에 기반한 SSL 컴포넌트의 설계 및 구현

  • Published : 2006.06.01

Abstract

Today, the SSL protocol has been used as core part in various computing environments or security systems. But, the SSL protocol has several problems, because of the rigidity on operating. First, SSL protocol brings considerable burden to the CPU utilization so that performance of the security service in encryption transaction is lowered because it encrypts all data which is transferred between a server and a client. Second, SSL protocol can be vulnerable for cryptanalysis due to the key in fixed algorithm being used. Third, it is difficult to add and use another new cryptography algorithms. Finally. it is difficult for developers to learn use cryptography API(Application Program Interface) for the SSL protocol. Hence, we need to cover these problems, and, at the same time, we need the secure and comfortable method to operate the SSL protocol and to handle the efficient data. In this paper, we propose the SSL component which is designed and implemented using CBD(Component Based Development) concept to satisfy these requirements. The SSL component provides not only data encryption services like the SSL protocol but also convenient APIs for the developer unfamiliar with security. Further, the SSL component can improve the productivity and give reduce development cost. Because the SSL component can be reused. Also, in case of that new algorithms are added or algorithms are changed, it Is compatible and easy to interlock. SSL Component works the SSL protocol service in application layer. First of all, we take out the requirements, and then, we design and implement the SSL Component, confidentiality and integrity component, which support the SSL component, dependently. These all mentioned components are implemented by EJB, it can provide the efficient data handling when data is encrypted/decrypted by choosing the data. Also, it improves the usability by choosing data and mechanism as user intend. In conclusion, as we test and evaluate these component, SSL component is more usable and efficient than existing SSL protocol, because the increase rate of processing time for SSL component is lower that SSL protocol's.

현재 SSL 프로토콜은 다양한 컴퓨팅 환경과 보안 시스템 내에서 핵심부분으로 사용되고 있다. 그러나 SSL 프로토콜의 운영상의 경직성 때문에 다음과 같은 문제점들이 있다. 첫째, 주고받는 모든 데이타에 대한 보안을 실행하기 때문에 CPU에 큰 부하를 초래한다. 둘째, SSL 프로토콜에서는 정해진 알고리즘에 의해 고정적인 길이의 키를 사용하므로 향후 암호문 해독에 대한 위험이 존재한다. 셋째, 새로운 암호화 알고리즘의 추가 및 활용에 어려움이 존재한다. 넷째, SSL 프로토콜 개발 시에 보안에 관한 전문 지식이 없는 개발자는 보안 API(Application Programming Interface)를 다루기가 어렵다. 따라서 이러한 문제점들을 극복하는 동시에 안전하고 편리하게 SSL 프로토콜을 사용할 수 있는 방안이 필요하다. 본 논문은 이러한 요구조건을 만족시키기 위해 CBD(Component Based Development) 개념을 사용하여 설계 및 구현한 SSL 컴포넌트를 제안한다. SSL 컴포넌트는 SSL 프로토콜에서 수행하는 데이타 암호화 서비스를 제공한다. 또한, 보안에 익숙하지 않은 개발자들이 안전한 시스템을 구현할 수 있도록 개발의 편의성을 제공한다. SSL 컴포넌트는 컴포넌트의 기본적인 특징을 수용하므로 반복적인 재사용이 가능하여 생산성을 향상시키고 비용을 절감시키는 효과를 준다. 뿐만 아니라 알고리즘이 추가되거나 변경되는 경우에 호환과 연동을 용이하게 해주는 장점이 있다. SSL 컴포넌트는 애플리케이션 단에서 SSL 프로토콜과 동일한 역할을 수행할 수 있도록 한다. 먼저 요구사항을 도출하여 설계, 구현하고, SSL 컴포넌트와 이를 지원하는 비밀성, 무결성 컴포넌트를 독립적으로 구현한다. 앞에서 언급된 모든 컴포넌트들은 각각 EJB로 구현한다. 암 복호화 시 데이타를 선택적으로 암호화할 수 있도록 함으로써 데이타 처리 시간을 줄여 효율성을 높인다. 또한, 사용자의 의지대로 데이터 및 메커니즘을 선택할 수 있도록 하여 사용성을 높인다. 결론적으로는, 위의 내용을 실험 및 평가함으로써, SSL 컴포넌트가 기존의 SSL 프로토콜보다 처리 시간의 증가율이 낮아 데이타 량이 많아질수록 시간이 더 적게 소요되므로 효율적임을 검증한다.

Keywords

References

  1. K. Kant, R. Iyer and P. Mohapatra, 'Architectural Impact of Secure Socket Layer on Internet Servers,' Proc. IEEE 2000 International Conference on Computer Design, pp.7-14, 2000
  2. Xiaodong Lin, Johnny W. Wong, Weidong Kou, 'Performance Analysis of Secure Web Server Based on SSL,' Lecture Notes in Computer Science, Springer-Verlag Heidelberg, Volume 1975/2000, Information Security: Third International Workshop, ISW 2000, Wollongong, Australia, December 2000. Proceedings, pp.249-261, 2003
  3. Matt Blaze, Whitfield Diffie, Ronald L. Rivest, Bruce Schneier, Tsutomu Shimomura, Eric Thompson, and Michael Wiener, 'Minimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security,' 1996
  4. 이경구, 'TLS 표준 동향,' 한국정보보호진흥원, 월간 '정보보호뉴스' 통권 19호, 1999
  5. Chris Frye, 'Understanding Components,' Andersen Consulting Knowledge Xchange, 1998
  6. Booch, G., Rumbaugh, J., and Jacobson, I., 'The Unified Modeling Language User Guide,' Addison Wesley Longman, 1999
  7. Sun, 'Enterprise Java Beans Specification Version 2.0 Final Release,' Sun Microsystems Inc, 2001
  8. KISA, 'SEED Algorithm Specification,' Korea Information Security Agency, 1999
  9. TTA Standard, 'Hash Function Standard-Part 2: Hash Function Algorithm Standard(HAS-160),' Telecommunications Technology Association, 2000
  10. 'http://www.nortelnetworks.com/products/01/alteon/isdssl/,' Alteon SSL Accelerator, Nortel Networks, 2003
  11. 'http://www.ncipher.com/ssl/,' nFastTM, nForceTM, nCipher
  12. Anh-Duy Nguyen, 'Securing Web Applications through a Secure Reverse Proxy,' Sun Microsystems, Inc., 2003
  13. Alan O. Freier, Philip Karlton, and Paul C. Kocher, 'The SSL Protocol Version 3.0,' Work in progress, Netscape Communications, 1996
  14. 윤재호, '인증서 기반의 SSL Protocol', 한국정보보호진흥원, 2001
  15. William Stallings, 'Cryptography and Network Security,' Principles and Practice, 3rd edition, Prentice Hall, 2002
  16. Sun, 'Java 2 Platform Enterprise Edition Specification, Version 1.4,' Sun Microsystems Inc, 2004
  17. R. W. Badlwin et C. V. Chang, 'Locking the e-safe,' IEEE Spectrum, 1997 https://doi.org/10.1109/6.570829