-
Notifications
You must be signed in to change notification settings - Fork 48
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
Add encryption decryption script for credentials #1683
Conversation
@yunkon-kim Ready for a review. :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tumblebug을 조금 더 안전하게 활용할 수 있는 기능이 추가되었네요 ^^
아래와 같이 동작하는 것으로 이해했습니다.
- 운영자/개발자가 Password를 입력하면, 해당 Password로 credential 암/복호화
- Password를 입력하지 않으면, base64 random bytes인 Passkey를 생성 및 이를 활용한 credential 암/복호화
개인적으로 KEY_FILE="$CRED_PATH/cred_key"
가 취약한 포인트가 될 수 있다고 보여 의견을 말씀드립니다.
운영자/개발자가 위험성에 대해 충분히 인지해야 할 필요가 있고, Password/Passkey를 알려진 개발 문화(예, .env
)를 바탕으로 직접, 안전하게 관리해야 한다는 취지의 의견입니다.
encCredential.sh
,decCredential.sh
상에서 KEY_FILE 관련 부분을 없애고,decCredential.sh
실행시, 운영자/개발자가 직접 Password/Passkey를 입력하도록 개선- TB에서 KEY_FILE 대신, 잘 알려진(?)
.env
읽는 것으로 대체하고, 마찬가지로 운영자/개발자가 직접 Password/Passkey를.env
에 입력해야만 하도록 개선
더하여, 출력 메시지 및 주석에 경고 문구가 추가되면 좋을 것 같습니다.
@yunkon-kim 리뷰 및 의견 감사합니다! 저도 고민이 많았어서, 이리저리 여러 방법으로 변경해서 사용해보고 올린 최종안이었습니다. 사용자에게 알려주는 방법은 3가지 정도가 있을 것 같은데 각각 장단점이 있었습니다.
말씀해주신 제안을 중심적으로 보자면,
:) 논의를 위한 생각 공유 자료라고 생각해주심 되겠습니다! :) |
@seokho-son 여러가지로 고민이 많으셨을 것 같습니다. 공유 차원의 의견을 말씀드립니다. 스크립트를 구동하면서 사용자가 입력한 Password가 노출되면 안된다는 것은 전적으로 동일하게 생각합니다. Passkey를 자동 생성하여 임시 파일에 저장할 시, 경고 문구에도 불구하고 삭제되지 않을 가능성이 있다는 것에서 출발한 의견이었습니다. 그래서, Passkey이를 사용자가 직접 관리해야 한다는 취지였고, 어떤 특정한 파일에 Passkey를 저장해 두는 것도 사용자가 직접해야만 하는 것으로 보았습니다. 관련하여 조금만 더 자세히 말씀드려보겠습니다.
단, 개발과 관련한 편의를 위해, 개발 환경에서만 제한적/한시적으로
|
@yunkon-kim 리뷰 의견을 반영하여 개선해보았습니다. :) |
추가 커밋을 통해서, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGGGGGTM :->
to enhance security.
Force encrypting
credentials.yaml
intocredentials.yaml.enc
To protect sensitive information,
credentials.yaml
is not used directly. Instead, it must be encrypted usingencCredential.sh
. The encrypted filecredentials.yaml.enc
is then used byinit.py
. This approach ensures that sensitive credentials are not stored in plain text.If you need to update your credentials, decrypt the encrypted file using
decCredential.sh
, make the necessary changes tocredentials.yaml
, and then re-encrypt it.Encrypting Credentials
Decrypting Credentials