Microsoft MVP성태의 닷넷 이야기
종단간 암호화에 대해 시나리오인데 타당한 시나리오일까요? [링크 복사], [링크+제목 복사],
조회: 10144
글쓴 사람
김재영 (kjyoffice at gmail.com)
홈페이지
첨부 파일
 

안녕하세요
이전 RSA 암호화 문의에 이어 추가적인 질문이 있습니다.
(쓰고보니 위 질문시 주의 사항의 스무고개 같은 느낌인데 혹시 해당된다면 죄송합니다.)
(지난 RSA 글에 이 내용까지 쓰자니 너무 길어지기도 하고 RSA도 안되는데 이 시나리오 까진 시기상조다 싶었거든요)

종단간 암호화에 대해서 시나리오를 만들었는데 타당한지 의견을 여쭤봅니다.
(이후 내용은 제가 시나리오 만들면서 쓴 내용이라 반말성입니다. 양해 부탁드리겠습니다.)




-----------------------------------------
어떤 채팅 앱을 만들었고 종단간 암호화를 한다

--- Type 1

<<< 1:1 대화방 >>>
- User1이 방을 만듦

- User1가 방 입장시 키 생성
# 개인키 : user1pri
# 공개키 : user1pub

- User2이 방에 입장
- User2가 방 입장시 키 생성
# 개인키 : user2pri
# 공개키 : user2pub

- 서로 공개키 교환을 함
- User1이 User2에게 공개키 "user1pub" 전달
- User2가 User1에게 공개키 "user2pub" 전달

#1
- User1이 글 작성 "안녕"
- User2의 공개키(user2pub)로 암호화 : abcabc
- 서버로 전송 : abcabc
- 서버에선 User2에게 전송 : abcabc
- User2는 개인키(user2pri)로 복호화 : 안녕

- User2가 글작성 : 웅 안녕 밥 먹었어?
** 위 #1과 동일 프로세스


<<< 1:n 대화방 >>>
** 위 1:1 대화방 프로세스와 Base는 동일
- 유저가 방에 입장할때마다 개인키 공개키 생성 (10명이라고 가정)
- 모두와 공개키 공유
- User7이 글 작성 : 늦어서 미안
- 각 유저별 개인키로 함호화 (User 1,2,3,4,5,6,8,9,10)
- userlist = [u1,u2,u3,u4,u5,u6,u8,u9,u10];
  foreach userx in userlist
    암호화 및 전송 userx.Send(userx.GetKeyAndEncrypt())


--- Type 2
(유저가 몇명이 될지 모르고 보안적으로도) 미리 개인키 받아서 공유과정은 좋지 않을 수 있다

암호화 하는 시점에 보내고자 하는 유저의 공개키를 요청, 받아와서 쓰고 버림

글 작성 시점
- User1이 글 작성 "안녕"
- User2에게 공개키 요청
- User2는 공개키 생성 후 전달 :user2pub111
- User1은 User2의 공개키(user2pub111)를 받아서 암호화 : xyzxyz
- User1은 User2의 공개키 user2pub111 는 이미 썼으니 버림
- 서버로 전송 : xyzxyz
- 서버에선 User2에게 전송 : xyzxyz
- User2는 개인키(user2pri)로 복호화 : 안녕
-----------------------------------------

위 시나리오가 맞다면 만들기 나름이긴 하지만
종단간 암호화를 위해 크게는 아래 3가지 서버 타입이 있다고 보여지는데 타당할까요?


- Type 1 : 공개키를 주고받고, 암호화된 데이터를 주고받는 서버, 즉 전달만 담당
- Type 2 - A : 공개키를 중앙에서 관리, User1이 User2의 공개키를 요청하면 서버는 User2의 공개키를 내어주고 공개키 만료시간이 다가오면 서버가 User2에게 새로운 공개키를 요청하여 갱신한다
- Type 2 - B : 키 자체를 중앙에서 관리, User가 입장하면 서버에서 개인키를 생성 입장한 User에게 제공, 이후 UserX키를 요청하면 서버에서 공개키를 제공
- Type 3 : User간 p2p로 연결하고 외부서버는 유저간 연결을 위해 홀펀칭을 담당


