Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/perl5Public

Simplify the recommended alternatives to rand()#22873

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged

Conversation

robrwo
Copy link
Contributor

@robrworobrwo commentedDec 23, 2024
edited
Loading

The CPAN Security Group (CPANSec) is currently working on guides to generating security-quality random data. We are focusing on modules that have secure defaults and are fairly lightweight.

We would like to change the recommended modules to ones that we think are better options.

Crypt::URandom has fewer prerequisites than Crypt::Random, and works with Windows. (Older versions were pure-Perl.)

Crypt::PRNG has secure defaults and methods for generating different kinds of random data.

Math::Random::Secure has a lot of prerequisites and in the end is just relying on /dev/urandom, like Crypt::URandom does.

Math::TrulyRandom is from 1996, and it's unclear how well that technique will work on modern systems, especially VMs and containers.

Data::Entropy has recently updated to fix security issues, and has been marked as deprecated.

stigtsp reacted with thumbs up emoji
@jkeenan
Copy link
Contributor

We will need to get this p.r. to pass t/porting/podcheck.t before we can proceed further.

@robrwo
Copy link
ContributorAuthor

We will need to get this p.r. to pass t/porting/podcheck.t before we can proceed further.

The podchecker utility installed with Perl says it's ok.

When I run it I get a compilation error that seems to have nothing to do with my change:

porting/podcheck.t .. Can't locate Carp.pm in@inc (you may need to install the Carp module) (@inc entries checked: ../lib) at porting/podcheck.t line 17.
BEGIN failed--compilation aborted at porting/podcheck.t line 17.

@Grinnz
Copy link
Contributor

The failure is noted in the github actions run, it is because the pod checker must be told about the new non-core modules you are linking to:

#   "Apparent broken link"#     to "Crypt::URandom" near line 6672 of pod/perlfunc.pod#     to "Crypt::PRNG" near line 6674 of pod/perlfunc.pod# See end of this test output for your options on silencing this# # HOW TO GET porting/podcheck.t TO PASS# # There was 1 file that had new potential problems identified.# Some of them may be real, and some of them may be false positives because# this program isn't as smart as it likes to think it is.  You can teach this# program to ignore the issues it has identified, and hence pass, by doing the# following:# # 1) If a problem is about a link to an unknown module or man page that#    you know exists, re-run the command something like:#       ./perl -I../lib porting/podcheck.t --add-link { MODULE | man_page ... }
robrwo reacted with thumbs up emoji

@robrwo
Copy link
ContributorAuthor

I've updated it, and also updated other references to Math::TrulyRandom.

@robrwo
Copy link
ContributorAuthor

The only failing tests are cygwin, which I think has nothing to do with the POD changes.

Copy link
Contributor

@jkeenanjkeenan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

perlfaq is maintained upstream on CPAN. So changes to its text should first be submitted to that distribution'sissue tracker.

@robrwo
Copy link
ContributorAuthor

perlfaq is maintained upstream on CPAN. So changes to its text should first be submitted to that distribution'sissue tracker.

Ok.perl-doc-cats/perlfaq#143

@robrworobrwoforce-pushed therrwo/rand-recommendations branch fromdbce05a to0b731e1CompareApril 2, 2025 15:44
@robrworobrwo requested a review fromjkeenanApril 2, 2025 15:46
@jkeenan
Copy link
Contributor

I'm now satisfied with the structure of the pull request. I don't know enough aboutrand() to comment on the content.

@robrwo
Copy link
ContributorAuthor

perlfaq is maintained upstream on CPAN. So changes to its text should first be submitted to that distribution'sissue tracker.

Ok.perl-doc-cats/perlfaq#143

This has been merged.

@khwilliamson
Copy link
Contributor

@robrwo Please docd t; ./perl -I../lib porting/podcheck.t --regen and commit the changes, and repush

The CPAN Security Group (CPANSec) is currently working on guides togenerating security-quality random data [1]. We are focusing on modulesthat have secure defaults and are fairly lightweight.We would like to change the recommended modules to ones that we thinkare better options.Crypt::URandom is portable, has fewer prerequisites than Crypt::Random,Math::Random::Secure or Data::Entropy, and works with Windows.Crypt::PRNG has secure defaults and methods for generating differentkinds of random data.Math::TrulyRandom hasn't been updated since 1996, and is a solutionintended for systems without something like /dev/random.Data::Entropy had a security issue that was recently fixed, and thelatest version is marked as deprecated.[1]https://security.metacpan.org/docs/guides/random-data-for-security.html
@robrworobrwoforce-pushed therrwo/rand-recommendations branch from0b731e1 to833d9daCompareMay 21, 2025 16:56
@robrwo
Copy link
ContributorAuthor

What's delaying this?

It's mid-2025 and the current POD is outdated.

@thibaultduponchelle
Copy link
Member

The change on perlfaq was mergedupstream but did not reach CPAN yet, so it will be integrated later. This point fixes the "requested change" from@jkeenan

Merging this important security related recommendation on usage of alternative modules to be used for cryptographically secure random data generation.

robrwo reacted with thumbs up emoji

@thibaultduponchellethibaultduponchelle merged commit8c71d4a intoPerl:bleadJun 13, 2025
33 checks passed
@robrworobrwo deleted the rrwo/rand-recommendations branchJune 13, 2025 12:54
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@khwilliamsonkhwilliamsonkhwilliamson approved these changes

@jkeenanjkeenanAwaiting requested review from jkeenan

Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

5 participants
@robrwo@jkeenan@Grinnz@khwilliamson@thibaultduponchelle

[8]ページ先頭

©2009-2025 Movatter.jp