티스토리 뷰

 

모바일앱과의 TLS 통신 중에 다음과 같은 오류 발생했습니다.

 

no cipher suites in common

 

기존에 사용하던 서버 프로그램이었고, 로컬 컴퓨터에서 잘 동작하였습니다.

안드로이드 단말 중에는 2.3(Gingerbread)이상은 정상적으로 동작하였습니다.

문제는 2.1(eclair), 2.2(froyo) 에서 위에 같은 오류가 발생하고 있습니다.

 

결론적으로 서버 프로그램에 SSLContext 초기화 시에 키 셋팅이 되지 않아

익명의 암호군(anonymous suite, 사용 가능한 cipher suites 중 키가 anon 임) 을 사용하는데 2.1, 2.2 에서는

사용이 불가능해서 발생하는 오류입니다.

Security Provider가 2.1, 2.2는 Harmony JSSE 이지만 2.3은 AndroidOpenSSL 이어서 그런 것으로 추측합니다.

서버단에 java keytool로 RSA 키를 만들고 설정 후에 해결되었습니다.

익명의 암호군으로 통신이 된다고 해도 중간자 공격에 취약하다는 위험성이 있으므로 키를 설정하고 사용하는 것이 좋을 듯 합니다.

(JSSE 문서 참고)

 

서버단에 .needClientAuth(true)와 같이 설정한 경우에는 클라이언트에서 키를 생성해야 합니다.

그렇지 않으면 다음과 같은 오류가 납니다.

 

디버깅을 위해서 서버나 클라이언트 프로그램 실행 시 다음과 같은 옵션을 주어서 SSL 통신 과정을 볼 수 있습니다.

-Djavax.net.debug=all

 

 

 

참고 자료

 

JavaTM Secure Socket Extension (JSSE) Reference Guide

http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html

http://xrath.com/javase/ko/6/docs/ko/technotes/guides/security/jsse/JSSERefGuide.html

 

Java ™ Cryptography Architecture (JCA) Reference Guide

http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html

 

Java and SSL

http://medialab.di.unipi.it/web/doc/JNetSec/jns_ch11.htm

 

Secure Socket Layer version 3 / Transport Layer Security version 1 (SSLv3 / TLSv1)

http://www.vocal.com/network/ssltls.html

 

Spongy Castle 라이브러리를 사용하라고 하는데 현재는 왜 사용해야 되는지 모르겠음

http://stackoverflow.com/questions/6898801/how-to-include-the-spongy-castle-jar-in-android

 

TLS 관련 샘플

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=107562835&qb=U1NMQ29udGV4dC5pbml0&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=g3mmVc5Y7tVssZOlkd0ssc--345775&sid=T3hTamcZeE8AAEdsSMs

 

Creating a custom key manager for SSL

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Ftsec_sslcreatecuskeymgr.html


J2SE 1.4를 사용한 안전한 인터넷 프로그래밍 I

http://blog.daum.net/ohsh69/7716228

 

cipher suite를 셋팅하라고 하지만 사용할 수 없으면 오류남 (현재 문제에선 도움이 안됨)

http://rgrzywinski.wordpress.com/2004/08/03/dont-forget-to-set-the-cipher-suite/

 

SSL 통신방법

http://maystyle.tistory.com/457

 

SSL 통신 구조

http://happydal.blogspot.com/2010/08/ssl-%ED%86%B5%EC%8B%A0-%EA%B5%AC%EC%A1%B0.html#!/2010/08/ssl-%ED%86%B5%EC%8B%A0-%EA%B5%AC%EC%A1%B0.html

 

SSL handshake with two way authentication with certificates

http://commons.wikimedia.org/wiki/File:SSL_handshake_with_two_way_authentication_with_certificates.svg

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함