-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove key 메모리상에서도 필요할것 같습니다! #35
Comments
3번을 너무 막 설명하다보니 이해가 안되는 부분이 있을 것 같습니다. ㅠㅠ 의견 답글로 달아주세요!! |
3번의 말씀대로 진행한다면 "키를 받아서 어떤 로직을 수행" 이 부분은 서명/검증을 말씀하시는것 같은데 이부분은 Auth에서 해주고 있어서 keyManager를 제거하면 될 것 같습니다. 말씀하신 부분을 제가 잘 받아들인게 맞나요? |
@owljoa 3번에서 모두 분리하는 것은 아니고 key와 나머지(generator, loader, storer)의 분리가 필요하다고 생각하고 있습니다.
즉 keymanager에서는 key를 가지고 있지 않은 형태로!! "키를 받아서 어떤 로직을 수행" 이 부분은 표현을 제가 잘 못해서 그랬는데 "키와 관련된 로직 수행"이 맞을 것 같고 서명/검증 분만 아니라 load, store등등 모든 키와 관련된 기능들을 얘기한 것 입니다. |
@junbeomlee 3번 - 넵! 이제 이해 됐습니다. 말씀하신 key와 나머지 generator, loader, storer의 분리는 저도 동의합니다 :) |
@owljoa |
@junbeomlee 결과적으로는 암호알고리즘이 키의 안전을 가정으로 두다보니 서비스 개발시 가장 핵심은 키관리를 어떻게 해주느냐 입니다. 키관리 솔루션들이 많이 출시되는 이유가 이런 것 때문입니다. |
@owljoa
많은 솔루션들이 클라이언틔 키를 관리하는 것은 존재하는데 피어에서 프라이빗키를 관리하는 다른 체인들을 찾아봐야 더 좋은 해답을 낼 수 있을 것 같습니다. |
그러면,,
2번은 메모리에 키를 계속 유지하지 않고 서명할때마다 파일로부터 키를 로드하는것을 말씀하시는거죠??
그리고 제가 처음 제안드린 부분은 메모리에 키가 올라가 있는 시간을 최소화해야 한다는 것 이였습니다. 그런데 제가 혼란을 드린것은 개인과 기기에 대한 예를 들었던 것이네요 ㅠ.. 라이브러리는 모든 서비스에 맞출수는 없고 프라이빗 블록체인도 물류, 금융, 기업간 거래, 원산지 추적 등등 많은 서비스에 적용될수 있기 때문이죠. ================================================================== 결론적으로는 서명키를 암호화하는 로직은 구현하되, 어떤 형태의 암호화키(서명키를 암호화하는)를 사용하는지는 디폴트는 패스워드로 두고 다른 형태도 받을 수 있도록 열어두는게 좋을것 같습니다. |
아아 제가 말을 잘못한게 있었는데 파일뿐만 아니라 메모리 자체도 평문으로 저장하지 말고 암호화 하자는 의미였습니다. 메모리를 지우는 일은 비효율적인게 노드가 외부로 데이터를 전송할때마다 서명을 해야되서 짧은 시간내에 많은 서명을 수행 할 것 같아서 (제 생각에는 1초에 몇 십번의 서명도 수행해야할 듯 합니다) 메모리를 지우는 것보다 차라리 메모리 자체도 암호화 하는 것으로 제안 드렸습니다!! |
아! 그러면.. 메모리상에 서명키를 암호화된 상태로 유지하고 서명을 수행할때마다 복호화해서 사용하자! 는 말씀이시군요! 그런데 이렇게 구현을 해두면 제가 앞에 말씀드린거서럼 서명키를 암호화할때 사용하는 암호화키를 계속 불러와야합니다. 저 암호화키도 메모리내에 평문으로 두면 위험하고요. 그래서 @junbeomlee 님의 말씀처럼 1초에 수십번의 서명을 수행해야할 경우에 1서명 1키 로드가 비효율적이라면, 서명 후 다른 서명이 수행되지 않는 지연시간(?)이 x초를 넘어가면 서명키에 할당된 메모리를 해제하는것이 어떨까요? (x초는 물론 라이브러리를 이용하는 분들이 파라미터로 넣는 값 일것입니다!) @yojkim 님의 생각은 어떠신지요 !? |
넵! |
좋은 것 같습니다. 쭉 읽어봤는데 제가 따로 제안해야할 부분은 찾지 못했네요 ㅎㅎ; |
너무 오랜만이라 죄송합니다.. 요근래 정신없는 일이 있어서.. 하이퍼레저 문서에서 일부 내용을 보니 키 관리를 위해 특정 하드웨어를 사용하는것으로 보이네요.. ㅠ 저희는 하드웨어 개발은 할수는 없으니 일단.. 키 관리에 대한 복잡한 문제는 뒤로하는것이 좋을듯 합니다.
-> 이렇게 만들어진 계층의 AKI를 이용하면 인증서 발급기관을 쉽게 찾을 수 있다는 그런.. 의미인것으로 보입니다. 그리고 위 1번, 2번 두가지는 오늘부터 또 조금씩 구현 시작해보겠습니다! |
Issue #35/separate key from keymanager
…cryption Issue #35/feature/encryption and decryption
지금 remove key가 키 파일을 지우는 기능만 하고 있는데,,
private key의 경우엔 필요한 경우에만 메모리에 올리는 것이 안전할것 같아서 어떤 형태로든 메모리에서 private key를 지우는 기능(?)이 명시적으로 필요하지 않을까요?
예를 들면 몇분의 시간을 설정하고 keyManager가 sign이후에 그 시간이 지나면 key를 모두 초기화하거나.. 가장 안전한건 1 sign 1 load겠지만.. 이건 부하가 생길것 같기도 해서요.. :(
The text was updated successfully, but these errors were encountered: