투케이2K

137. (TWOK/LOGIC) [android] 안드로이드 Http Api 호출 시 JWE (JSON Web Encryption) 암호화 및 복호화 , 사용자 인증 처리 로직 본문

투케이2K 로직정리

137. (TWOK/LOGIC) [android] 안드로이드 Http Api 호출 시 JWE (JSON Web Encryption) 암호화 및 복호화 , 사용자 인증 처리 로직

투케이2K 2025. 4. 4. 18:44

[로직 정리]

정리 로직 : Mobile

상태 : [android] 안드로이드 Http Api 호출 시 JWE (JSON Web Encryption) 암호화 및 복호화 , 사용자 인증 처리 로직

 

[설 명]

// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------

- 퍼미션 권한 설정 코드 : 

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


- build.gradle 의존성 설정 코드 : 

    implementation 'com.nimbusds:nimbus-jose-jwt:10.0.2'

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------

1. 앱 (App) 및 서버 (Server) 는 서로 AES 를 사용해 JWE 암호화 , 복호화  AES Key 키 정의 실시

  >> AES Secret 키 정의 후 서버는 Config 파일 , 안드로이드는 local.properties 파일에 저장해 노출이 되지 않게 설정


2. 앱에서는 JWT 토큰을 만들기 위한 필요 JSON 정보 지정 (페이로드) 후 정의 된 AES 타입으로 헤더 값 지정 및 데이터 암호화 수행 실시


3. 앱에서는 암호화 된 JWE 토큰을 사용해 Http 호출 시 헤더 값에 Authorization : Bearer JWE 토큰 추가 후 Api 호출 수행


4. 서버에서는 Api 헤더 값으로 들어온 Authorization : Bearer JWE 토큰 값을 지정 된 AES Key 로 정상적으로 복호화 되는 지 확인 수행


5. 정상적으로 JWE 값 복호화 후 정의 된 사용자가 맞는 경우 필요한 리소스 정보 검색 후 Return 리턴 반환 수행


6. 정의 된 AES 키로 JWE 값이 복호화 되지 않는 경우 인증 되지 않은 사용자 및 리소스 요청 거부 Return 리턴 반환 수행

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[IT 기술] JWE (JSON Web Encryption) JSON 웹 암호화 설명

https://blog.naver.com/kkh0977/223817878517?trackingCode=blog_bloghome_searchlist


[nimbus-jose-jwt] JWE (JSON Web Encryption) JSON 웹 암호화 및 복호화 라이브러리

https://blog.naver.com/kkh0977/223817959400?trackingCode=blog_bloghome_searchlist


[JWE AES 256 GCM 인코딩 암호화 수행 실시 - A256GCM , A256GCMKW]

https://blog.naver.com/kkh0977/223820371639?trackingCode=blog_bloghome_searchlist


[JWE AES 256 GCM 디코딩 복호화 수행 실시 - A256GCM , A256GCMKW]

https://blog.naver.com/kkh0977/223820373889?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
반응형
Comments