감사합니다.








[최초 등록일: ]
[최종 수정일: 2/6/2023]


비밀번호

댓글 작성자
 



2023-02-06 01시45분
어느 것을 하셔도 상관없을 듯합니다. 단지 Type 2-B의 경우 종단 간 암호화라는 취지가 "사용자 간 암호화"를 의미한다면 서버에서 개인키를 생성하는 것은 맞지 않다고 봅니다.
정성태
2023-02-06 06시12분
[김재영] 의견 감사합니다. +_+
[guest]

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4997초보개발자6/5/201831181C++ dll C#에서 사용하는데 보호된 메모리 오류떠요 한번만 도와주세요ㅜ [1]파일 다운로드1
4996swc6/5/201817536현업에서 주로 사용하는 DB업데이트 방법 질문입니다. [1]파일 다운로드1
4993학생6/3/201815482질문 드립니다 [1]
4991최진안5/24/201815945Credential Provider 질문 [2]
4990heyg...5/21/201816209Sybase Adaptive Server Anywhere 6 버전에 대한 질문입니다. [9]
4989강한음5/18/201819191clickonce 배포 후 실행 무응답 [4]
4988C#7....5/17/201814837dynamic 키워드를 사용한 객체 핸들링에 대해서 여쭤보려고 합니다. [1]
4987포플러5/14/201816847닥터왓슨 로그 - c0000005 (액세스 위반) 분석 부탁드려도 될까요? [2]
4986익명5/14/201818814비주얼 스튜디오 wpf 프로젝트에서 어떻게 하면 exe파일과 실행에 필요한 파일들을 분리해서 정리해서 디렉토리로 묶을 수 있을까요? [4]
4985대구개발자5/7/201816338새로운 폴더만 "이름 없는 파일" 오류 [1]
4984안중언5/6/201817058교재 143page [1]
4983익명5/4/201827563(wpf) 다른 컴퓨터에서 사용하면 자꾸 ('CefSharp.Core.dll' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다)라고 떠요.ㅠㅠ [5]
4982Soul...4/27/201817425MFC ActiveX 컨트롤 안에 있는 C# ActiveX 컨트롤 포인터 얻기 [4]
4981대전박4/25/201816082WPF IValueConverter 를 구현해서 StaticResource로 사용할때요 [1]
4980대전박4/23/201817585WPF OS버전 따라 Style 적용이 안되는 프로퍼티가 있을수 있나요? [2]
4979초보개발자4/18/201822446C# 프레임워크 버전이 다른 DLL끼리의 사용 [7]파일 다운로드1
4977Soul...4/17/201816980WebBrowser 컨트롤 Script 통신 문제 [3]
4976맹가이버4/14/201818002윈도우 서비스 프로그램에서 응용프로그램 호출하는 법 [1]
4975lemo...4/11/201818484안녕하세요 네이버로그인관련 질문드립니다. [2]
4973홍길동4/6/201816242ebook 출간 계획은 없으신가요? [2]
4978홍길동4/17/201815972    답변글 [답변]: ebook 출간 계획은 없으신가요?
4972dwkim4/3/201816791EasyHook 관련 질문 [4]
4968최홍준3/30/201815846Windows 7 Credential Provider Android와 연동 [1]
4967이대희3/30/201816524비주얼 스튜디오 설치 워크로드 중에 ".NET Core 플랫폼 간 개발" 이건 뭐하는 것인지요. [1]
4965이대희3/30/201816229자마린 설치후 안드로이드 프로젝트 생성시 디자이너가 없다는 에러가 발생합니다. [3]
4969이대희3/31/201816921    답변글 [답변]: 자마린 설치후 안드로이드 프로젝트 생성시 디자이너가 없다는 에러가 발생합니다.파일 다운로드2
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...